Popis předmětu - BD5B37PPC
BD5B37PPC | Programování v jazyce C/C++ | ||
---|---|---|---|
Role: | P | Rozsah výuky: | 14KP+6KC |
Katedra: | 13137 | Jazyk výuky: | CS |
Garanti: | Vítek S. | Zakončení: | KZ |
Přednášející: | Vítek S. | Kreditů: | 4 |
Cvičící: | Liebzeit L., Vítek S. | Semestr: | Z |
Webová stránka:
https://cw.fel.cvut.cz/wiki/courses/BD5B37PPCAnotace:
Předmět seznamuje studenty s C++ a dále rozvijí praktické dovednosti programování v C/C++. Přednášky jsou věnovány objektově orientovanému programování v C++ a seznámení studentů se základními datovými kontejnery STL. Studenti se také seznámí s principy paralelního programování více-vláknových aplikací, mechanismy synchronizace a modely více-vláknových aplikací.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.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 | |
[4] | Eckel: Thinking in C++, Vol. 1 & Vol. 2, dostupné online: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html | |
[5] | http://www.cplusplus.com/info/ |
Požadavky:
Předmět vyžaduje základní znalosti procedurálního programování, které lze získat např. v předmětu "Procedurální programování".Poznámka:
2p+2c+5d |
Předmět je zahrnut do těchto studijních plánů:
Plán | Obor | Role | Dop. semestr |
BKEEK_2016 | Před zařazením do oboru | P | 3 |
Stránka vytvořena 20.3.2025 17:50:56, semestry: Z,L/2025-6, Z,L/2024-5, 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) |