Detail předmětu
Seminář Java (v angličtině)
IJAe Ak. rok 2022/2023 zimní semestr 5 kreditů
Objektová orientace. Přehled jazyka Java - 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. přednášky
- 12 hod. pc laboratoře
- 14 hod. projekty
Bodové hodnocení
- 20 bodů půlsemestrální test (12 bodů písemná část, 8 bodů testová část)
- 40 bodů projekty
- 40 bodů domácí úkoly
Zajišťuje ústav
Přednášející
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. Praktická zkušenost s tvorbou grafických uživatelských rozhraní a využitím návrhových vzorů.
Základy objektově orientovaného programování, znalost základních návrhových vzorů.
Cíle předmětu
Cílem je naučit studenty základy objektově orientovaného programování v jazyce Java.
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í
- 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.
- The Java Tutorials. https://docs.oracle.com/javase/tutorial/
- Bruce Eckel: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486 [some editions are available electronically on WWW]
Literatura referenční
- Bruce Eckel: Thinking in Java (4th Edition), 2006, ISBN-13: 978-0131872486 [some editions are available electronically on WWW]
- Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017. ISBN-13: 978-1292223858.
Osnova přednášek
- Ú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 počítačových cvičení
- Základy jazyka Java, první aplikace, práce s balíčky a třídami, kompilace a spuštění z příkazové řádky.
- Řídicí struktury, pole, výčtový typ, datové typy. Základy objektové orientace.
- Kolekce.
- Vlákna.
- Grafické uživatelské rozhraní. Návrhové vzory.
- Nástroje (jar, javadoc, ant, maven).
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í.
Kontrolovaná výuka
- Vypracování domácích úkolů a projektu.
Podmínky zápočtu
- Vypracovat úkoly.
- Vypracovat a prezentovat projekt.
- Získat nejméně 20 bodů z projektu a 50 bodů celkem.