Detail předmětu

Seminář Java

FIT-IJAAk. rok: 2021/2022

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

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

Základní znalosti imperativního programování (jazyk C) a algoritmizace.

Způsob a kritéria hodnocení

Studenti řeší během semestru několik úkolů a v závěru jeden projekt.

Osnovy výuky

  1. Úvod do jazyka Java: historie, nástroje, distribuce. Základní pojmy: objekt, třída, konstruktor.
  2. Datové typy. Deklarace třídy, modifikátory přístupu. Sestavení a spuštění aplikace, struktura aplikace (balíky), import tříd.
  3. Dědičnost, inicializace objektu, hierarchie dědičnosti (třída Object). Typová konverze.
  4. Abstraktní třída, rozhraní. Typová zaměnitelnost. Pole.
  5. Výjimky. Vnořené třídy, anonymní třídy. Lambda výrazy. Ověřování invariantů (assert).
  6. Kontejnery: iterátor, kolekce, seznam, množina, mapa, komparátory. Výčtový typ.
  7. Vlákna: plánování, sdílení, synchronizace.
  8. Anotace. Ladění programu (JUnit), generování dokumentace, sestavování aplikace (ant, maven), distribuce (java archive).
  9. Objektově orientovaný návrh a implementace v jazyce Java.
  10. Grafické uživatelské rozhraní JFC/Swing a JavaFX. Návrhové vzory MVC, Observer a Command.
  11. Vstup/Výstup. Sokety. Proudové zpracování kolekcí.
  12. Moduly, modulární JDK, runtime image. Generické typy (Generics). Zásady programování v Javě.
  13. JVM: zavádění tříd, správa paměti, garbage collector, profiling.

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

Základní literatura

Eckel, B.: Thinking in Java (4th Edition), 2006, ISBN: 978-0131872486 [starší edice dostupné elektronicky na WWW]
Harvey Deitel, Paul J. Deitel. Java How to Program, Early Objects. Global edition, 11th edition. PEARSON 2017.  ISBN-13: 978-1292223858.

Doporučená literatura

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/).
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

  • Program IT-BC-3 bakalářský

    obor BIT , 2 ročník, letní semestr, povinně volitelný

  • Program BIT bakalářský 2 ročník, letní semestr, povinně volitelný

Typ (způsob) výuky

 

Seminář

26 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Úvod do jazyka Java: historie, nástroje, distribuce. Základní pojmy: objekt, třída, konstruktor.
  2. Datové typy. Deklarace třídy, modifikátory přístupu. Sestavení a spuštění aplikace, struktura aplikace (balíky), import tříd.
  3. Dědičnost, inicializace objektu, hierarchie dědičnosti (třída Object). Typová konverze.
  4. Abstraktní třída, rozhraní. Typová zaměnitelnost. Pole.
  5. Výjimky. Vnořené třídy, anonymní třídy. Lambda výrazy. Ověřování invariantů (assert).
  6. Kontejnery: iterátor, kolekce, seznam, množina, mapa, komparátory. Výčtový typ.
  7. Vlákna: plánování, sdílení, synchronizace.
  8. Anotace. Ladění programu (JUnit), generování dokumentace, sestavování aplikace (ant, maven), distribuce (java archive).
  9. Objektově orientovaný návrh a implementace v jazyce Java.
  10. Grafické uživatelské rozhraní JFC/Swing a JavaFX. Návrhové vzory MVC, Observer a Command.
  11. Vstup/Výstup. Sokety. Proudové zpracování kolekcí.
  12. Moduly, modulární JDK, runtime image. Generické typy (Generics). Zásady programování v Javě.
  13. JVM: zavádění tříd, správa paměti, garbage collector, profiling.

Projekt

13 hod., povinná

Vyučující / Lektor

Osnova

  1. Úkoly procvičující znalosti základních vlastností jazyka Java.
  2. Projekt -  malá aplikace v Javě včetně grafického uživatelského rozhraní.

Elearning