Course detail

The C++ Programming Language

FEKT-BPC-SCPAcad. year: 2023/2024

The first aspect discussed is the essentials of programming in C. Then, based on the use of a simple algorithm, the students will acquire a comprehensive idea of the characteristics of C++ specified by the relevant ISO standard. The set of these aspects includes mainly the properties of the objects, classes, and operators, inheritance, polymorphism, overloading, templates of the functions and classes, exception handling and implementation. The students will learn to use standard STL libraries.

Language of instruction


Number of ECTS credits


Mode of study

Not applicable.

Entry knowledge

Students wishing to enroll in the course should have an understanding of the basic principles of algorithmization, and they should be able to explain the properties of and work in an event-driven operating system. The students are required to possess good knowledge and skills in the following domains: API systems; the compilation process; compilers and development environments such as Microsoft Visual C++ or Borland C++ Builder.

Rules for evaluation and completion of the course

During each teaching block, the students are assessed for the following activities or aspects:
- setting up, tuning, and functionality of an algorithm including elements of the object-oriented approach related to the topic discussed in a concrete lesson (10x 0 - 4 points)
- active participation in the computer tutorials (workshops)
Ones in the teaching period (one semester), each student will submit an independently compiled example of an algorithm with applied elements and tools of the object-oriented approach to programming (0 - 60 points). The tutor/lecturer will evaluate the student’s grasp of tool usage, correct insertion of a tool in the algorithm and API elements, application potential of the proposed algorithm, and quality of the algorithm embedding in the event-driven system as the superior unit. 

In order to receive graded credit, a minimum of 50 pts. including a defended final project is required during the semester. 


Both components of instruction, namely the lecture and tutorials, are compulsory. If the absences have been duly communicated to the teacher, any missed lessons can be substituted, usually during the credit week.


Using algorithmization examples, the students gain the fundamentals of generic programming with templates and are taught how to employ the basic tools of the object-oriented approach in C++.
After completing the course, the students will be able to perform the following tasks:
- analyze a problem and formulate the algorithm for the mathematical model
- design an algorithm and implement it effectively in such a manner that the resulting code for the applied operating system is very efficient and stable
- set up and apply the algorithm in a simple text environment under minimum hardware requirements
- recognize and apply attributes of the object-oriented approach
- use this approach to set up an application
- assess, design, and apply C++ tools (objects, classes, operators, inheritance, polymorphism, overloading)
- utilize the templates of the functions and classes, manage the exceptions, and use standard STL libraries

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997 (EN)
Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000 (EN)
Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994 (EN)
ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988 (EN)
ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996 (EN)
Eckel, B.: Myslíme v jazyku C++, GRADA, 2000 (CS)
Herout, P. Učebnice jazyka C, Koop, 6. vydání, 2009. (CS)

Recommended reading

Not applicable.


Classification of course in study plans

  • Programme BPC-TLI Bachelor's, any year of study, summer semester, elective

  • Programme BPC-AUD Bachelor's

    specialization AUDB-ZVUK , 2. year of study, summer semester, compulsory-optional
    specialization AUDB-TECH , 3. year of study, summer semester, compulsory-optional

  • Programme BPC-IBE Bachelor's, 3. year of study, summer semester, compulsory-optional

Type of course unit


Exercise in computer lab

39 hours, compulsory

Teacher / Lecturer


1. Basics of structured programming in C language; Data types; Functions; Conditions; Loops
2. Dynamic memory allocation; Multidimensional arrays; Pointers; Returning values by parameters
3. Standardization; Differences between C and C++; Object-oriented programming; Classes; Member functions; Member variables
4.  Objects; Friend functions; Copy and conversion constructors
5. Inheritance; Virtual functions; Pure virtual functions; Abstract classes; Constructor and destructor in inheritance
6. Overloading of functions and operators
7. Generic programming
8. Exceptions; Assignment of term projects
9. Standard Template library (STL) I.
10. Standard Template Library (STL) II.
11. Namespaces; Memory classes; Inline methods; Parameters of the main function; Processor directives
12. Practicing OOP; Presentation and evaluation of term projects
13. Presentation and evaluation of term projects