PB161 Programování v jazyce C++

Fakulta informatiky
jaro 2023
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í)
Bc. Matej Focko (cvičící)
Bc. Jakub Šárník (cvičící)
Bc. Vladimír Uhlík (cvičící)
Mgr. Lukáš Korenčik (pomocník)
Bc. Tomáš Krchňák (pomocník)
Bc. Dominik Tichý (pomocník)
RNDr. Martin Jonáš, Ph.D. (pomocník)
Mgr. Adam Matoušek (pomocník)
Ing. Oliver Šintaj (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 14. 2. až Út 9. 5. Út 12:00–13:50 D2
  • Rozvrh seminárních/paralelních skupin:
PB161/01: Út 14. 2. až Út 9. 5. Út 16:00–17:50 A219, N. Beneš
PB161/02: Čt 16. 2. až Čt 11. 5. Čt 14:00–15:50 A219, F. Bráblík
PB161/03: Pá 17. 2. až Pá 12. 5. Pá 12:00–13:50 B130, M. Focko
PB161/04: Út 14. 2. až Út 9. 5. Út 14:00–15:50 B011, J. Šárník
PB161/05: Út 14. 2. až Út 9. 5. Út 18:00–19:50 A219, P. Ročkai
PB161/06: Út 14. 2. až Út 9. 5. Út 10:00–11:50 B130, V. Uhlík
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.
Předmět si smí zapsat nejvýše 60 stud.
Momentální stav registrace a zápisu: zapsáno: 23/60, pouze zareg.: 0/60, pouze zareg. s předností (mateřské obory): 0/60
Mateřské obory/plány
předmět má 66 mateřských oborů, zobrazit
Cíle předmětu
Cíli předmětu je seznámit studenty se základy programovacího jazyka C++ podle standardu C++20. 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), základy práce se standardní knihovnou.
Výstupy z učení
Po absolvování tohoto kurzu bude student schopen:
- psát jednoduché programy v jazyce C++ s použitím prostředků moderního C++ (podle standardu C++20);
- používat na základní úrovni standardní knihovnu 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++;
- efektivně a vhodně používat při programování výjimky;
- při programování dodržovat dobré programátorské návyky.
Osnova
  • Základní syntaxe a sémantika C++, hodnotová sémantika, reference, const.
  • Složené hodnoty a typy, záznamy (struct), základní složené typy ve standardní knihovně.
  • Rozšíření typu o metody a operátory, přetěžování.
  • Životní cyklus hodnoty, vlastnictví, konstruktory, destruktory.
  • Ukazatele obyčejné i „chytré“, koncept vlastnictví skrz ukazatel.
  • Dědičnost, pozdní vazba, OOP polymorfismus, virtuální destruktory.
  • Obsluha výjimek, princip RAII, správa zdrojů.
  • Lexikální uzávěry („lambda funkce“).
  • Součtové typy ve standardní knihovně.
  • Algoritmy klasické i nové (část knihovny „ranges“).
  • Práce s řetězci.
  • Formátování, vstup a výstup.
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, tři vnitrosemestrální programovací testy, 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ů
Předmět je zařazen také v obdobích podzim 2002, podzim 2003, podzim 2004, podzim 2005, podzim 2006, podzim 2007, podzim 2008, podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, jaro 2020, jaro 2021, jaro 2022, jaro 2024, jaro 2025.