PV264 Advanced Programming in C++

Fakulta informatiky
jaro 2017
Rozsah
2/2/0. 4 kr. (plus ukončení). Ukončení: zk.
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
St 12:00–13:50 A217, kromě St 10. 5.
  • Rozvrh seminárních/paralelních skupin:
PV264/01: Čt 18:00–19:50 B130, N. Beneš, V. Štill
PV264/02: Čt 14:00–15:50 B130, N. Beneš, 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.
Cíle předmětu
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.
Osnova
  • 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)
Literatura
  • MEYERS, Scott. Effective modern C++. First edition. Beijing: O'Reilly. xv, 315. ISBN 9781491903995. 2014. info
Výukové metody
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).
Metody hodnocení
Two programming homeworks, one group project in the second half of the semester (groups of up to three students), project presentation, final written exam.
Vyučovací jazyk
Angličtina
Informace učitele
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 2018, jaro 2019, podzim 2020, podzim 2023.