PV294 Advanced C++

Faculty of Informatics
Autumn 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
The course is also listed under the following terms Autumn 2023.

PV294 Advanced C++

Faculty of Informatics
Autumn 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
The course is also listed under the following terms Autumn 2024.
  • Enrolment Statistics (recent)