Efektivní programování v C++
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
NI-EPC | Z,ZK | 5 | 2P+1C | česky |
- Garant předmětu:
- Daniel Langr
- Přednášející:
- Daniel Langr
- Cvičící:
- Daniel Langr
- 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.
- 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. U BI-PA2 je rovněž doporučena znalost z „rozšiřujících materiálů“.
- Osnova přednášek:
-
1. Úvod, standardy a implementace C++
2. Pozorovatelné chování, jednotky překladu, nedefinované chování
3. Objektový model C++ základy
4. Objektový model C++ pokračování
5. Objektový model C++ příklady
6. Výrazy, reference, obsah objektů
7. Kopírování a přesun obsahu
8. Šablony základy
9. Šablony variadické šablony, perfect forwarding, emplace sémantika
10. Šablony SFINAE, koncepty a omezení, type erasure, CRTP
11. Výjimky a bezpečnost, RAII
12. Výkon a efektivita
13. Short string optimization
- 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:
-
C++ reference (cppreference.com)
C++ standards (drafty)
Stack Overflow
CppCon přednášky
C++ Core Guidelines
- Poznámka:
- Další informace:
- https://courses.fit.cvut.cz/NI-EPC/
- Rozvrh na zimní semestr 2024/2025:
-
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 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Mgr. specializace Počítačová bezpečnost, 2020 (volitelný předmět)
- Mgr. specializace Návrh a programování vestavných systémů, 2020 (volitelný předmět)
- Mgr. specializace Počítačové systémy a sítě, 2020 (PS)
- Mgr. specializace Manažerská informatika, 2020 (volitelný předmět)
- Mgr. specializace Softwarové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Systémové programování, verze od 2020 (PS)
- Mgr. specializace Webové inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Znalostní inženýrství, 2020 (volitelný předmět)
- Mgr. specializace Teoretická informatika, 2020 (volitelný předmět)
- Mgr. program, pro fázi studia bez specializace, ver. pro roky 2020 a vyšší (VO)
- Master Specialization Digital Business Engineering, 2023 (VO)
- Mgr. specializace Systémové programování, verze od 2023 (PS)
- Mgr. specializace Teoretická informatika, 2023 (volitelný předmět)