PV264 Advanced Programming in C++

Fakulta informatiky
jaro 2020

Předmět se v období jaro 2020 nevypisuje.

Rozsah
2/2/0. 3 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
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
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 nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
předmět má 37 mateřských oborů, zobrazit
Cíle předmětu
The goal of this course is to expose students to advanced usage of C++ programming language.
Výstupy z učení
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, 2014, xv, 315. ISBN 9781491903995. 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
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
Předmět je zařazen také v obdobích jaro 2017, jaro 2018, jaro 2019, podzim 2020, podzim 2023.