NPRG051 - Advanced Programming in C++

David Bednárek     Jakub Yaghob     Filip Zavoral

Distance learning

PARG Mattermost channel nprg051-advcpp will be used for quick bi-directional communication between teachers and students. If you were registered at PARG SLACK in winter term, your registration info was transferred except the password - please reset your password to log in. If you were not registered previously, you will need an invitation link - see SIS/Notice-board.

The first three lectures will take place (on Tuesdays 14:00) at Zoom Meeting ID: 931 1491 4619. The passcode is available at SIS/Notice-board as well as at Mattermost. The recordings will appear here.

The lectures will be held and recorded in Czech; however, the slides are in English.

The seminars (Tuesdays 15:40) will take place only on the four dates designated in the Timetable below. Their sole purpose will be the explanation of the three homework assignments and their evaluation later.

Timetable and slides

DateLecture (Tuesdays 14:00)SlidesRecordings (cz)External resources
2.3. Templates, declarations vs. definitions intro
templates
9.3. Policy clases, traits. Variadic templates, perfect forwarding declarations-definitions
traits-policy-functor-tag
16.3. Metaprogramming in C++ variadic-forward variadic templates
universal references, forwarding
remove-reference
metaprogramming
23.3. C++17/20 - language auto, structure bindings, range-based for structured bindings   auto decltype
30.3. decltype, type deduction, CTAD type deduction   CTAD
6.4. Initialization, types initialization, type compatibility, type erasure
libraries
initialization   type erasure   overload   variant
6.4. Assignment #1
13.4. Libraries, future, interoperability libraries, future standards ranges   chrono   concepts   coroutines
interoperability
20.4. Parallel programming C++11 concurrency
parallel algorithms, tasks, concurrency, parallel algorithms again
C++11 parallelism, C++11 concurrency again
some scary reading: BAD, UGLY, and GOOD
20.4. Assignment #2
27.4. Parallel programming
4.5.
4.5. Assignment #3, Evaluation #1
11.5. Networking, databases, AIO
18.5. Metaprogramming in C++, SFINAE metaprogramming
25.5.
1.6. sfinae
1.6. Evaluation #2, #3
Additional slides tuple
exceptions

Further information available in Czech only

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