460-2072/01 – Programování v C++ II (C++ II)
Garantující katedra | Katedra informatiky | Kredity | 4 |
Garant předmětu | doc. Ing. Petr Gajdoš, Ph.D. | Garant verze předmětu | doc. Ing. Petr Gajdoš, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | volitelný odborný |
Ročník | 3 | Semestr | zimní |
| | Jazyk výuky | čeština |
Rok zavedení | 2019/2020 | Rok zrušení | |
Určeno pro fakulty | FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Předmět si klade za cíl podrobněji seznámit posluchače s jazykem C++ v jeho nejnovější podobě. Navazuje na předmět Programování v C++ I s tím, že se jej snaží rozšířit o nové poznatky a zaměřit se především na praktickou část, tedy řešení konkrétních úloh s využitím jazyka C++.
Znalosti a dovednosti:
- jazyk C++ od standardu C++11 výše
- využití konstrukcí jazyka k řešení konkrétních úloh
- znalost konstrukce komplexních datových typů
- tvorba aplikace s ohledem na cílovou platformu
- optimalizace kódu
- efektivita využití paměťových prostředků
- propojení s nástroji či API třetích stran
Po absolvování kurzy by měl posluchač umět navrhnout a implementovat řešení problému s ohledem na znalost objektově orientovaného programování s využitím nejnovějších možností jazyka C++.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Anotace
Posluchači si prohloubí znalosti objektově orientovaného programování s ohledem na využití jazyka C++, který se řadí mezi nejpoužívanější jazyky současnosti. Kurz navazuje na kurz „Programování v C++ I“ a je vyžadováno, aby měli studenti tento předmět již úspěšně dokončen. Na rozdíl pro předešlého předmětu, tento se zaměřuje více na programování konkrétních úloh, případových studií.
Povinná literatura:
[1] Stroustrup, Bjarne. The C++ programming language. Upper Saddle River, NJ: Addison-Wesley, 2013. Print.
[2] Bancila, Marius. Modern C++ programming cookbook : over 100 recipes to help you overcome your difficulties with C++ programming and gain deeper understanding of the working of modern C. Birmingham, UK: Packt Publishing, 2017. Print.
Doporučená literatura:
[1] Galowicz, Jacek. C++17 STL Cookbook. Birmingham: Packt Publishing, 2017. Print.
[2] Savitch, Walter J., and Kenrick Mock. Problem solving with C++. 9th Edition, Boston: Pearson, 2015. Print.
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Průběžná kontrola studijních aktivit a přiřazených úkolů v rámci pravidelných seminářů.
Předmět 460-2072/01 Programování v C++ II má jako povinnou prerekvizitu předmět 460-2068/01 Programování v C++ I.
E-learning
Další požadavky na studenta
Očekává se, že studenti budou na lekcích z programování aktivně řešit zadané úlohy. Některé úlohy mohou vyžadovat pečlivou domácí přípravu.
Prerekvizity
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky budou sloužit jako vstupní bod pro cvičení. Kladou si za cíl uvést posluchače do problematiky a nastínit následnou práci na cvičeních.
Přednášky budou zahrnovat přinejmenším tato témata:
- template funkce a datové typy
- triky pro optimalizaci běhu programu
- práce s vlákny
- lambda výrazy
- binární masky, enumerátory
- metaprogramování, type predicates, traits
- případová studie: konstrukce vlastní třídy pro práci s dynamickou pamětí, move konstrukce a související operátory, definování vlastních iterátorů, range iterátor
- případová studie: variadické funkce
- případová studie: propojení c++ s dalšími nástroji (MATLAB, R, nodeJS)
- případová studie: vybrané příklady z programování (ACM-ICPC)
Obsah cvičení bude korespondovat vždy s danou přednáškou a tématem:
1. Vytváření template metod a tříd
2. Možné optimalizace běhu programu
3. Vlákna a jejich využití
4. Lambda výrazy
5. Binární masky, enumerátory
6. Metaprogramování, type predicates, traits
7.-8. Případová studie: dynamická alokace paměti, move konstrukce a související operátory, definování vlastních iterátorů, range iterátor
9.-10. Případová studie: variadické funkce
11.-12. Případová studie: Propojení c++ s dalšími nástroji (MATLAB, R, nodeJS)
13.-14. Případová studie: vybrané příklady z programování (ACM-ICPC)
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky
Předmět neobsahuje žádné hodnocení.