Subject description - A7B36OMO

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
A7B36OMO Object Programming and Modeling Extent of teaching:2P+2C
Guarantors:  Roles:P Language of
Teachers:  Completion:Z,ZK
Responsible Department:13136 Credits:6 Semester:L


Object-oriented approach to software development prevails in all of its three phases: analysis, design and implementation. The aim of this course is to give the students a firm understanding of basic concepts and notions of object theory and sketch its formal foundations.

Study targets:

After completing this course, students will understand basic concepts and notions of object theory and will be able to apply them correctly in moderately difficult situations.

Course outlines:

1. Classes and objecst; runtime representation
2. Type system; implementation hiding
3. Subtype polymorphism, subsumption and Liskov substitution principle
4. Static methods and variables; formal semantics
5. Pointers, linked lists, pointer-based structures
6. Correctness, assertions, class/data structure invariant, encapsulation, representation exposure
7. Inheritance; method dispatch
8. Parametric polymorphism (generic classes)
9. Advanced polymorphism; binary methods; creational design patterns
10. Immutability; advanced collections; higher-order functions
11. Metaprogramming

Exercises outline:


1. B. Eckel: Thinking in Java
2. Er. Gamma et al.: Design Patterns: Elements of Reusable Object-Oriented Software
3. Course webpage:


Basic knowledge of programming and mathematics.



Subject is included into these academic programs:

Program Branch Role Recommended semester
BPSTM_BO Common courses P 2
BPSTMWM Web and Multimedia P 2
BPSTMSI Software Engineering P 2
BPSTMMI Manager Informatics P 2
BPSTMIS Intelligent Systems P 2

Page updated 13.12.2019 17:52:09, semester: Z,L/2020-1, L/2018-9, Z,L/2019-20, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)