Detail předmětu
Seminář Java
IJA Ak. rok 2024/2025 letní semestr 4 kredity
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).
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í
Cíle předmětu
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ů.
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]
-
Y. Daniel Liang. Introduction to Java Programming and Data Structures, Global Edition, 12th edition. PEARSON 2021. ISBN-13: 978-1-292-40207-9.
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
- Vypracování průběžných úkolů a projektu.
- Součástí hodnocení projektu je obhajoba.
Rozvrh
Den | Typ | Týdny | Místn. | Od | Do | Kapacita | PSK | Skup | Info |
---|---|---|---|---|---|---|---|---|---|
Pá | seminář | 1., 2., 3., 4., 5., 6., 7., 9., 10., 11., 12., 13. výuky | D105 | 09:00 | 11:50 | 316 | 2BIA 2BIB 3BIT | xx | Kočí |
Pá | seminář | 2025-04-04 | D0206 | 09:00 | 11:50 | 316 | 2BIA 2BIB 3BIT | xx | Kočí |
Zařazení předmětu ve studijních plánech
- Program BIT, 2. ročník, povinně volitelný skupina T
- Program BIT (anglicky), 2. ročník, povinně volitelný skupina T