Detail předmětu

Praktické programování v C++

FEKT-BPC-PPCAk. rok: 2019/2020

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í

cca 40b - projekt - tvorba třídy v návaznosti na přednášky a cvičení.
cca 60b - písemné zkoušky, testy.
Konkrétní bodovou kombinaci (do 100bodů) a podmínky pro uspěšné ukončení předmětu stanoví každoročně aktualizována vyhláška garanta předmětu.

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

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

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

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

  • Program EEKR-CZV celoživotní vzdělávání (není studentem)

    obor ET-CZV , 1. 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.