Object Programming and Modeling

B232 - Summer 23/24
This course is not present in Moodle. You can visit its homepage by clicking the "Course page (outside Moodle)" button on the right (if available).

Object Programming and Modeling - AD7B36OMO

Credits 6
Semesters Summer
Completion Assessment + Examination
Language of teaching Czech
Extent of teaching 14KP+6KC
Annotation
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
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.
Literature
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
Requirements
Basic knowledge of programming.