NPRG051 - Advanced Programming in C++

David Bednárek     Jakub Yaghob     Filip Zavoral

COVID-19 effects on NPRG051

[2020/05/20] Slajdy se zadáním DÚ3 nyní obsahují i poznámky k vyhodnocení.

[2020/04/22] The third assignment and the feedback on #1 was presented using Zoom. See also the description below.

[2020/04/20] The (preliminary) third assignment description published.

[2020/04/14] Initialization.

[2020/04/09] The second assignment has been presented using Zoom on April 8th, 15:40. The recording is available on the YouTube channel.

[2020/04/07] Interoperability.

[2020/04/01] Recorded lecture on type compatibility, type erasure, variant and other types is available on a YouTube department playlist.

[2020/03/29] Distance learning guidelines for the pink lectures:
The lectures will be presented in our regular schedule (Wed 14:00-15:30) using ZOOM in Czech only, Meeting ID: 529-886-143. The lectures will be recorded and will be available on a YouTube department video playlist for the course. I have added several video talks and many texts, all in English, about the parallel programming topics.

[2020/03/23] The first assignment has been presented using Zoom on 25.3., 15:40. Its recording will be available. The assignment is also active in ReCodEx (together with test files) and the description can be downloaded below.

[2020/03/22] Significantly extended slides on traits-policy-functor-tag.

[2020/03/20] Distance learning guidelines for the yellow lectures:
Take a look at the slides corresponding to the topics of each lecture. The slides are in the same order as planned lectures. The lecture list and the slides contain links to the recordings of the lectures covering the topic.
In some cases (chrono, C++20), the recorded lectures contain more detailed information. For the purpose of completing the course, a depth of knowledge at the level of the slides is sufficient.
Should you need any further information, do not hesitate to contact me. I will publish the answers in an appropriate form.

[2020/03/18] Added links to lecture recordings and other resources.

[2020/03/11] Slides covering the yellow lectures (F2-news) now contain links to relevant lecture recordings and other resources.

[2020/03/11] Slides covering the first four and the last two planned lectures were reorganized into 9 separate files (+intro). (No factual changes in the slides yet.)

[2020/03/11] Assignment deadlines (Apr 8, Apr 22, May 6) are still valid. The assignments themselves will be published no later than two weeks before the respective deadlines. The slides for the lectures will be reorganized and augmented to make them usable without the lectures. The slides relevant for the assignments will be processed with higher priority. Important releases of slides will be announced here.

Timetable and slides

DateLecture (14:00)SlidesRecordings (cz)External resources
19.2. Exceptions intro pdf pptx
exceptions pdf pptx
26.2 Exception-safe programming. Templates.
templates pdf pptx
4.3. Declarations vs. definitions. Policy clases, traits.declarations-definitions pdf pptx
traits-policy-functor-tag pdf pptx
11.3. Policy clases, traits. Variadic templates, perfect forwarding.
variadic-forward pdf pptx variadic templates
universal references, forwarding
18.3. C++14/17 - language auto, structure bindings, decltype pdf pptx structured bindings auto, decltype
25.3. C++14/17 - language type deduction, CTAD, initialization initialization type deduction CTAD initialization
25.3. Assignment #1 movable ptr pdf DU1
1.4. Types & libraries type compatibility, type erasure
pdf pptx types type erasure overload variant chrono
8.4. C++20/23, Interoperability future pdf pptx concepts ranges coroutines
interoperability pdf pptx interoperability
8.4. Assignment #2 graph db pdf DU2
15.4. Parallel programming pptx ZOOM meeting ID:529-886-143, 15.4. lecture recording, 22.4. lecture recording C++11 concurrency
parallel algorithms, tasks, concurrency, parallel algorithms again
C++11 parallelism, C++11 concurrency again
some scary reading: BAD, UGLY, and GOOD
22.4. Assignment #3, Evaluation #1 DU 3 DU 1 - eval
29.4. Networking, databases, AIO pdf pptx ZOOM meeting ID:529-886-143, 29.4. lecture recording
6.5. Metaprogramming in C++, SFINAE metaprogramming pdf pptx lecture recording
13.5. lecture recording
20.5. sfinae pdf pptx lecture recording
20.5. Evaluation #2, #3 DU 2,3 - eval
Additional slides remove-reference pdf pptx
tuplepdf pptx

Homework assignment #1

Homework assignment #2

Homework assignment #3

Further information available in Czech only

Návaznost na další předměty