Moderní programování v C++
Kód | Zakončení | Kredity | Rozsah |
---|---|---|---|
MI-MPC | Z,ZK | 5 | 2P+1C |
- Garant předmětu:
- Přednášející:
- Cvičící:
- 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.
Od B201 vypisována ekvivalentní náhrada NI-EPC.
- 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. Úvod, optimalizace ukládání krátkých řetězců
2. Kopírování vs přesun obsahu objektů
3. Efektivní podoby speciálních členských funkcí
4. Dynamická alokace paměti, dynamické vytváření objektů
5. Zachování hodnotové kategorie, variadické šablony
6. Redukce kopírování a přesunu obsahu objektů, inicializace
7. Dedukce typů
8. Specializace šablon a šablonové metaprogramování
9. Aserce, výběr volané funkce, lambda funkce
10. Automatické uvolňování prostředků, chytré ukazatele, skrytí typu objektu
11. Více-vláknové programování
12. Politiky, optimalizace prázdné bázové třídy, výčtové typy
- Osnova cvičení:
-
Na počítačových cvičeních řeší 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:
-
Předmět nahrazen ekvivalentním NI-EPC // 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/
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů:
-
- Mgr. obor Znalostní inženýrství, 2016-2017 (volitelný předmět)
- Mgr. obor Počítačová bezpečnost, 2016-2019 (volitelný předmět)
- Mgr. obor Počítačové systémy a sítě, 2016-2019 (volitelný předmět)
- Mgr. obor Návrh a programování vestavných systémů, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Informační systémy a management, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2016-2019 (volitelný předmět)
- Mgr. program Informatika, pro fázi studia bez oboru, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Systémové programování, 2016-2019 (volitelný předmět)
- Mgr. obor Systémové programování, zaměření Teoretická informatika, 2016-2017 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2018-2019 (volitelný předmět)
- Mgr. obor Znalostní inženýrství, 2018-2019 (volitelný předmět)