Detail předmětu
Seminář Java
FIT-IJAAk. rok: 2022/2023
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.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení 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ů.
Prerekvizity
Způsob a kritéria hodnocení
Studenti řeší během semestru několik úkolů a v závěru jeden projekt.
Učební cíle
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í.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
- Vypracování úkolů a projektu.
- Součástí hodnocení projektu je obhajoba.
Prerekvizity a korekvizity
- doporučená prerekvizita
Základy programování
Základní literatura
Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017. ISBN-13: 978-1292223858.
Y. Daniel Liang. Introduction to Java Programming and Data Structures, Global Edition, 12th edition. PEARSON 2021. ISBN-13: 978-1-292-40207-9.
Doporučená literatura
Internetové zdroje: Oracle The Java Tutorial (https://docs.oracle.com/javase/tutorial/), JDK 17 Documentation (https://docs.oracle.com/en/java/javase/17/).
Joshua Bloch: Effective Java, Prentice Hall; 2 edition (May 28, 2008), ISBN-13: 978-0321356680
Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft: Java 8 & 9 in Action, Second Editition (Lambda, streams, functional and reactive programming). Manning, 2018.
Elearning
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Cvičení odborného základu
Vyučující / Lektor
Osnova
- Ú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.
Projekt
Vyučující / Lektor
Osnova
- Úkoly procvičující znalosti základních vlastností jazyka Java.
- Projekt - malá aplikace v Javě včetně grafického uživatelského rozhraní.
Elearning