Detail předmětu
Seminář Java
FIT-IJAAk. rok: 2019/2020
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
čeština
Počet kreditů
4
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. 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 programovacích technik v Javě a návrhových vzorů.
Základy objektově orientovaného programování, znalost základních programovacích technik v Javě a návrhových vzorů.
Prerekvizity
Základní znalosti imperativního programování (jazyk C) a algoritmizace.
Způsob a kritéria hodnocení
- Získat nejméně 1 bod z každého domácího úkolu.
- Získat nejméně 50% bodů z projektu
- Získat alespoň 50 bodů v celkovém součtu.
Učební cíle
Cílem je naučit studenty základy objektově orientovaného programování v jazyce Java.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
- Vypracování domácích úkolů a projektu.
Prerekvizity a korekvizity
- doporučená prerekvizita
Základy programování
Základní literatura
Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
Doporučená literatura
Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
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.
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.
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Projekt
13 hod., povinná
Vyučující / Lektor
Osnova
- domácí úkoly
- projekt (malá aplikace v Javě)
Seminář
26 hod., nepovinná
Vyučující / Lektor
Osnova
- Úvod do jazyka Java: historie, nástroje, distribuce. Základní pojmy: objekt, třída, rozhraní, 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. Assert.
- Abstraktní třída, rozhraní. Typová zaměnitelnost. Pole.
- Objektově orientovaný návrh a implementace v jazyce Java.
- Nástroje: generování dokumentace, Java Archive (JAR), Apache Ant, JUnit (ladění programu). Anotace.
- Výjimky. Vnořené třídy, výčtový typ, varargs. Lambda výrazy.
- Kontejnery: iterátor, kolekce, seznam, množina a mapa. Generické kontejnery. For-each loop, autoboxing.
- Vlákna (threads): plánování, sdílení, synchronizace.
- Grafické uživatelské rozhraní JFC/Swing. Vzory MVC, Observer a Command.
- Vstup/Výstup. Sokety. Proudové zpracování kolekcí.
- Java 8: rozhraní, generics. Zásady programování v Javě.
- JVM: zavádění tříd, správa paměti, garbage collector, profiling.