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

» Seznam fakult » FAI » AUPKS
Název předmětu Objektové programování
Kód předmětu AUPKS/AE3OP
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 4
Vyučovací jazyk Čeština, 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í
Dostupnost předmětu Předmět je nabízen přijíždějícím studentům
Vyučující
  • Král Erik, Ing. Ph.D.
  • Beltran Prieto Luis Antonio, MSc.
Obsah předmětu
- Základní paradigmata programování, deklarativní programování, imperativní programování, objektově orientované programování. - Základní OOP terminologie. Popis objektu pomocí třídy, atributy, metody, zapouzdření. - Konstruktory a destruktory. Přetěžování metod (Method Overloading). - Skládání objektů. - Dědičnost kódu, výhody a nevýhody ve srovnání se skládáním objektů. - Životní cyklus objektu. Správa paměti automatická (na zásobníku), statický blok, dynamická alokace (na haldě). - Vztahy mezi objekty (asociace, agregace a kompozice), - Kopírování objektů, hluboká a mělká kopie objektu. Kopírovací konstruktor. - Polymorfismus. Virtuální a abstraktní metody, abstraktní třídy, - Dědičnost rozhraní (Interface). - Šablony a generické programování. - Základní návrhové vzory. Singleton, Factory a další klasické návrhové vzory. - UML diagramy tříd a sekvenční diagramy. - Tvorba znovupoužitelných knihoven a použití knihoven třetích stran.

Studijní aktivity a metody výuky
Přednášení, Cvičení na počítači
Předpoklady
Odborné znalosti
U studenta se předpokládají základní znalosti programování a algoritmizace, obsažené v předmětech zařazených v předcházejících semestrech studia.
U studenta se předpokládají základní znalosti programování a algoritmizace, obsažené v předmětech zařazených v předcházejících semestrech studia.
Výsledky učení
Defines what a class, object and object-oriented programming are.
Defines what a class, object and object-oriented programming are.
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.
Describes the difference between automatic memory management on the stack and dynamic memory allocation on the heap.
Describes the difference between automatic memory management on the stack and dynamic memory allocation on the heap.
Explains the advantages of using generic programming and generic collections.
Explains 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).
Popíše rozdíl mezi automatickou správnou paměti na zásobníku a dynamickou alokací paměti na haldě.
Popíše rozdíl mezi automatickou správnou paměti na zásobníku a dynamickou alokací paměti na haldě.
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 overlapping virtual and abstract methods.
Applies overlapping 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, 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, J. DAVIDSON, K. Datové struktury bez předchozích znalostí. Praha : Computer Press, 2006. ISBN 80-251-0689-6.
  • Keogh, James Edward. OOP bez předchozích znalostí : průvodce pro samouky. Vyd. 1. Brno : Computer Press, 2006. ISBN 80-251-0973-9.
  • PECINOVSKÝ, R. OOP - Learn Object Oriented Thinking and Programming. Řepín, 2013. ISBN 978-80-904661-8-0.


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