Detail předmětu

Praktické programování v C++

FEKT-BPC-PPCAk. rok: 2022/2023

Předmět se věnuje praktickému zvládnutí základů jazyka C++, jako rozšíření jazyka C (v návaznosti na látku probranou v předchozích předmětech).
Studenti se seznámí se základními neobjektovými rozšířeními jazyka C, se základy objektového programování. Dále se seznámí s nástroji pro tvorbu programu v C++ a standardními knihovnami.

Jazyk výuky

čeština

Počet kreditů

6

Výsledky učení předmětu

Absolvent předmětu je schopen:
- používat neobjektové rozšíření jazyka
- provést návrh programu využívajícího objektové programování
- naprogramovat a použít navržené objekty (přístupová práva, členská data, metody, operátory)
- orientace v objektově napsaných programech,
- napsat objektově orientovaný program se základním použitím dědění včetně virtuálních metod,
- použít streamů pro vstupně výstupní operace,
- vytvářet šablony,

Prerekvizity

Absolvování kurzu BPC-UDP a úspěšné absolvování BPC-ALD nebo kurzů s podobnou náplní.

Plánované vzdělávací činnosti a výukové metody

Metody vyučování zahrnují přednášky a cvičení na počítači. Předmět využívá www stránky ve spojení s e-learningem (Moodle). Student odevzdává jeden samostatný projekt během semestru.

Způsob a kritéria hodnocení

60b - písemná závěrečné zkouška ověřující schopnost využití probrané látky. Nutná registrace v IS. Zápočet podmínkou.
Zápočet je udělen za dosažení 13 a více bodů z projektu (popř. 7 bodů z prvních částí projektů - podle průběhu semestru).
40b - projekt - průběžná tvorba třídy v návaznosti na přednášky a cvičení. Společná práce ve skupinách (3,4 členné, podle počtu studentů ve cvičení, které student navštěvuje).
Konkrétní zadání a termíny plnění budou stanoveny v průběhu semestru.

Osnovy výuky

1. Úvod. Opakování C – datové typy, programovací techniky, algoritmizace.
2. Srovnání C a C++. Objektové možnosti C++. Pojem objektu a jeho návrh.
3. Pojem výjimka v C++, princip šíření výjimek v programu. Generické programování, pojem šablona.
4. Práce s proměnnými pomocí reference. Definice objektu. Přístup k proměnným pomocí this.
5. Přetěžování funkcí a metod. Implicitní parametry funkcí.
6. Konstruktory a destruktory. Životní cyklus proměnných. Pojem viditelnosti a dosažitelnosti obsahu proměnné.
7. Operátory. Friend funkce.
8. Inline funkce a metody. Rozdělení třídy mezi hlavičkový a zdrojový soubor.
9. C++ knihovna pro standardní vstupy a výstupy, pojem stream.
10. Pojem dědění v kontextu objektového programování.
11. Vícenásobné dědění.
12. Virtuální metody.
13. Abstraktní třída a její využití při objektovém návrhu.

Učební cíle

Praktické zvládnutí základů jazyka C++, jako rozšíření jazyka C.
Získat základní programatorské dovednosti v oblasti objektového programování.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročne aktualizovaná vyhláška garanta předmětu.

Prerekvizity a korekvizity

Základní literatura

RICHTER, Miloslav, PETYOVSKÝ, Petr, HORÁK Karel a KALOVÁ Ilona. Praktické programování v CPP SL. Elektronické texty. Brno: 2004. (CS)
STROUSTRUP, B.: The C++ Programming Language. Addison-Wesley,2013. 1368 s. ISBN-13: 978-0321563842. (EN)
VIRIUS, M.: Jazyky C a C++. 2. , aktualizované vydání. Praha: Grada Publishing, 2011. 368 s. ISBN 9788024739175. (CS)
VIRIUS, M.: Programování v C++ od základů k profesionálnímu použití, Grada publishing, 2018, ISBN: 978-80-271-0502-1 (CS)

Elearning

Zařazení předmětu ve studijních plánech

  • Program BPC-EKT bakalářský 3 ročník, zimní semestr, povinně volitelný
  • Program BPC-AMT bakalářský 3 ročník, zimní semestr, povinný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1 Úvod. Opakování C – datové typy, programovací techniky, algoritmizace.
2 Srovnání C a C++. Objektové možnosti C++. Pojem objektu a jeho návrh.
3 Práce s proměnnými pomocí reference. Definice objektu. Přístup k proměnným pomocí this.
4 Přetěžování funkcí a metod. Implicitní parametry funkcí.
5 Konstruktory a destruktory. Životní cyklus proměnných. Pojem viditelnosti a dosažitelnosti obsahu proměnné.
6 Operátory. Friend funkce.
7 Inline funkce a metody. Rozdělení třídy mezi hlavičkový a zdrojový soubor.
8 C++ knihovna pro standardní vstupy a výstupy, pojem stream.
9 Pojem dědění v kontextu objektového programování.
10 Vícenásobné dědění.
11 Virtuální metody.
12 Abstraktní třída a její využití při objektovém návrhu.
13 Pojem výjimka v C++, princip šíření výjimek v programu. Generické programování, pojem šablona.

Cvičení na počítači

26 hod., povinná

Vyučující / Lektor

Osnova

1 Úvod. Opakování tvorby projektu v programovacím prostředí.
2 Opakování práce se strukturami jako základ pro práci se třídou (složeným datovým typem)
3 Tvorba složitějších struktur a práce s nimi.
4 Rozšíření tvorby struktur o vlastnosti jazyka C ++: new, delete, výjimky
5 Využití referencí pro práci s proměnnými a s parametry funkcí a metod
6 Popis nástroje pro automatizované dokumentování SW projektů. Nástroje pro správu zdrojových textů.
7 Ukázky a rozbor zdrojových textů vzorových tříd. Základní definice třídy a tvorba jejích proměnných.
8 Definice datových členů třídy a metod pro práci s nimi. Konstruktory a destruktory.
9 Operátory.
10 Vstupy a výstupy pomocí streamů. Prostory jmen.
11 Dědění.
12 Využití virtuálních metod.
13 Opakování. Konzultace projekt.

Projekt

13 hod., povinná

Vyučující / Lektor

Osnova

1 Seznámení s projektem a nástroji pro jeho zpracování (překladač, nástroje pro správu revizí a automatické dokumentace zdrojových textů, doporučené soubory s kódem)
2 Rozbor projektu a tvorba zadání
3 Tvorba a rozbor základu projektu (třídy a jejich vazby, vhodnost datových typů a rozhraní tříd).
4 Tvorba zdrojových kódů projektu.
5 Tvorba dokumentace.
6 Obhajoba projektu.

Elearning