Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2018/2019

Moderní programování v C++

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah
MI-MPC Z,ZK 5 2+1
Přednášející:
Daniel Langr (gar.)
Cvičící:
Daniel Langr (gar.)
Předmět zajišťuje:
katedra softwarového inženýrství
Anotace:

Studenti se naučí využívat moderní rysy současných verzí jazyka C++ pro tvorbu softwaru. Důraz je kladen především na efektivitu, a to jak v podobě tvorby udržovatelných a přenositelných zdrojových kódů, tak v podobě korektních programů s nízkými nároky na paměť a procesorový čas.

Požadavky:

Základy programování v C a C++ (na úrovni předmětů BI-PA1 a BI-PA2)

Osnova přednášek:

1. Standardy C++, L-/R-hodnoty, dočasné objekty, reference, inicializační seznam konstruktoru,...

2. Speciální členské funkce, copy&swap idiom, exception safety, placement new,...

3. Move sémantika, perfect forwarding, noexcept,...

4. Konverzní a explicitní konstruktory, jednotný přiřazovací operátor, volná funkce swap,...

5. Třída initializer_list, variadické šablony, třída tuple, emplace sémantika, copy elision,...

6. Navrácení více hodnot z funkcí, dedukce typů, range-based loops,...

7. Dedukce typů (pokr.), identifikace a porovnávání typů, aliasy typů,...

8. Specializace šablon, šablonové metaprogramování, type traits, SFINAE, if constexpr,...

9. RAII, chytré ukazatele, scope guard, lambda funkce,...

10. Výčtové typy, tag dispatching, traits, policies, PIMPL, jednotky překladu,...

11. Vícevláknové programování, vlákna, async, atomické proměnné, condition variables,...

12. EBCO, LSP, type erasure, CRPT, knihovní rozšíření, atributy, koncepty,...

Osnova cvičení:

Na počítačových cvičeních řesí studenti úlohy navazující na přednášky; cvičící poskytuje konzultace a rady.

Cíle studia:

Cílem předmětu je naučit studenty využívat současné verze jazyka C++ tak, aby v něm byli schopni vytvářet efektivní, korektní, udržovatelný a přenositelný software.

Studijní materiály:

Josuttis, The C++ Standard Library-A Tutorial and Reference

Meyers, Effective Modern C++

Prata, C++ Primer Plus

Reddy, API Design for C++

Stroustrup, Programming - Principles and Practice Using C++

Stroustrup, The C++ Programming Language

Sutter and Alexandrescu, C++ Coding Standards: 101 Rules, Guidelines, and Best Practices

Vandervoorde and Josuttis, C++ Templates - The Complete Guide

Williams, C++ Concurrency in Action

cppreference.com, www.cplusplus.com (C++ reference)

stackoverflow.com (developer forum)

isocpp.org (news, status, blogs, FAQs, discussion)

ISO/IEC 14882:2014 Information technology - Programming languages-C++

Poznámka:

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/MI-MPC/

Další informace:
https://courses.fit.cvut.cz/MI-MPC/
Rozvrh na zimní semestr 2018/2019:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
St
Čt

místnost TH:A-s135
Langr D.
09:15–10:45
(přednášková par. 1)
Thákurova 7 (FSv-budova A)
As135
místnost T9:348
Langr D.
12:45–14:15
SUDÝ TÝDEN

(přednášková par. 1
paralelka 103)

Dejvice
NBFIT PC ucebna
místnost T9:350
Langr D.
11:00–12:30
SUDÝ TÝDEN

(přednášková par. 1
paralelka 101)

Dejvice
NBFIT PC ucebna
místnost T9:350
Langr D.
11:00–12:30
LICHÝ TÝDEN

(přednášková par. 1
paralelka 102)

Dejvice
NBFIT PC ucebna
Rozvrh na letní semestr 2018/2019:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 25. 3. 2019
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet5073206.html