Course: Object-oriented Programming and Design Patterns

» List of faculties » FAI » AUPKS
Course title Object-oriented Programming and Design Patterns
Course code AUPKS/AE2OP
Organizational form of instruction Lecture + Lesson
Level of course unspecified
Year of study not specified
Semester Winter and summer
Number of ECTS credits 4
Language of instruction English
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
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.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester