Detail předmětu

Seminář Java

IJA Ak. rok 2021/2022 letní semestr 4 kredity

Aktuální akademický rok

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.

Garant předmětu

Koordinátor předmětu

Jazyk výuky

česky, anglicky

Zakončení

zápočet (písemná)

Rozsah

  • 26 hod. seminář
  • 13 hod. projekty

Bodové hodnocení

  • 100 bodů projekty

Zajišťuje ústav

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. 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ů.

Cíle předmětu

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í.

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í.

Doporučené prerekvizity

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]

Osnova seminářů

  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.

Osnova seminářů

  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.

Osnova ostatní - projekty, práce

  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í.

Průběžná kontrola studia

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

Kontrolovaná výuka

  • Vypracování úkolů a projektu.
  • Součástí hodnocení projektu je obhajoba.

Podmínky zápočtu

  • Získat nejméně 1 bod z každého úkolu.
  • Získat nejméně 50% bodů z projektu.
  • Získat nejméně 50% bodů z celkového hodnocení.

Zařazení předmětu ve studijních plánech

  • Program BIT, 2. ročník, povinně volitelný skupina T
  • Program IT-BC-3, obor BIT, 2. ročník, povinně volitelný skupina T
Nahoru