PV294 Advanced C++

Fakulta informatiky
podzim 2023
Rozsah
2/0/0. 2 kr. (plus ukončení). Ukončení: z.
Vyučující
RNDr. Nikola Beneš, Ph.D. (přednášející)
Mgr. Adam Matoušek (pomocník)
RNDr. Petr Ročkai, Ph.D. (pomocník)
Garance
RNDr. Nikola Beneš, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Po 14:00–15:50 A217
Předpoklady
PB161 Programování v jazyce C++
Omezení zápisu do předmětu
Předmět je otevřen studentům libovolného oboru.
Cíle předmětu
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).
Výstupy z učení
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.
Osnova
  • 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.
Výukové metody
Lectures with practical examples.
Metody hodnocení
A ROPOT-style test verifying a basic understanding of the discussed notions.
Vyučovací jazyk
Angličtina
Informace učitele
cppreference.com
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích podzim 2024.