ECTS credits: 5
Lectures: 2
Exercises: 2

Course objective:

Introduce the students to the concepts of object-oriented programming.

Course contents:

Definition of object-oriented programming. Difference between object and procedural programming. Presentation of program tools and platform. Classes and objects. Inheritance and encapsulation. Polymorphism. Abstract classes. Abstract and virtual methods. Overloading of methods, characteristics and operators. Definition and the use of delegates and events. Defining and implementing interfaces. Class diagrams and diagrams of objects. Diagrams of sequence and cooperation. Diagrams of activities and conditions. Design of program components.

Competences:

Student shall be presented with characteristics and concepts of object-oriented programming. Practical work to define and develop applications shall enable student to obtain practical knowledge and skills for the application of object oriented programming in the solving of certain problems, skills in using object oriented programming languages and skills in using development tools.

Learning outcomes:

Having passed the exam, the student will be able to: 1. Write a simple program based on object-oriented principles. 2. Select development option for applications in object-oriented or procedural programming language. 3. Organize parts of applications in classes, interfaces and packages in accordance with the object oriented programming principles. 4. Create object oriented model of class hierarchies on which the implementation of application shall be based. 5. Self-evaluate is it necessary to structure more complex classes into several simple ones for better modularity. 6. Organize classes so that they use other application components through other classes. 7. Design the structure in order to be adapted for subsequent expansion. These outcomes contribute to the learning outcomes of the study program: - Use the functionalities of contemporary engineering tools (5). - Develop software applications by using contemporary structural, procedural and object programming languages (6). - Use professional literature and search accessible information bases and knowledge bases (12).