Skip to main content
Skip header

C++ Programming II

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2072/01
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *First Cycle
Year of Study *Third Year
Semester when the Course Unit is deliveredWinter Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites
PrerequisitiesCourse Unit CodeCourse Unit Title
460-2068C++ Programming I
Name of Lecturer(s)Personal IDName
GAJ03doc. Ing. Petr Gajdoš, Ph.D.
Summary
Students will deepen their knowledge of object-oriented programming to use C++, which belongs to the most used languages. The course follows the course "Programming in C++ I" and requires that the students have already successfully passed this course. Unlike the previous subject, this focuses more on programming of specific tasks and/or case studies.
Learning Outcomes of the Course Unit
The aim of the subject is to familiarize students with C++ language in their latest form. It follows the subject of Programming in C++ I, trying to expand it with new knowledge and focus on the practical part, i.e. the solution of specific problems using C++.

Knowledge and skills:

- C++ from the standard C++11 above
- use of language constructs to solve specific tasks
- knowledge of the construction of complex data types
- creating an application with respect to the target platform
- code optimization
- effectiveness of memory usage
- linking with third-party tools or APIs

After passing the course, the student should be able to design and implement a solution of given problems with the knowledge of object-oriented programming using the latest features of C++.
Course Contents
Lectures will serve as an entry point for exercises. They set themselves the objective of introducing students into the problematics and outlining the subsequent work on the exercises.

Lectures will include at least the following topics:

- template functions and data types
- tricks to optimize your program
- working with threads
- lambda expressions
- binary masks, enumerators
- metaprogramming, type predicates, traits
- case study: constructing a custom class for working with dynamic memory, move constructs and related operators, defining own iterators, range iterator
- case study: varyadic functions
- case study: linking C++ with other tools (MATLAB, R, nodeJS)
- case study: selected programming examples (ACM-ICPC)

Practical exercises on computer labs will correspond to lecture notes:

1. Creating template methods and classes
2. Possible optimizations of program run
3. Threads and their usage
4. Lambda expressions
5. Binary masks, enumerators
6. Metaprogramming, type predicates, traits
7-8. Case Study: dynamic memory allocation, move structure and related operators, definition of its own iterators, range iterator
9.-10. Case Study: Varyadic functions
11-12. Case Study: Linking C++ with other tools (MATLAB, R, nodeJS)
13-14. Case Study: Selected programming examples (ACM-ICPC)
Recommended or Required Reading
Required Reading:
[1] Stroustrup, Bjarne. The C++ programming language. Upper Saddle River, NJ: Addison-Wesley, 2013. Print.

[2] Bancila, Marius. Modern C++ programming cookbook : over 100 recipes to help you overcome your difficulties with C++ programming and gain deeper understanding of the working of modern C. Birmingham, UK: Packt Publishing, 2017. Print.
[1] Stroustrup, Bjarne. The C++ programming language. Upper Saddle River, NJ: Addison-Wesley, 2013. Print.

[2] Bancila, Marius. Modern C++ programming cookbook : over 100 recipes to help you overcome your difficulties with C++ programming and gain deeper understanding of the working of modern C. Birmingham, UK: Packt Publishing, 2017. Print.
Recommended Reading:
[1] Galowicz, Jacek. C++17 STL Cookbook. Birmingham: Packt Publishing, 2017. Print.

[2] Savitch, Walter J., and Kenrick Mock. Problem solving with C++. 9th Edition, Boston: Pearson, 2015. Print.
[1] Galowicz, Jacek. C++17 STL Cookbook. Birmingham: Packt Publishing, 2017. Print.

[2] Savitch, Walter J., and Kenrick Mock. Problem solving with C++. 9th Edition, Boston: Pearson, 2015. Print.
Planned learning activities and teaching methods
Lectures, Tutorials
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Graded creditGraded credit100 51