NPRG051 - Pokročilé programování v C++
|
|
Č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ů.
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.
| David Bednárek | Jakub Yaghob | Filip Zavoral |
| Pátek 12:20 | Přednášky | Slajdy | Další 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 | |||||||
| tagged indexes | |||||||
| 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 | ||||||