Detail předmětu
Počítače a programování 2
FEKT-BPC-PC2TAk. rok: 2019/2020
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
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Osnovy výuky
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
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
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)
Schildt , H.: Java: A Beginner's Guide, McGraw-Hill Education, 2014, ISBN: 978-0071809252. (EN)
Schildt , H.: JAVA 8 - výukový kurz, Computer Press, 2016, ISBN: 9788025146651. (CS)
Elearning
Zařazení předmětu ve studijních plánech
- Program BPC-AUD bakalářský
specializace AUDB-ZVUK , 2 ročník, letní semestr, povinně volitelný
specializace AUDB-TECH , 2 ročník, letní semestr, povinně volitelný - Program BPC-IBE bakalářský 1 ročník, letní semestr, povinný
- Program BPC-TLI bakalářský 2 ročník, letní semestr, povinný
- Program EEKR-CZV celoživotní vzdělávání (není studentem)
obor ET-CZV , 1 ročník, letní semestr, povinný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
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.
Cvičení na počítači
Vyučující / Lektor
Osnova
2) Vytváření tříd a objektů. Komunikace mezi objekty. Statické datové položky a metody.
3) Vytvoření potomka rodičovské třídy. Překrývání konstruktorů a metod. Tvorba abstraktní třídy. Tvorba rozhraní.
4) Vyvolání výjimky. Ošetření výjimky. Vytvoření vlastní výjimky.
5) Implementace rekurzivního algoritmu. Ukázka následku nevhodné ukončovací podmínky.
6) Použití standardního vstupu. Použití standardního výstupu.
7) Otevření souboru. Čtení ze souboru. Zápisu do souboru. Serializace objektu.
8) Práce se seznamy (ArrayList a LinkedList). Práce s množinami (HashSet a TreeeSet). Práce s mapami (HashMap a TreeMap).
9) Použití obálkových typů. Použití výčtových typů. Tvorba a použití generické třídy.
10) Použití kontrolních výpisů. Použití integrovaného softwarového debuggeru. Tvorba a použití jednotkových testů. Ukázka automatizovaného generování dokumentace programu.
11) Tvorba jednoduchého grafického uživatelského rozhraní. Přidání grafických komponent s využití správce uspořádání. Práce s grafickou komponentou.
12) Spuštění a vytvoření nového vlákna. Ukázka synchronizace vláken. Realizace komunikace mezi vláky.
13) Ukázka dodržení návrhového principu SOLID. Ukázka dodržení návrhového principu Deméteřin zákon. Implementace návrhového vzoru Přepravce. Implementace návrhového vzoru Služebník.
Elearning