Detail předmětu
Počítače a programování 2
FEKT-KPC2TAk. rok: 2017/2018
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 NetBeans.
Jazyk výuky
čeština
Počet kreditů
5
Garant předmětu
Zajišťuje ústav
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 NetBeans..
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) Zopakování základů 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í. Techniky řešení problémů. Návrh a implementace algoritmů. Podprogram, rozdělení programu do několika souborů, 4) Rekurze v programování. Princip rekurze a úvod do řešení problému pomocí rekurze. 5) 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. 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, Lineární struktury – Vektor, ArrayList, Kolekce, Množiny – HashSet, TreeSet, Mapování – HashMap, HashSet.Iterátory, tvorba vlastních iterátorů. Procházení kolekcemi v cyklu. 8) Principy objektově orientovaného návrhu – případové studie. Návrh aplikace, rozdělení na funkční bloky. Úvod do návrhových vzorů a jejich využití pro návrh konkrétní aplikace. 9) Správa větších projektů. Importování knihoven a práce s API. Tvorba vlastní knihovny. Správa projektu a začleňování knihoven. Vytvoření spustitelné aplikace. 10) Tvorba jednotkových testů a testy řízený vývoj. 11) Vícevláknové zpracování. Procesy a vlákna. 12) Grafické uživatelské rozhraní. Návrhový vzor Model-Pohled-Kontroler. Událostmi řízené programování. 13) Grafické uživatelské rozhraní. Návrhový vzor Model-Pohled-Kontroler. Událostmi řízené programování.
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 NetBeans.
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., VIRIUS, M. Učebnice programování: základy algoritmizace. Praha: Grada Publishing, 1997 (CS)
PECINOVSKÝ, R., VIRIUS, M. Učebnice programování: základy algoritmizace. Praha: Grada Publishing, 1997 (CS)
Zařazení předmětu ve studijních plánech