The course aims to introduce students to one of the most common contemporary paradigms for the design and implementation of software systems, namely the object-oriented paradigm. Course contents:
- the history of the OO paradigm, OOP languages and their importance for the development of software engineering;
- introduction to the OO paradigm, regardless of a particular programming language (object, state, behaviour, message, class, encapsulation, inheritance, polymorphism, error handling);
- OO analysis and design (charts for OO design, OO methodology for designing software systems);
- realization of the OO paradigm in a specific OOP language (C ++);
- comparison with other OOP languages (C #, JAVA, Smalltalk, Prolog ++, Object Pascal);
- discussions on multiple learning examples.
The exercises illustrate the lecture material. Students deep and expand their knowledge and skills for practical programming in a chosen modern programming environment. Students acquire the skills to freely use and apply (in their own applications) the basic concepts, means and methods of object-oriented designing and programming.