Object Programming and Modeling
- Enrollement in the course requires an successful completion of the following courses:
- Algorithmics (AD7B36ALG)
- Department of Computer Science
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.
Basic knowledge of programming.
- Syllabus of lectures:
Introduction, motivation; objects and pointers, static and non-static methods; polymorphism, Liskov subsitution principle; composition, inheritance; encapsulation, state consistency; design patterns factory method, singleton, abstract factory, nonstatic context, state, strategy, observer, iterator, interpreter, visitor; Featherweight Java; typing, generic classes, covariance and contravariance; polymorphism vs. specialization; multiple inheritance; polymorphism vs. inheritance; representation exposure.
- Syllabus of tutorials:
- Study Objective:
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.
- Study materials:
1. B. Eckel: Thinking in Java
2. Er. Gamma et al.: Design Patterns: Elements of Reusable Object-Oriented Software
3. Course webpage: https://cw.fel.cvut.cz/wiki/courses/ad7b36omo/start
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans:
- Společný 1.ročník (STM-A7B) (compulsory course in the program)
- Inteligentní systémy (STM-A7B) (compulsory course in the program)
- Manažerská informatika (STM-A7B) (compulsory course in the program)
- Softwarové inženýrství (STM-A7B) (compulsory course in the program)
- Web a multimedia (STM-A7B) (compulsory course in the program)