Lecturer(s)
|
-
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.
|
Course content
|
- Basic OOP terminology. - Objects, classes, attributes, methods, encapsulation. Constructors and destructors. Method overloading. - Object lifetime and memory management. Static fields and methods. Manual memory managemet, automatic memory management. Determenistic and non-deterministic object destruction. - Objects realtions (association, aggregation, composition), objects embedding - Code inheritnace, advantages and disadvantages compare to object embedding. - Object copying, deep and shallow copy. Copy constructor. - Polymorphism. Method overriding, virtual and abstract methods. Abstract classes. - Interface inheritance. - Templates and generic programming. Generic data types and collections. - Basic desing patterns. Singleton, factory and others. - Dependency injection design pattern and Inversion of control principle. - Observer design pattern and its usage. - Asynchronous data processing, concurrent acces to objects. - Case study.
|
Learning activities and teaching methods
|
Lecturing, Exercises on PC
|
learning outcomes |
---|
Knowledge |
---|
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í. |
Skills |
---|
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. |
teaching methods |
---|
Knowledge |
---|
Exercises on PC |
Exercises on PC |
Lecturing |
Lecturing |
assessment methods |
---|
Written examination |
Written examination |
Recommended literature
|
-
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.
|