Předmět: Pokročilé programování v C++

» Seznam fakult » FPR » UAI
Název předmětu Pokročilé programování v C++
Kód předmětu UAI/323
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Četnost výuky V každém akademickém roce, jen v letním semestru.
Semestr Letní
Počet ECTS kreditů 5
Vyučovací jazyk čeština
Statut předmětu Povinně-volitelný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Fesl Jan, Ing. Ph.D.
Obsah předmětu
1) Reference, ukazatele a reference na funkce, chytré ukazatele, move sémantika, RAII. 2) Třídy, dědičnost a spřátelenost, polymorfismus v C++, přetěžování třídních operátorů, PIMPL idiom. 3) Streamy v C++, přístup k souborům pomocí streamů, serializace objektů. 4) Šablony funkcí a tříd, iterátory, funktory, meta programování, traity. 5) Pokročilé konstrukce v C++, lambda funkce, variadické šablony a funkce, specializace šablon, dedukce autotypů. 6) STL - kontejnery, iterátory, páry, použití emplace sémantiky. 7) STL - algortimy, druhy a použití včetně možnosti paralelizace. 8) Modulárnost programu v C++, hlavičkové soubory, prostory jmen, dynamická typová kontrola, vlastní datové typy, politiky, aserce. 9) Paralelního programování v C++, vlákna, synchronizace běhu paralelních programů. 10) Použití externích knihoven v programech C++, inicializace, volání, import funkcí. 11) Komunikace prostřednictvím sítě - BSD sockety, TCP kanál, zasílání zpráv. 12) GUI - úvod, vlastnosti a události v C++, QT knihovna.

Studijní aktivity a metody výuky
Monologická (výklad, přednáška, instruktáž)
  • Domácí příprava na výuku - 30 hodin za semestr
  • Účast na výuce - 30 hodin za semestr
  • Semestrální práce - 40 hodin za semestr
  • Příprava na zkoušku - 25 hodin za semestr
Výstupy z učení
Předpokládá se znalost jazyka C++ na základní úrovni, resp. v jazyce Java na pokročilé úrovni.
Student dokáže vytvořit zdrojový kód na základě modelu tříd vytvořeného po analytickém rozboru úlohy. Je kladen důraz na vytvoření optimální struktury programu vhodnou pro nasazení a dlouhodobou údržbu. Vlastní testům správě aplikace, jak místní tak dálkové, jsou věnovány závěrečné přednášky a úkoly.
Předpoklady
Předpokládá se znalost jazyka C++ na základní úrovni, resp. v jazyce Java na pokročilé úrovni.

Hodnoticí metody a kritéria
Písemná zkouška

Vypracování semestrální práce, napsání písemné práce se ziskem min. 50% všech možných bodů.
Doporučená literatura
  • Halterman, Richard L. Fundamentals of Programming C++, 1. vydání. Southern Adventist Uni-versity. 2019..
  • Miroslav Virius. Programování v C++ od základů k profesionálnímu použití. 2018. ISBN 978-80-271-0502.
  • Quinn, Rian. Hands-On System Programming with C++: Build Performant and Con-current Unix and Linux Systems with C++17. 1. vydání., 2018, Packt Pu-blishing. 522. ISBN 978-1789137880.
  • Stephen Prata. Mistrovství v C++. 2014. ISBN 978-80-271-0502.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr