This course covers object-oriented (OO) programming concepts and techniques using C++ language as an example. After completing the course students will understand the basic principles of OO programming and obtain OO programming skills. OO basic concepts - abstraction, encapsulation, inheritance and polymorphism are discussed as well as practical programming issues, including class hierarchy formation, an exception handling, templates, etc. Comparison of C++ with some other OO programming languages (eg C # or Java) is also given. During laboratory work students must demonstrate theoretical knowledge and acquire programming skills..

Goals and objectives
of the course in terms
of competences and skills

To understand and be able to explain the principles of object-oriented programming and technology, being able to apply these principles for the software development process using object-oriented programming language and visual programming environments.

Learning outcomes
and assessment

Is able to explain the OO concepts and demonstrate their implementation in C++. - Passed tests and examination.
Is able to independently implement the program in C++ using object oriented programming technology, to explain the program and statements used. - Successfully completed and defended laboratory works.
Is able to analyze the C++ programs for the structure and operation. - Passed tests and examination.
Is able to explain features of object-oriented and structural programming. - Passed tests and examination.