Efektivní programování v C++
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NI-EPC | Z,ZK | 5 | 2P+1C | česky |
- Přednášející:
- Daniel Langr (gar.)
- Cvičící:
- Daniel Langr (gar.)
- Předmět zajišťuje:
- katedra počítačových systémů
- 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.
Předmět nahrazuje MI-MPC
- Požadavky:
-
Velmi dobré znalosti látky z předmětů BI-PA1 a BI-PA2, částečné znalosti látky z předmětů BI-SAP a BI-OSY.
- 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 nahrazuje MI-MPC
- Rozvrh na zimní semestr 2020/2021:
-
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 Pá - Rozvrh na letní semestr 2020/2021:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Specializace Teoretická informatika, verze 2018 až 2019 (VO)
- Počítačová bezpečnost, verze 2020 (VO)
- Návrh a programování vestavných systémů, verze 2020 (VO)
- Počítačové systémy a sítě, verze 2020 (PS)
- Manažerská informatika, verze 2020 (VO)
- Softwarové inženýrství, verze 2020 (VO)
- Systémové programování, verze 2020 (PS)
- Webové inženýrství, verze 2020 (VO)
- Znalostní inženýrství, verze 2020 (VO)
- Specializace Teoretická informatika, verze 2020 (VO)
- Magisterský program Informatika, plán pro studenty bez specializace, verze 2020 (VO)