PV294 Advanced C++
Faculty of InformaticsAutumn 2024
- Extent and Intensity
- 2/0/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
In-person direct teaching - Teacher(s)
- RNDr. Nikola Beneš, Ph.D. (lecturer)
- Guaranteed by
- RNDr. Nikola Beneš, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Wed 25. 9. to Wed 18. 12. Wed 14:00–15:50 A217
- Prerequisites (in Czech)
- PB161 C++ Programming
- Course Enrolment Limitations
- The course is offered to students of any study field.
- Course objectives
- The goal of this course is to provide a broad overview of the modern C++ language, including some of its more advanced parts. Students looking for a more practical in-depth approach (covering a smaller part of the language) might want to enrol in PV264 (both courses can also be studied simultaneously).
- Learning outcomes
- At the end of the course, the student should be aware of most of the intricacies of the modern C++ programming language and grasp most of the functionality offered by its standard library. They should be able to read and understand well-written modern C++ code and have a solid foundation for further (self)-improvement in C++ programming skills.
- Syllabus
- C++ memory and object model, ownership.
- Namespaces, scope, lifetime.
- Move semantics, universal references, perfect forwarding.
- Generic programming, metaprogramming, templates, concepts, type traits.
- Useful C++ idioms: SFINAE, CRTP, tag dispatch, type erasure.
- Memory and resource management, smart pointers.
- Algorithms, iterators, ranges, views, (niebloids).
- Virtual inheritance, RTTI.
- Standard library: chrono, random, regex, …
- Concurrency in C++, threads, synchronisation.
- Teaching methods
- Lectures with practical examples.
- Assessment methods
- A ROPOT-style test verifying a basic understanding of the discussed notions.
- Language of instruction
- English
- Further comments (probably available only in Czech)
- Study Materials
The course is taught annually. - Teacher's information
- cppreference.com
PV294 Advanced C++
Faculty of InformaticsAutumn 2023
- Extent and Intensity
- 2/0/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Nikola Beneš, Ph.D. (lecturer)
Mgr. Adam Matoušek (assistant)
RNDr. Petr Ročkai, Ph.D. (assistant) - Guaranteed by
- RNDr. Nikola Beneš, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Mon 14:00–15:50 A217
- Prerequisites (in Czech)
- PB161 C++ Programming
- Course Enrolment Limitations
- The course is offered to students of any study field.
- Course objectives
- The goal of this course is to provide a broad overview of the modern C++ language, including some of its more advanced parts. Students looking for a more practical in-depth approach (covering a smaller part of the language) might want to enrol in PV264 (both courses can also be studied simultaneously).
- Learning outcomes
- At the end of the course, the student should be aware of most of the intricacies of the modern C++ programming language and grasp most of the functionality offered by its standard library. They should be able to read and understand well-written modern C++ code and have a solid foundation for further (self)-improvement in C++ programming skills.
- Syllabus
- C++ memory and object model, ownership.
- Namespaces, scope, lifetime.
- Move semantics, universal references, perfect forwarding.
- Generic programming, metaprogramming, templates, concepts, type traits.
- Useful C++ idioms: SFINAE, CRTP, tag dispatch, type erasure.
- Memory and resource management, smart pointers.
- Algorithms, iterators, ranges, views, (niebloids).
- Virtual inheritance, RTTI.
- Standard library: chrono, random, regex, …
- Concurrency in C++, threads, synchronisation.
- Teaching methods
- Lectures with practical examples.
- Assessment methods
- A ROPOT-style test verifying a basic understanding of the discussed notions.
- Language of instruction
- English
- Further comments (probably available only in Czech)
- Study Materials
The course is taught annually. - Teacher's information
- cppreference.com
- Enrolment Statistics (recent)