Detail předmětu
Seminář Java
FIT-IJAAk. rok: 2024/2025
Objektová orientace a koncepty jazyka Java (objekt, třída, rozhraní, výjimky, kolekce, proudy, lambda výrazy, generics). Principy objektového návrhu, programovací techniky a návrhové vzory. Ladění a profilace. Paralelismus (vlákna, executors, synchronizace). Grafická uživatelská rozhraní, asynchronní programování (události, úlohy).
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í.
Podmínky zápočtu
- Získat nejméně 50% bodů z projektu.
- Získat nejméně 50% bodů z celkového hodnocení.
Odkazy
Pro organizaci výuky bude využíván e-learing v systému Moodle.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Základní znalosti imperativního programování (jazyk C) a algoritmizace.
Pravidla hodnocení a ukončení předmětu
- Vypracování průběžných úkolů a projektu.
- Součástí hodnocení projektu je obhajoba.
- Pro získání zápočtu je nutné získat nejméně 50% bodů z projektu a nejméně 50% bodů z celkového hodnocení.
Učební cíle
Studenti získají schopnost aplikace objektově orientovaného přístupu k tvorbě aplikací s využitím jazyka Java a znalost základních programovacích technik v Javě. Seznámí se s tvorbou jednoduchých grafických uživatelských rozhraní, základními navrhovými vzory, využitím vláken a praktickým využitím jednotkových testů.
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
Seminář
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