Předmět: Objektové programování a návrhové vzory

» Seznam fakult » FAI » AUPKS
Název předmětu Objektové programování a návrhové vzory
Kód předmětu AUPKS/AE2OP
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Zimní a letní
Počet ECTS kreditů 4
Vyučovací jazyk Angličtina
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Beltrán Prieto Juan Carlos, Ing. Ph.D.
  • Žáček Petr, Ing. Ph.D.
  • Král Erik, Ing. Ph.D.
  • Čápek Petr, Ing.
  • Vogeltanz Tomáš, Ing. Ph.D.
  • Beltran Prieto Luis Antonio, MSc.
Obsah předmětu
- Základní OOP terminologie. - Objekty, třídy, atributy, metody, zapouzdření. Konstruktory a destruktory. Přetěžování metod (Method Overloading). - Životní cyklus objektu a správa paměti. Statické atributy a metody. Manuální a automatické správy paměti. Deterministickou a nedeterministická destrukcí objektu. - Vztahy mezi objekty (asociace, agregace a kompozice), skládání objektů. - Dědičnost kódu, výhody a nevýhody ve srovnání se skládáním objektů. - Kopírování objektů, hluboká a mělká kopie objektu. Kopírovací konstruktor. - Polymorfismus. Překrývání metod (Method Overriding), virtuální a abstraktní metody. Abstraktní třídy. - Dědičnost rozhraní (Interface) - Šablony a generické programování. Generické datové typy a kolekce. - Základní návrhové vzory. Singleton, Factory a další klasické návrhové vzory. - Návrhový vzor Dependency injection a princip Inversion of control. - Vzor Observer a jeho využití při komunikaci objektů. - Asynchronní zpracování dat, paralelní přístup k objektům. - Případová studie.

Studijní aktivity a metody výuky
Přednášení, Cvičení na počítači
Výsledky učení
Odborné znalosti
Defines what is a class, an object and object-oriented programming.
Defines what is a class, an object and object-oriented programming.
Explains the use of virtual and abstract methods.
Explains the use of virtual and abstract methods.
Describes the reasons for using interfaces
Describes the reasons for using interfaces
Justifies the benefits of organizing code.
Justifies the benefits of organizing code.
Explain the advantages of using generic programming and generic collections.
Explain the advantages of using generic programming and generic collections.
Definuje co je to třída, objekt a objektově orientované programování.
Definuje co je to třída, objekt a objektově orientované programování.
Vysvětlí použití virtuálních a abstraktních metod.
Vysvětlí použití virtuálních a abstraktních metod.
Popíše důvody použití rozhraní (interface).
Popíše důvody použití rozhraní (interface).
Zdůvodní výhodny organizace kódu s pomocí návrhového vzoru Dependency Injection.
Zdůvodní výhodny organizace kódu s pomocí návrhového vzoru Dependency Injection.
Objasní výhody použití generického programování a generických kolekcí.
Objasní výhody použití generického programování a generických kolekcí.
Odborné dovednosti
Analyzes a problem and proposes a solution using object-oriented programming.
Analyzes a problem and proposes a solution using object-oriented programming.
Organizes code appropriately into classes for clarity and code reusability.
Organizes code appropriately into classes for clarity and code reusability.
Applies overrided virtual and abstract methods.
Applies overrided virtual and abstract methods.
Defines an appropriate interface for easy extensibility of the code.
Defines an appropriate interface for easy extensibility of the code.
Selects appropriate generic data collections.
Selects appropriate generic data collections.
Analyzuje problém a navrhne jeho rešení s pomocí objektově orientovaného programování.
Analyzuje problém a navrhne jeho rešení s pomocí objektově orientovaného programování.
Ogranizuje kód vhodně do tříd z hlediska přehlednosti a znovuvyužitelnosti kódu.
Ogranizuje kód vhodně do tříd z hlediska přehlednosti a znovuvyužitelnosti kódu.
Použije překrývání virtuální a abstraktní metod.
Použije překrývání virtuální a abstraktní metod.
Definuje vhodné rozhraní pro snadnou rozšiřitelnost kódu.
Definuje vhodné rozhraní pro snadnou rozšiřitelnost kódu.
Zvolí vhodné generické datové kolekce.
Zvolí vhodné generické datové kolekce.
Vyučovací metody
Odborné znalosti
Cvičení na počítači
Cvičení na počítači
Přednášení
Přednášení
Hodnotící metody
Písemná zkouška
Písemná zkouška
Doporučená literatura
  • FOWLER, M. Patterns of enterprise application architecture. Boston: Addison-Wesley, 2003. ISBN 978-0-321-12742-6.
  • Fowler, Martin. Destilované UML. 1. vyd. Praha : Grada, 2009. ISBN 978-80-247-2062-3.
  • GAMMA, E., R. HELM, R. JOHNSON a J. VLISSIDES. Design Patterns. Addison-Wesley, 1994. ISBN 0-201-63361-2.
  • Keogh, James Edward. OOP bez předchozích znalostí : průvodce pro samouky. Vyd. 1. Brno : Computer Press, 2006. ISBN 80-251-0973-9.


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