Detail předmětu
Seminář Java
IJA Ak. rok 2021/2022 letní semestr 4 kredity
Objektová orientace. Přehled vlastností jazyka Java. Objektový model, objekty, třídy, programovací techniky, knihovny, vývojová prostředí. Návrhové vzory. Ladění a údržba programů. Grafická uživatelská rozhraní, vlákna.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. seminář
- 13 hod. projekty
Bodové hodnocení
- 100 bodů projekty
Zajišťuje ústav
Cvičící
Získané dovednosti, znalosti a kompetence z předmětu
Schopnost aplikace objektově orientovaného přístupu k tvorbě aplikací s využitím jazyka Java. Znalost základních programovacích technik v Javě. Praktická zkušenost s tvorbou grafických uživatelských rozhraní a využitím návrhových vzorů.
Cíle předmětu
Cílem je naučit studenty základy objektově orientovaného programování v prostředí jazyka Java. Studenti se také seznámí s využitím návrhových vzorů a jednotkových testů a s tvorbou jednoduchého grafického uživatelského rozhraní.
Proč je předmět vyučován
Současná praxe vyžaduje alespoň základní znalosti principů objektově orientovaného programování, programovacích technik a návrhových vzorů. Předmět probírá a cvičí uvedené aspekty na jazyku Java, který je v praxi rozšířeným jazykem pro tvorbu středně složitých až náročných aplikací.
Doporučené prerekvizity
- Základy programování (IZP)
Požadované prerekvizitní znalosti a dovednosti
Základní znalosti imperativního programování (jazyk C) a algoritmizace.
Literatura studijní
- Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
- Internetové zdroje: Oracle The Java Tutorial (https://docs.oracle.com/javase/tutorial/), JDK 17 Documentation (https://docs.oracle.com/en/java/javase/17/).
- Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 & 9 in Action, Second Editition (Lambda, streams, functional and reactive programming). Manning, 2018.
- Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
Literatura referenční
- Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017. ISBN-13: 978-1292223858.
- Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
Osnova seminářů
- Úvod do jazyka Java: historie, nástroje, distribuce. Základní pojmy: objekt, třída, konstruktor.
- Datové typy. Deklarace třídy, modifikátory přístupu. Sestavení a spuštění aplikace, struktura aplikace (balíky), import tříd.
- Dědičnost, inicializace objektu, hierarchie dědičnosti (třída Object). Typová konverze.
- Abstraktní třída, rozhraní. Typová zaměnitelnost. Pole.
- Výjimky. Vnořené třídy, anonymní třídy. Lambda výrazy. Ověřování invariantů (assert).
- Kontejnery: iterátor, kolekce, seznam, množina, mapa, komparátory. Výčtový typ.
- Vlákna: plánování, sdílení, synchronizace.
- Anotace. Ladění programu (JUnit), generování dokumentace, sestavování aplikace (ant, maven), distribuce (java archive).
- Objektově orientovaný návrh a implementace v jazyce Java.
- Grafické uživatelské rozhraní JFC/Swing a JavaFX. Návrhové vzory MVC, Observer a Command.
- Vstup/Výstup. Sokety. Proudové zpracování kolekcí.
- Moduly, modulární JDK, runtime image. Generické typy (Generics). Zásady programování v Javě.
- JVM: zavádění tříd, správa paměti, garbage collector, profiling.
Osnova seminářů
- Úvod do jazyka Java: historie, nástroje, distribuce. Základní pojmy: objekt, třída, konstruktor.
- Datové typy. Deklarace třídy, modifikátory přístupu. Sestavení a spuštění aplikace, struktura aplikace (balíky), import tříd.
- Dědičnost, inicializace objektu, hierarchie dědičnosti (třída Object). Typová konverze.
- Abstraktní třída, rozhraní. Typová zaměnitelnost. Pole.
- Výjimky. Vnořené třídy, anonymní třídy. Lambda výrazy. Ověřování invariantů (assert).
- Kontejnery: iterátor, kolekce, seznam, množina, mapa, komparátory. Výčtový typ.
- Vlákna: plánování, sdílení, synchronizace.
- Anotace. Ladění programu (JUnit), generování dokumentace, sestavování aplikace (ant, maven), distribuce (java archive).
- Objektově orientovaný návrh a implementace v jazyce Java.
- Grafické uživatelské rozhraní JFC/Swing a JavaFX. Návrhové vzory MVC, Observer a Command.
- Vstup/Výstup. Sokety. Proudové zpracování kolekcí.
- Moduly, modulární JDK, runtime image. Generické typy (Generics). Zásady programování v Javě.
- JVM: zavádění tříd, správa paměti, garbage collector, profiling.
Osnova ostatní - projekty, práce
- Úkoly procvičující znalosti základních vlastností jazyka Java.
- Projekt - malá aplikace v Javě včetně grafického uživatelského rozhraní.
Průběžná kontrola studia
Studenti řeší během semestru několik úkolů a v závěru jeden projekt.
Kontrolovaná výuka
- Vypracování úkolů a projektu.
- Součástí hodnocení projektu je obhajoba.
Podmínky zápočtu
- Získat nejméně 1 bod z každého úkolu.
- Získat nejméně 50% bodů z projektu.
- Získat nejméně 50% bodů z celkového hodnocení.
Zařazení předmětu ve studijních plánech