Detail předmětu

Počítače a programování 2

FEKT-BKC-PC2TAk. rok: 2018/2019

Obecný úvod do algoritmizace, obecný úvod do objektově orientovaného programování, řídící sekvence jazyků vyšších řádů, aplikační programové prostředí jazyka JAVA Eclipse.

Jazyk výuky

čeština

Počet kreditů

5

Výsledky učení předmětu

Získání základních algoritmizačních návyků a dovednosti objektově orientovaného programování. Pochopení základních vlastností a struktur jazyka JAVA a získání schopnosti je využít. Schopnost základní práce v prostředí JAVA Eclipse.

Prerekvizity

Jsou požadovány znalosti na úrovni středoškolského studia. Znalost programovánní v ANSI C.

Plánované vzdělávací činnosti a výukové metody

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT. Metody vyučování zahrnují přednášky a cvičení na počítači. Předmět využívá e-learning. Student odevzdává jeden samostatný projekt.

Způsob a kritéria hodnocení

Student může získat maximálně 20 bodů za aktivní práci v počítačových cvičení, 20 bodů za průběžné testy během semestru, 30 bodů za zápočtový test na konci semestru a 30 bodů za individuální projekt v jazyce JAVA.

Osnovy výuky

1. Základy algoritmizace v jazyce JAVA: cykly, větvení, metody, základní datové typy (primitives), reference vs. ukazatele, proměnné, viditelnost proměnných.
2. Třídy a objekty. Základní datové typy (primitivy) vs. objekty. Reference. Viditelnost proměnných a atributů v rámci programu.
3. Dědičnost. Třída vs. abstraktní třída vs. rozhraní. Polymorfismus. Vnitřní třídy
4. Výjimky a princip ošetřování neočekávaných událostí. Vyvolání výjimky. Vícenásobné vnoření výjimek a jejich ošetřování. Hierarchické členění výjimek. Tvorba vlastních výjimek
5. Rekurze v programování. Princip rekurze a úvod do řešení problému pomocí rekurze
6. Textové soubory a standardní vstup a výstup. Vstupně/výstupní datové proudy, práce se souborovým systémem, soubory, adresáře, vytváření, mazání, modifikace přístupových práv
7. Pokročilé datové typy. Kolekce, seznamy ( ArrayList, LinkedList), množiny (HashSet, TreeSet), mapy (HashMap, TreeMap), iterátory. Procházení kolekcemi v cyklu
8. Znakové řetězce, práce s řetězci. Výčtový typ, obálkový typ. Generické programování
9. Ladění a testování programů. Jednotkové testy. Tvorba dokumentace
10. Grafické uživatelské rozhraní. Událostmi řízené programování. Návrhový vzor Model-Pohled-Kontroler
11. Více-vláknové zpracování. Procesy vs. vlákna. Atomicita. Synchronizace vláken. Uvíznutí vláken
12. Principy objektově orientovaného návrhu programů. Návrhové vzory a jejich použití
13. Správa větších projektů. Importování knihoven a práce s API. Tvorba vlastní knihovny

Učební cíle

Naučit studenty základním algoritmizačním návykům a objektově orientovánému programování. Vysvětlit základní vlastnosti a struktury jazyka JAVA a jejich využití. Připravit studenty na práci v prostředí JAVA Eclipse

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Základní literatura

Keogh, J.: Java bez předchozích znalostí, Computer press, 2005, ISBN: 9788025108390 . (CS)
Pecinovský, R.: Myslíme objektově v jazyku Java -- kompletní učebnice pro začátečníky, Grada , 2008, ISBN: 978-80-247-2653-3. (CS)

Zařazení předmětu ve studijních plánech

  • Program BKC-TLI bakalářský 2 ročník, letní semestr, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1) Základy algoritmizace v jazyce JAVA: cykly, větvení, metody, základní datové typy (primitives), reference vs. ukazatele, proměnné, viditelnost proměnných.
2) Třídy a objekty. Základní datové typy (primitivy) vs. objekty. Reference. Viditelnost proměnných a atributů v rámci programu. Dědičnost. Třída vs. abstraktní třída vs. rozhraní. Polymorfismus. Vnitřní třídy.
3) Výjimky a princip ošetřování neočekávaných událostí. Vyvolání výjimky. Vícenásobné vnoření výjimek a jejich ošetřování. Hierarchické členění výjimek. Tvorba vlastních výjimek. Textové soubory a standardní vstup a výstup. Vstupně/výstupní datové proudy, práce se souborovým systémem, soubory, adresáře, vytváření, mazání, modifikace přístupových práv.
4) Pokročilé datové typy. Kolekce, seznamy ( ArrayList, LinkedList), množiny (HashSet, TreeSet), mapy (HashMap, TreeMap), iterátory. Procházení kolekcemi v cyklu. Znakové řetězce, práce s řetězci. Výčtový typ, obálkový typ. Generické programování.
5) Grafické uživatelské rozhraní. Událostmi řízené programování. Návrhový vzor Model-Pohled-Kontroler.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1) Vytváření tříd a objektů. Komunikace mezi objekty. Statické datové položky a metody.Vytvoření potomka rodičovské třídy. Překrývání konstruktorů a metod. Tvorba abstraktní třídy. Tvorba rozhraní.
2) Práce se seznamy (ArrayList a LinkedList). Práce s množinami (HashSet a TreeeSet). Práce s mapami (HashMap a TreeMap). Použití obálkových typů. Použití výčtových typů. Tvorba a použití generické třídy.