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