Předmět: Programování v jazyce C++

« Zpět
Název předmětu Programování v jazyce C++
Kód předmětu KIV/CPP
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia 3
Semestr Zimní
Počet ECTS kreditů 4
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í
  • Hlavenka Jakub, Ing.
  • Hosek Milan, doc. Ing. Ph.D.
Obsah předmětu
1. Základní koncepty moderního C++, coding standard, std::array, std::vector 2. Reprezentace datových typů v paměti, STL, iterátory, RAII, chytré ukazatele 3. Objekty, virtuální metody, const, constexpr a final, přetěžování funkcí a operátorů 4. Lambda funkce, vyjímky a std:: algoritmy, random 5. Vícenásobná dědičnost, práce s typy, proudy (soubory a další) 6. Copy a move sémantika, šablony 7. Variadické šablony, dynamický vs. statický polymorfismus, CRTP 8. Vlákna v C++ a základní synchronizační primitiva, paralelní algoritmy 9. Koncepty, korutiny, moduly 10. Ladění kódu 11. Profilování kódu, hledání úniků paměti 12. Překlad vybraných vysokoúrovňových konstrukcí (např. devirtualizace), optimalizace, čistá abstrakce 13. Vybrané podpůrné knihovny a nástroje jazyka C++ (Boost, Qt, CMake)

Studijní aktivity a metody výuky
  • Projekt individuální [40] - 38 hodin za semestr
  • Kontaktní výuka - 39 hodin za semestr
  • Příprava na zkoušku [10-60] - 30 hodin za semestr
Předpoklady
Odborné znalosti
Znát a umět používat programovací jazyk C a alespoň jeden objektový programovací jazyk.
Rozumět a být schopen aplikovat znalosti z teoretické informatiky (např. výpočetní složitost)
Mít alespoň základní povědomí o fungování procesoru a dělení adresního prostoru (alokace paměti, zásobník a halda)
Odborné dovednosti
Být schopen analyzovat a dekomponovat problém, navrhnout algoritmické řešení a implementovat jej.
Obecné způsobilosti
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje,
bc. studium: uplatňuje při řešení problémů vhodné metody a dříve získané vědomosti a dovednosti, kromě analytického a kritického myšlení využívá i myšlení tvořivé s použitím představivosti a intuice,
bc. studium: zvažuje možné klady a zápory jednotlivých variant řešení, včetně posouzení jejich rizik a důsledků,
mgr. studium: samostatně a odpovědně se na základě rámcového zadání rozhodují v souvislostech jen částečně známých,
Výsledky učení
Odborné znalosti
Základní a pokročilé konstrukce jazyka C++ včetně těch z moderních standardů.
Znát principy moderních kompilovaných programovacích jazyků a jejich vztah k efektivitě a bezpečnosti
Znát vztah C++ k ostatním programovacím jazykům.
Odborné dovednosti
Umět použít jazyk C++ pro implementaci menších a středně velkých softwarových projektů s vysokou mírou využití prostředků jazyka ke zvýšení bezpečnosti a efektivity výsledného programu.
Umět analyzovat a zhodnotit kvalitu svého programu pomocí dostupných nástrojů.
Umět rozhodnout, pro jaký problém se jazyk C++ hodí a pro jaký ne.
Obecné způsobilosti
bc. studium: samostatně a odpovědně se na základě rámcového zadání rozhodují v souvislostech jen částečně známých,
Vyučovací metody
Odborné znalosti
Přednáška s demonstrací,
Přednáška s diskusí,
Cvičení (praktické činnosti),
Řešení problémů,
Skupinová výuka,
Samostudium,
Samostatná práce studentů,
Diskuse,
Odborné dovednosti
Přednáška založená na výkladu,
Přednáška s diskusí,
Cvičení (praktické činnosti),
Přednáška s demonstrací,
Řešení problémů,
Skupinová výuka,
Samostudium,
Diskuse,
Obecné způsobilosti
Samostudium,
Hodnotící metody
Odborné znalosti
Praktická zkouška,
Demonstrace dovedností (praktická činnost),
Průběžné hodnocení,
Odborné dovednosti
Praktická zkouška,
Demonstrace dovedností (praktická činnost),
Průběžné hodnocení,
Obecné způsobilosti
Průběžné hodnocení,
Doporučená literatura
  • Meyers Scott. Effective Modern C++ 42 Specific Ways to Improve Your Use of C++11 and C++14. O'Reilly Media, 2015. ISBN 978-1491903995.
  • Stroustrup Bjarne. A Tour of C++ (C++ In-Depth). Addison Wesley, 2013.


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