Object-Oriented Programming (FSI-VOB)

Academic year 2025/2026
Supervisor: Ing. Jiří Kovář, Ph.D.  
Supervising institute: ÚAI all courses guaranted by this institute
Teaching language: Czech
Aims of the course unit:

The goal is to understand the features of object-oriented programming and the methodology of designing and creating a program using OOP, which is applied to the most commonly used development patters in the industrial environment. To learn about the support of object technology in C# and how it is developed in a DevOps environment.

The graduate will be able to use object-oriented programming technology to design and implement software systems using the C# programming language.

Learning outcomes and competences:
 
Prerequisites:
 
Course contents:

The course focuses on object-oriented programming and its use in the design and implementation of software systems that meet current software requirements. The explanation of OOP techniques is partially kept in general terms in terms of methodology, implementation details and practical examples use the C# language (optionally C++). The development of software solutions is in line with DevOps requirements.

Teaching methods and criteria:
 
Assesment methods and criteria linked to learning outcomes:

The course-unit credit award requirements are active participation in seminars, final test (at most 50 points) and the semestral project (at most 50 points). Students select their project assignments (according preselected goals), which are approved by the teacher. To pass the course, at least 50 points in total must be reached.
The attendance at lectures is recommended; the attendance at seminars is obligatory. Education runs according to week schedules. The form of compensation for missed seminars is fully in the competence of the tutor.

Controlled participation in lessons:
 
Type of course unit:
    Lecture  13 × 1 hrs. optionally                  
    Computer-assisted exercise  13 × 2 hrs. compulsory                  
Course curriculum:
    Lecture

1. Classification of programming languages. Development of programming technology. Characteristics of OOP. TDD.
2. C# language, basic concepts, object data types, access to object items.
3. Object, instance initialization, constructor and destructor, methods, arrays, modifiers.
4. Inheritance, object hierarchy and interrelationships, delegate, event.
5. Overloading, abstraction, virtual methods,
6. Casting - explicit and implicit, conversion.
7. Anonymous funkce, serialization, etc.
8. IO, data streams, task and thread.
9. Exceptions, LINQ.
10. Application design in .NET 8 and above.
11.-12. Object oriented design, general OOP methodology, design patterns.
13. Implementation of large scale projects.

    Computer-assisted exercise

1. Repeating algorithmization, working with the development environment.
2. Examples without using object properties.
3.-10. Examples to the topics discussed in the C# lectures (Messaging SW s SignalR, Aplikace s Kafka/RabbitMQ).
11., 12. Implementation of a server application in C# (API, Controllers, Minimal API).
13. Final test.

Literature - fundamental:
1. Weisfeld, M.: The Object-Oriented Thought Process. Addison-Wesley Professional, 2008.
2. Stroustrup, B.: The C++ Programming Language. 3rd Edition. Addison-Wesley Professional, 2000.
Literature - recommended:
1. Stroustrup, B.: The C++ Programming Language. 3rd Edition. Addison-Wesley Professional, 2000.
2. Prata, S.: Mistrovství v C++, 2. vydání. Computer Press, 2004
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
N-MAI-P full-time study --- no specialisation -- GCr 3 Elective 2 1 S
B-STR-P full-time study AIŘ Applied Computer Science and Control -- GCr 3 Compulsory 1 2 S