PV264 Advanced Programming in C++

Fakulta informatiky
jaro 2018
Rozsah
2/2/0. 4 kr. (plus ukončení). Ukončení: k.
Vyučující
RNDr. Nikola Beneš, Ph.D. (přednášející)
RNDr. Jan Mrázek (cvičící)
RNDr. Vladimír Štill, Ph.D. (cvičící)
Garance
doc. RNDr. Eva Hladká, 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 16:00–17:50 D3
  • Rozvrh seminárních/paralelních skupin:
PV264/01: St 10:00–11:50 B130, N. Beneš, J. Mrázek, V. Štill
PV264/02: Út 10:00–11:50 B130, N. Beneš, J. Mrázek, V. Štill
Předpoklady
PB161 Programování v jazyce C++ && ( (! PB173 Vývoj aplikací v C/C++ ) || SOUHLAS )
The course is not open for students that have taken the Advanced C++ seminar group of PB173.
Omezení zápisu do předmětu
Předmět je otevřen studentům libovolného oboru.
Anotace
At the end of the course the students should be able to: use the C++ language (in the newest standard) on an advanced level; use various programming techniques, notably generic, functional and parallel programming; understand the principles of memory and resource management in C++; debug, test and profile C++ programs using appropriate tools; be able to use modern C++ idioms and design patterns.
Klíčová témata
  • Introduction to the ISO C++14 standard
  • Debugging and testing
  • Functional programming in C++, lambda functions, algorithms
  • Move semantics: rvalue references, forwarding
  • Resource management, smart pointers, the RAII idiom
  • Profiling and optimizations
  • Generic programming and meta-programming using templates (variadic templates, SFINAE, ...)
  • Modern C++ idioms (CRTP, tags)
  • Parallel programming in modern C++: threads, atomic, introduction to lock-free data structures
  • Future of C++ (C++17, proposed concepts)
Studijní zdroje a literatura
  • MEYERS, Scott. Effective modern C++. First edition. Beijing: O'Reilly, 2014, xv, 315. ISBN 9781491903995. info
Přístupy, postupy a metody používané ve výuce
Theoretical lectures combined with practical exercises and programming homework; group project in the second half of the semester. The lectures are going to be given in English; some of the practical seminars will be taught in Czech (depends on the students' preferences).
Způsob ověření výstupů z učení a požadavky na ukončení
Two programming homeworks, one group project in the second half of the semester (groups of up to three students), project presentation.
Vyučovací jazyk
Angličtina
Odkaz a informace vyučujících
Recommended reference guide: 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 jaro 2017, jaro 2019, podzim 2020, podzim 2023, podzim 2026.