|
Lecturer(s)
|
-
Král Erik, Ing. Ph.D.
-
Beltran Prieto Luis Antonio, MSc.
|
|
Course content
|
- Basic programming paradigms, declarative, imperative and object-oriented programming. - Basic OOP terminology. Class and object, attributes, methods and encapsulation - Constructors and destructors. Method Overloading. - Object embedding. - Code Inheritance, advantages and disadvantages. - Object lifetime. Memory allocation, Garbage Collector, stack, heap - Object relations (association, aggregation and composition). - Object copy, deep and shallow copy. Copy constructor. - Polymorphism. Virtual and abstract method, abstract class. - Interface inheritance. - Generics and templates. - Basic design patterns. Singleton, Factory and others. - UML Class diagrams and sequence diagrams. - Development of reusable libraries nad usage of third-party libraries
|
|
Learning activities and teaching methods
|
Lecturing, Exercises on PC
- Participation in classes
- 42 hours per semester
- Preparation for course credit
- 20 hours per semester
- Term paper
- 26 hours per semester
- Home preparation for classes
- 20 hours per semester
|
| prerequisite |
|---|
| Knowledge |
|---|
| The basic knowladge of programming and algoritmization from previews studies is required. |
| The basic knowladge of programming and algoritmization from previews studies is required. |
| learning outcomes |
|---|
| 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í. |
| 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 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. |
| teaching methods |
|---|
| Knowledge |
|---|
| Exercises on PC |
| Exercises on PC |
| Lecturing |
| Lecturing |
| assessment methods |
|---|
| Written examination |
| Written examination |
|
Recommended literature
|
-
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.
|