| Název předmětu | Objektové programování a návrhové vzory |
|---|---|
| Kód předmětu | AUPKS/AK3OV |
| Organizační forma výuky | Přednáška |
| Úroveň předmětu | Bakalářský |
| Rok studia | nespecifikován |
| Semestr | Zimní |
| Počet ECTS kreditů | 4 |
| 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í |
|---|
|
| 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. Deterministická a nedeterministická destrukce 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. - Delegáti, eventy a lambda výrazy. - 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.
|
| Studijní aktivity a metody výuky |
Přednášení, Cvičení na počítači
|
| Výsledky učení |
| Odborné znalosti |
| 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í. |
| 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. |
| Odborné dovednosti |
| 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. |
| 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. |
| 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 |
|
| Studijní plány, ve kterých se předmět nachází |
| Fakulta | Studijní plán (Verze) | Kategorie studijního oboru/specializace | Doporučený semestr |
|---|