Vyučující
|
-
Matušíková Marcela, Ing.
-
Král Erik, Ing. Ph.D.
-
Fojtů Dušan, Ing. Ph.D.
|
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říprava na zápočet
- 30 hodin za semestr
- Účast na výuce
- 42 hodin za semestr
- Domácí příprava na výuku
- 36 hodin za semestr
|
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í |
---|
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í. |
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. |
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 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. |
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.
|