Přehled studia |
Přehled oborů |
Všechny skupiny předmětů |
Všechny předměty |
Seznam rolí |
Vysvětlivky
Návod
Webová stránka:
https://cw.fel.cvut.cz/wiki/courses/b2b99ppc
Anotace:
Předmět seznamuje studenty s C++ a dále rozvíjí praktické dovednosti programování v C/C++ s důrazem na řešení výpočetních úloh a více-vláknových aplikací s využitím paralelního programování. 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 standardní knihovny STL. Studenti se seznámí s principy paralelního programování více-vláknových aplikací, mechanismy synchronizace a modely více-vlá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.
Cíle studia:
Cílem předmětu je seznámit studenty s praktickými aspekty programováni v C/C++. Studenti se naučí efektivně implementovat algoritmy a numerické metody, které se běžně využívají v elektronických systémech.
Osnovy 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 |
Osnovy 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. Náplň jednotlivých cvičení se skládá z praktického osvojení témat diskutovaných na přednášce a zadání domácího úkolu.
Literatura:
[1] | | Stroustrup: Programming: Principles and Practice Using C++ (2nd Edition), 2014, ISBN 978-0321992789 |
[2] | | Stroustrup: The C++ Programming Language (4th Edition), 2013, ISBN 978-0321563842 |
[3] | | Sedgewick, Wayne: Algorithms (4th Edition), 2011, ISBN 978-0321573513 |
Požadavky:
Předmět vyžaduje základní znalosti procedurálního programování, které lze získat v předmětu "Procedurální programování".
Poznámka:
Předmět je zahrnut do těchto studijních plánů:
Stránka vytvořena 19.5.2024 15:50:46, semestry: Z/2024-5, Z,L/2023-4, připomínky k informační náplni zasílejte správci studijních plánů |
Návrh a realizace: I. Halaška (K336), J. Novák (K336) |