
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.
- Преподавател: Силвия Гафтанджиева
 - Преподавател: Росица Донева