NPRG051 - Pokročilé programování v C++

Formát předmětu

Česká verze přednášek je vedena obvyklým způsobem, během semestru se vystřídají tři přednášející.

Cvičení v české verzi budou za celý semestr pouze tři a budou se týkat zadání a vyhodnocení domácích úkolů.

Známky, zápočty a zkouška

Hlavní součástí hodnocení předmětu jsou domácí úkoly

Všechny domácí úkoly musí psát výhradně student, který je odevzdává, samostatně a bez použití nástrojů AI.

Můžete diskutovat o designu a souvisejících problémech se svými kolegy; kód však musíte napsat samostatně a nesmíte jej s nikým sdílet.

Přednášky, slajdy a další materiály

David Bednárek     Jakub Yaghob     Filip Zavoral
Pátek
12:20
PřednáškySlajdyDalší materiály
21.2.-14.3. + 23.5. Introduction Learning C++
Concepts requirements, concepts
Templates lvalue/rvalue, perfect forwarding variadic templates
universal references, forwarding
Templates working with references and values
Templates standard library traits and tags
Metaprogramming in C++ iteration through variadic lists
metaprogramming
21.3.-11.4. Type deduction auto, structure bindings, deduction rules structured bindings   type deduction   C++20
Type deduction deduction rules, CTAD, uniform initialization CTAD   initialization  
Type system type compatibility, type erasure, any, variant, visit, overload type erasure   overload   variant
Libraries ranges, span, ud literals, ..., C++23 & beyond ranges   chrono  
25.4.-16.5. Parallel programming C++11 concurrency
parallel algorithms, tasks, concurrency, parallel algorithms again
C++11 parallelism, C++11 concurrency again
Parallel programming some scary reading: BAD, UGLY, and GOOD
Parallel programming
Networking, databases, AIO
Coroutines


Exploring C++20 Coroutines, Coroutines introduction, C++20 coroutines tutorial
Doplňkové slajdy
Exceptions
Extended versions of winter-term lectures
(NPRG041)
declarations-definitions
templates
Deeper examples related to summer-term lectures tuple
Very advanced topics mixin
Metaprogramming in C++ sfinae
Modules modules