FI:PB161 Programování v jazyce C++ - Informace o předmětu
PB161 Programování v jazyce C++
Fakulta informatikyjaro 2022
- Rozsah
- 2/2/0. 3 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: z.
- Vyučující
- RNDr. Nikola Beneš, Ph.D. (přednášející)
RNDr. Petr Ročkai, Ph.D. (přednášející)
Mgr. František Bráblík (cvičící)
Mgr. Jan Juračka (cvičící)
Mgr. Lukáš Korenčik (cvičící)
Bc. Tomáš Krchňák (cvičící)
Mgr. Patrick Ondika (cvičící)
Bc. Jakub Šárník (cvičící)
Bc. Michal Barnišin (pomocník)
Mgr. Martin Beľa (pomocník)
Ing. Dávid Bolvanský (pomocník)
Mgr. Jan Jedelský (pomocník)
Bc. Martin Kozlovský (pomocník)
Mgr. Adam Matoušek (pomocník)
Bc. Vojtěch Nájemník (pomocník)
Bc. Dominik Tichý (pomocník)
Mgr. Šimon Varga (pomocník) - Garance
- RNDr. Nikola Beneš, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky - Rozvrh
- Út 15. 2. až Út 10. 5. Út 16:00–17:50 D2
- Rozvrh seminárních/paralelních skupin:
PB161/N06: Rozvrh nebyl do ISu vložen. P. Ročkai
PB161/N08: Rozvrh nebyl do ISu vložen. P. Ondika
PB161/01: Po 14. 2. až Po 9. 5. Po 14:00–15:50 A219, N. Beneš
PB161/02: Čt 17. 2. až Čt 12. 5. Čt 12:00–13:50 A219, F. Bráblík
PB161/03: Po 14. 2. až Po 9. 5. Po 16:00–17:50 A219, J. Juračka
PB161/04: Po 14. 2. až Po 9. 5. Po 10:00–11:50 A219, L. Korenčik
PB161/05: Po 14. 2. až Po 9. 5. Po 12:00–13:50 B130, T. Krchňák
PB161/06: Út 15. 2. až Út 10. 5. Út 8:00–9:50 A219, P. Ročkai
PB161/07: Po 14. 2. až Po 9. 5. Po 8:00–9:50 A219, J. Šárník
PB161/08: Pá 18. 2. až Pá 13. 5. Pá 12:00–13:50 A219, P. Ondika - Předpoklady
- PB071 Principy nízkoúr. prog.
Základní znalost programování a algoritmizace (v rozsahu předmětů IB111, IB002), nízkoúrovňového programování (PB071), principů programovacích jazyků a OOP (v rozsahu předmětu PB006). Současně se předpokládá znalost operačního systému Unix nebo podobného na uživatelské úrovni, neboť odevzdání domácích úloh probíhá pod Unixem. - Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- předmět má 65 mateřských oborů, zobrazit
- Cíle předmětu
- Cíli předmětu je seznámit studenty s programovacím jazykem C++ podle standardu C++17. Předmět se zaměřuje na sémantiku jazyka včetně principu RAII pro správu zdrojů, definici uživatelských typů (tříd), práci se standardní knihovnou. Studenti se rovněž seznámí s využitím různých programovacích paradigmat v rámci C++: funkcionálního programování, OOP, generického programování a metaprogramování.
- Výstupy z učení
- Po absolvování tohoto kurzu bude student schopen:
- psát programy v jazyce C++ s použitím prostředků moderního C++ (podle standardu C++17);
- používat podstatnou část standardní knihovny jazyka C++;
- vytvářet složené datové typy (třídy) v jazyce C++;
- rozumět hodnotové sématice C++ a vysvětlit rozdíl proti sémantikám jiných populárních jazyků;
- rozumět principům správy zdrojů (vč. správy paměti) v jazyce C++;
- rozumět realizaci principů objektově orientovaného programování v C++;
- rozumět základům generického programování a metaprogramování pomocí šablon v C++;
- efektivně a vhodně používat při programování výjimky;
- při programování dodržovat dobré programátorské návyky. - Osnova
- Úvod do sémantiky C++, třídy, řetězce, dynamická pole.
- Hodnotová a referenční sémantika C++, uzávěry (anonymní funkce, „lambdy“).
- Standardní knihovna algoritmů, kontejnery, iterátory.
- Přetěžování funkcí a metod, typový a objektový systém C++, jmenné prostory, přístupová práva.
- Vstup a výstup v C++, přetěžování operátorů.
- Výjimky a jejich ošetření, princip správy zdrojů (RAII).
- Správa paměti v moderním C++, chytré ukazatele.
- Realizace objektově orientovaného programování v C++.
- Generické programování, šablony.
- Metaprogramování pomocí šablon, užitečné části standardní knihovny.
- Koncept iterátorů podrobněji, implementace vlastních iterátorů.
- Závěr předmětu, výhled do budoucna (standard C++20).
- Literatura
- STROUSTRUP, Bjarne. The C++ programming language. 3rd ed. Reading: Addison-Wesley, 1997, x, 910 s. ISBN 0-201-88954-4. info
- VIRIUS, Miroslav. Programování v C++. 1. vyd. Praha: ČVUT, 1998, 364 s. ISBN 8001018741. info
- VIRIUS, Miroslav. Pasti a propasti jazyka C++ : podrobný průvodce pokročilého uživatele. 1. vyd. Praha: Grada, 1997, 251 s. ISBN 8071696072. info
- VIRIUS, Miroslav. Od C k C++. 1. vyd. České Budějovice: KOPP, 2000, 227 s. ISBN 80-7232-110-2. info
- LOUIS, Dirk, Petr MEJZLÍK a Miroslav VIRIUS. Jazyky C a C++ podle normy ANSI/ISO: kompletní kapesní průvodce. 1. vyd. Praha: Grada Publishing, 1999, 644 s. ISBN 80-7169-631-5. info
- MEYERS, Scott. Effective C++ :50 specific ways to improve your programs and designs. 2nd ed. Reading: Addison-Wesley, 1998, xx, 256 s. ISBN 0-201-92488-9. info
- Záložky
- https://is.muni.cz/ln/tag/FI:PB161!
- Výukové metody
- Výuka probíhá formou kombinace teoretických přednáškových lekcí s praktickými cvičeními, doplněnými samostatnými domácími programátorskými úlohami procvičujícími probranou látku z přednášek.
- Metody hodnocení
- Domácí úlohy v průběhu semestru, programovací zkouška.
- Navazující předměty
- Další komentáře
- Studijní materiály
Předmět je vyučován každoročně. - Nachází se v prerekvizitách jiných předmětů
- IB113 Úvod do programování a algoritmizace
!NOW(IB111) && !IB111 && !PB162 && !PB161 && !PB071 && !IB001 && !program(B-INF) && !program(B-PVA) && !program(B-CS) - PB007 Software Engineering I
PB160 || PB161 || PB162 || PB174 || PV178 || PB112 - PV255 Game Development I
PB009 && PV112 && (PB161 || PB162 || PV178) - PV294 Advanced C++
PB161
- IB113 Úvod do programování a algoritmizace
- Statistika zápisu (jaro 2022, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2022/PB161