Vyučující
|
-
Královcová Jiřina, doc. Ing. Ph.D.
-
Vitvarová Jana, Ing. Ph.D.
|
Obsah předmětu
|
Základní charakteristika: Předmět prohlubuje znalosti programování v programovacím jazyce vyšší úrovně. Studenti se seznámí s problematikou objektově orientovaného návrhu, algoritmizace úloh, zpracování dat v externích diskových souborech. Praktické ukázky a cvičení jsou vedeny v programovacím jazyce Java. Důraz je kladen na získání znalostí a dovedností pokrývajících celý cyklus vývoje programů zahrnující prvky jako jsou: analýza, návrh, implementace, ladění, testování, dokumentace. Témata přednášek: 1. Objektové programování, základní vlastnosti. Objektový přístup k programování, objektový návrh. Formální zápis základního objektového návrhu - class diagram. Zapouzdření, dědičnost, polymorfismus. 2. Základní aspekty vývoje programů, fáze vývoje. Verzování. Seznámení se základními principy verzovacích systémů. 3. Chyby v programu. Výjimky. Typy výjimek. Zpracování a obsluha výjimek. Definování vlastních výjimek. Logování. 4. Testování programu. Unit testy. 5. Manipulace s diskovými soubory a adresáři. Prostředky jazyka pro vytváření a správu souborů a adresářů z kódu programu. Prostředky v balících java.io a java.io. 6. Proudy. Systém proudů pro čtení a zápis diskových souborů. Systém tříd a rozhraní. Abstraktní třídy a prostředky, základní třídy proudů pro čtení a zápis diskových souborů pro fyzický přesun dat. 7. Čtení a zápis textových souborů. Zpracování souboru po znacích. Formátovaný vstup a výstup. Kódování souboru, čtení a zápis v různém kódování. Změna kódování při vstupně/výstupních operacích na konzoli. 8. Čtení a zápis binárních souborů. Přístup po bytech. Problematika čtení/zápisu vícebytových hodnot. Soubory s náhodným přístupem 9. Rekurze v kódu - rekurzivní metody. Základní ukázky. Příklady efektivního využití při řešení některých typů úloh. Java Collection framework - základní přehled tříd a rozhraní a jejich význam. Ukázka použití. 10. Kontejnerové třídy a dynamické datové struktury. 11. Ukázka implementace vlastní dynamické datové struktury. 12. Využití "nesouborových" proudů. Zpracování souborů vybraných typů pomocí prostředků jazyka Java: ZIP, CSV, JSON, XML, YAML soubory. 13. Instruovaná ukázka řešení komplexnější úlohy demonstrující využití objektového přístupu. Návrh a implementace obecného systému pro řešení definované třídy úloh a využití tohoto systému pro řešení konkrétní úloh/úloh. Při řešení úlohy je demonstrován objektový návrh, návrh rozhraní; využívá se dědičnost, polymorfismus, základních kontejnerové třídy, genericita, vytvoření stromové struktury. Řešení konkrétní úlohy implementací navrženého rozhraní. 14. Instruovaná ukázka řešení komplexnější úlohy - dokončení. Náplň cvičení: 1. Objektový návrh. Zapouzdření dat. 2. Dědičnost a polymorfismus. 3. Rozhraní a jeho využití. 4. Využití výjimek, ošetření kódu. Logování. Praktické využití verzovacího systému. 5. Testování programu. Příprava a realizace testů. Ukázka TDD (Test Driven Development) přístupu. 6. Diskové adresáře a soubory. Procházení adresářů. 7. Základní manipulace s diskovými soubory - zápis, čtení po znacích, po bytech. Využití základních tříd proudů. 8. Textové soubory. Zpracování textu, formátovaná data. Čtení a zápis v různém kódování. 9. Binární soubory a jejich zpracování. 10. Náhodný přístup k souboru. Základní operace nad diskovým souborem - přidání, čtení, editace záznamů. 11. Využití rekurze v kódu. 12. Zpracování vybraných souborových formátů s využitím prostředků jazyka. 13. Více vláken v jediné aplikaci. 14. Zápočtový test, předání seminárních prací.
|
Studijní aktivity a metody výuky
|
Monologický výklad (přednáška, prezentace, vysvětlování), Skupinová konzultace, Cvičení, E-learning, Prezentace práce studentů, Samostudium studentů
- Domácí příprava na výuku
- 6 hodin za semestr
|
Výstupy z učení
|
Předmět prohlubuje znalosti programování v programovacím jazyce vyšší úrovně. Studenti se seznámí s postupy v oblasti objektově orientovaného programování, algoritmizace úloh a realizace algoritmů v programovacím jazyce Java. Algoritmy jsou směrovány do oblastí: zpracování textových řetězců, zpracování diskových souborů, numerické metody, realizace a procházení seznamů a stromových struktur.
Student získá znalosti v oblasti objektově orientovaného programování, algoritmizace úloh a realizace algoritmů v programovacím jazyce Java. Algoritmy jsou směrovány do oblastí: zpracování textových řetězců, zpracování diskových souborů, numerické metody, realizace a procházení seznamů a stromových struktur.
|
Předpoklady
|
Základní znalost algoritmizace, znalost základních konstrukcí jazyka Java. Zápočet z předmětu ALG1.
MTI/ALG1
|
Hodnoticí metody a kritéria
|
Kombinovaná zkouška, Praktická zkouška
Účast na cvičeních. Realizace zadané samostatné práce. Zápočtové testy. Složení zkoušky.
|
Doporučená literatura
|
-
BLOCH Joshua. Effective java. Addison-Wesley, 2018. ISBN 978-01-3468-599-1.
-
CORMEN Thomas H. Introduction to algorithms. ISBN 978-02-6203-384-8.
-
HEROUT Pavel. Java - bohatství knihoven. České Budějovice, 2008. ISBN 978-80-7232-368-5.
-
HEROUT Pavel. Testování pro programátory. ČEské Budějovice, 2016. ISBN 978-80-7232-481-1.
-
HEROUT Pavel. Učebnice jazyka Java. Ćeské Budějovice, 2010. ISBN 978-80-7232-398-2.
-
PECINOVSKÝ Rudolf. Návrhové vzory, 33 vzorových postupů pro objektové programování. Brno, 2007. ISBN 978-80-251-1582-4.
-
SCHILDT Herbert. Java 7: výukový kurz. Brno, 2012. ISBN 978-80-251-3748-2.
|