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

Efektivní programování v C++

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah Jazyk výuky
NI-EPC Z,ZK 5 2P+1C česky
Přednášející:
Cvičící:
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:

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:
Další informace:
https://courses.fit.cvut.cz/MI-EPC/
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 23. 2. 2020
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet6071806.html