Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2023/2024
UPOZORNĚNÍ: Jsou dostupné studijní plány pro následující akademický rok.

Praktické programování v C/C++

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
B2B99PPC KZ 6 2P+2C česky

Podmínkou zápisu na předmět B2B99PPC je, že student si nejpozději ve stejném semestru zapsal příslušný počet předmětů ze skupiny BEZBM

Garant předmětu:
Stanislav Vítek
Přednášející:
Stanislav Vítek
Cvičící:
Lukáš Liebzeit, Václav Navrátil, Ondřej Nentvich, Stanislav Vítek
Předmět zajišťuje:
katedra radioelektroniky
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.

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í“.

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. 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.

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.

Studijní materiály:

[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

Poznámka:

2p+2c+2d

Další informace:
https://cw.fel.cvut.cz/wiki/courses/b2b99ppc
Rozvrh na zimní semestr 2023/2024:
Rozvrh není připraven
Rozvrh na letní semestr 2023/2024:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
místnost T2:D3-209
Vítek S.
11:00–12:30
(přednášková par. 1)
Dejvice
T2:D3-209
místnost T2:A4-402

12:45–14:15
(přednášková par. 1
paralelka 101)

Dejvice
Laborator
místnost T2:A4-402
Vítek S.
14:30–16:00
(přednášková par. 1
paralelka 106)

Dejvice
Laborator
místnost T2:A4-402
Liebzeit L.
16:15–17:45
(přednášková par. 1
paralelka 107)

Dejvice
Laborator
St
Čt
místnost T2:A4-405

07:30–09:00
(přednášková par. 1
paralelka 105)

Dejvice
Laborator
místnost T2:A4-405
Nentvich O.
09:15–10:45
(přednášková par. 1
paralelka 102)

Dejvice
Laborator
místnost T2:A4-405
Navrátil V.
Nentvich O.

11:00–12:30
(přednášková par. 1
paralelka 103)

Dejvice
Laborator
místnost T2:A4-405
Navrátil V.
Nentvich O.

12:45–14:15
(přednášková par. 1
paralelka 104)

Dejvice
Laborator
místnost T2:A4-405
Liebzeit L.
14:30–16:00
(přednášková par. 1
paralelka 108)

Dejvice
Laborator

Předmět je součástí následujících studijních plánů:
Platnost dat k 27. 3. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet4665206.html