Praktické programování v C/C++
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
B2B36PPC | Z,ZK | 6 | 2P+2C | česky |
- Garant předmětu:
- Přednášející:
- Cvičící:
- Předmět zajišťuje:
- katedra počítačů
- Anotace:
-
Předmět seznamuje studenty z C++ a dále rozvijí praktické dovednosti programování v C/C++ s důrazem na řešení
výpočetních úloh a paralelního programování s využitím více-vláknových aplikací. První část přednášek je věnována
objektově orientovanému programování v C++ a seznámení studentů se základními datovými kontejnery STL. Studenti
se seznámí s principy paralelního programování více-vláknových aplikací, mechanismy synchronizace a modely vícevláknových
aplikací. Druhá část je věnována rozvinutí algoritmického uvažování při řešení výpočetních úloh
prohledávání stavového prostoru dvěma základními přístupy: metodami uspořádaného prohledávání grafové
reprezentace stavového prostoru a lokálními optimalizačními technikami. Dále budou studenti seznámeni s modely
přesné datové reprezentace necelých čísel, reprezentací matic a maticovými výpočty.
- Požadavky:
- Osnova přednášek:
-
1. Principy objektově orientovaného programování: třídy, objekty, zapouzdření
2. Dědičnost a polymorfismus
3. Generické typy
4. Výjimky a ladění programu
5. Kontejnery (knihovna STL)
6. Datové proudy a operátory
7. Paralelní programování - metody synchronizace výpočetních vláken
8. Paralelní programování - modely více-vláknových aplikací a paralelizace výpočtů (např. OpenMP)
9. Grafové struktury a jejich prohledávání
10. Dynamické programování
11. Výpočetní úlohy s plovoucí řádovou čárkou a přesné datové reprezentace
12. Reprezentace matic a maticové výpočty
13. Numerické knihovny v C/C++ a optimalizační algoritmy (hill climbing, simulated annealing)
14. Vývoj jazyka C/C++ - verze a standardy (C++11/C++14), jejich rozšíření, přenositelnost a překladače
- Osnova cvičení:
-
Praktická cvičení jsou zaměřena na získání a procvičování programovacích návyků tak, aby studenti byli schopni
samostatně vytvářet čitelné a přenositelné kódy s důrazem na využití existujících standardních knihoven a datových
kontejnerů. V průběhu semestru studenti odevzdávají programovací úlohy jejichž bodové hodnocení se skládá z bodů za
správnost a efektivitu kódu, dále pak z bodů zohledňující kvalitu zdrojových kódů, jejich čitelnost a znovu použitelnost.
- Cíle studia:
- Studijní materiály:
-
Stroustrup: Programming: Principles and Practice Using C++ (2nd Edition), 2014, ISBN 978-0321992789
Stroustrup: The C++ Programming Language (4th Edition), 2013, ISBN 978-0321563842
Sedgewick, Wayne: Algorithms (4th Edition), 2011, ISBN 978-0321573513
- Poznámka:
- Další informace:
- Pro tento předmět se rozvrh nepřipravuje
- Předmět je součástí následujících studijních plánů: