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

Efektivní programování v C++

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
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++, pozorovatelné chování, jednotky překladu, nedefinované chování

2. Objektový model C++ — základy

3. Objektový model C++ — pokračování

4. Objektový model C++ — příklady

5. Výrazy, reference, obsah objektů

6. Kopírování a přesun obsahu

7. Výjimky a bezpečnost, RAII

8. Šablony — základy

9. Šablony — variadické šablony, perfect forwarding, emplace sémantika

10. Šablony — výhody/nevýhody, SFINAE, koncepty a omezení

11. Type erasure, CRTP, empty base optimization, ADL

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:

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

Meyers, Effective Modern C++

Reddy, API Design for C++

Stroustrup, Programming - Principles and Practice Using C++

Stroustrup, The C++ Programming Language

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

cppreference.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:
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
místnost TH:A-s135
Langr D.
11:00–12:30
(přednášková par. 1)
Thákurova 7 (budova FSv)
As135
St
místnost T9:348
Langr D.
14:30–16:00
LICHÝ TÝDEN

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

Dejvice
NBFIT PC ucebna
místnost T9:348
Langr D.
16:15–17:45
LICHÝ TÝDEN

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

Dejvice
NBFIT PC ucebna
místnost T9:348
Langr D.
14:30–16:00
SUDÝ TÝDEN

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

Dejvice
NBFIT PC ucebna
místnost T9:348
Langr D.
16:15–17:45
SUDÝ TÝDEN

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

Dejvice
NBFIT PC ucebna
Čt

Rozvrh na letní semestr 2024/2025:
Rozvrh není připraven
Předmět je součástí následujících studijních plánů:
Platnost dat k 21. 11. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet6071806.html