Course details

The C++ Programming Language

ICP Acad. year 2023/2024 Summer semester 4 credits

ISO C++ language overview. Objects, classes, inheritance, polymorphism. Operator and function overloading. Templates. Exceptions. Standard library, STL.

Guarantor

Course coordinator

Language of instruction

Czech, English

Completion

Classified Credit (written)

Time span

  • 26 hrs seminar
  • 13 hrs projects

Assessment points

  • 100 pts projects

Department

Instructor

Learning objectives

The goal is to introduce students to object-oriented programming in C++ language and to generic programming using templates.
Students are able to exploit C++ for creating middle-sized applications based on the object-oriented approach and generic programming concepts.

Why is the course taught

At least basic knowledge of C++ language is important not only for programming practice, but also for improving your understanding of the area of programming languages and paradigms.

Recommended prerequisites

Study literature

  • Teaching materials available on WWW.
  • Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
  • ISO: Working Draft, Standard for Programming Language C++ (N4659). 2017-03-21 [dostupné elektronicky na WWW]
  • ISO: Working Draft, Standard for Programming Language C++ (N4860). 2020-03-31

Fundamental literature

  • Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
  • Stroustrup, B.: Programming Principles and Practice Using C++, 2nd edition, Addison-Wesley, 2014

  • ISO: Working Draft, Standard for Programming Language C++ (N4928). 2022-12-18

Syllabus of seminars

  1. Introduction. Basic overview of ISO C++. Examples of C++ use.
  2. Basic differences of C and C++. Declarations, definitions, namespaces. Types.
  3. Statements and operators of C++. The terminology and principles of object-oriented programming in C++.
  4. Objects, classes, class members. Member access control. Member functions, "this" keyword, static members.
  5. Object creation and destruction: constructors, destructors, operators new and delete.
  6. Function and operator overloading. Type conversion operators.
  7. Input/output (iostream, fstream). Output formatting, file streams and string streams.
  8. Inheritance, base and derived classes. Multiple inheritance, virtual base classes.
  9. Polymorphism, virtual methods, abstract classes. Runtime type information.
  10. Templates, (partial) specialization.
  11. Standard library, algorithms, iterators, containers, function objects.Modules.
  12. Exceptions, exception specifications.
  13. Library overview. Effective C++ programming.

Syllabus - others, projects and individual work of students

   - project

Progress assessment

At least 50% of points.

Exam prerequisites

At least 50% of points.

Schedule

DayTypeWeeksRoomStartEndCapacityLect.grpGroupsInfo
Thu seminar 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12. of lectures D105 18:0019:50316 2BIA 2BIB 3BIT xx Peringer
Thu seminar 2024-05-02 D0206 18:0019:50316 2BIA 2BIB 3BIT xx Peringer

Course inclusion in study plans

  • Programme BIT, 2nd year of study, Compulsory-Elective group T
  • Programme BIT (in English), 2nd year of study, Compulsory-Elective group T
  • Programme IT-BC-3, field BIT, 2nd year of study, Compulsory-Elective group T
Back to top