Předmět: Objektové programování II pro AI

« Zpět
Název předmětu Objektové programování II pro AI
Kód předmětu UAI/520
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Četnost výuky V každém akademickém roce, jen v letním semestru.
Semestr Letní
Počet ECTS kreditů 5
Vyučovací jazyk čeština
Statut předmětu Povinný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Barabáš Vít, Mgr. Bc.
  • Konopa Michal, Mgr.
  • Jelínek Jiří, Ing. CSc.
Obsah předmětu
Obsah a osnova předmětu: 1. OOP - základní principy a mechanismy. 2. Vztahy mezi objekty - dědičnost, polymorfismus, interface, abstraktní třída, výjimky, diagram tříd. 3. Genericita a její podpora v Javě - typ jako parametr. 4. Kolekce - Java Collection Framework, iterátory. 5. Vlákna, paralelismus synchronizace. 6. Funkcionální programování, lambda funkce. 7. GUI - událostmi řízený program, javax.swing, JavaFX. 8. Síťování - podpora síťové komunikace v jazyce Java, klient, server. 9. Kritéria kvality návrhu tříd koheze a soudržnost. 10. Týmova spolupráce - repozitáře, Git. Praktická část předmětu (cvičení) kopíruje obsahově přednášky. V rámci cvičení budou studenti v praxi uplatňovat a procvičovat teoretické poznatky z přednášek. Předpokládá se i využití práce v týmech a projektová výuka.

Studijní aktivity a metody výuky
Monologická (výklad, přednáška, instruktáž), Demonstrace, Projekce (statická, dynamická), Praktická výuka, Případová studie
  • Účast na výuce - 56 hodin za semestr
  • Příprava na zkoušku - 26 hodin za semestr
  • Semestrální práce - 26 hodin za semestr
  • Domácí příprava na výuku - 22 hodin za semestr
Výstupy z učení
Předmět je druhou částí úvodního kurzu objektového programování, je zaměřen na rozšíření znalostí z první části kurzu a na praktické uplatnění v něm získaných znalostí. Studenti jsou seznamováni se základy OOP a typickými koncepty s touto technikou spojenými (dědičnost, polymorfismus, atd.). Následuje seznámení s principy genericity, kolekcemi, s prací s vlákny, datovými toky a vytváření síťové aplikace s čímž souvisí i použití funkcionálního programování a tvorba GUI.
Absolvent kurzu bude schopen navrhovat a implementovat pokročilé aplikace s grafickým rozhraním využívající knihovny z probíraných témat. Naučí se, jak používat třídy a rozhraní pro práci s vlákny, datovými toky a pro tvorbu síťových aplikací. Absolvent bude dále umět používat pokročilé techniky programování a některé vybrané návrhové vzory.
Předpoklady
Předpokladem pro tento předmět je úspěšné absolvování předmětu OBP I (UAI/510).

Hodnoticí metody a kritéria
Písemná zkouška, Rozbor produktů pracovní činnosti studenta (technické práce), Kombinovaná zkouška, Test, Seminární práce, Průběžné hodnocení

Pro úspěšné absolvování předmětu je potřeba řešit průběžné úkoly ve cvičeních, absolvovat dva teoretické testy, vypracovat semestrální projekt a absolvovat ústní zkoušku.
Doporučená literatura
  • DHURI, Debasish Ray. Java 9 Data Structures and Algorithms. Packt Publishing Ltd, 2017. ISBN 9781785888076.
  • EVANS, Ben; FLANAGAN, David. Java in a Nutshell: A Desktop Quick Reference. O'Reilly Media, 2018. ISBN 9781492037224.
  • PECINOVSKÝ, Rudolf. Java 14 - Kompletní příručka jazyka. Grada, 2020. ISBN 978-80-271-1369-9.
  • VIRIUS, Miroslav. Java 2. díl - Knihovny. CVUT Praha, 2020. ISBN 978-80-01-06753-6.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr