Detail předmětu

Seminář C++

FEKT-BPC-SCPAk. rok: 2023/2024

Základy programování v jazyce C. Následně student získá na jednoduchém algoritmu dovednosti jazyka C++ a ucelený přehled vlastností jazyka C++ podle normy ISO. Tím jsou zejména vlastnosti objektů, tříd, operátorů, dědičnost, polymorfismus, přetěžování, šablon funkcí a tříd, obsluha výjimek a jejich použití. Naučí se využívat standardních knihoven STL.

Jazyk výuky

čeština

Počet kreditů

4

Vstupní znalosti

Student, který si zapíše předmět, by měl být schopen zvládat základní principy algoritmizace, vysvětlit vlastnosti a pracovat v událostmi řízeném operačním systému. Je požadovaná znalost základních dovedností IT v systémech s API, zvládnutí některých překladačů a vývojových prostředí pro kompilaci zdrojových textů, například Microsoft Visual C++, Borland C++ Builder atp. a znalost procesu kompilace.

Pravidla hodnocení a ukončení předmětu

Během každého bloku výuky je student hodnocen:
- za sestavení, odladění a funkčnost algoritmu s prvky objektově orientovaného přístupu programování podle aktuálního tématu (10x 0 - 4 bodů)
- za aktivní účast v počítačovém cvičení
Jednou za výukové období (semestr) odevzdá samostatně zpracovaný projekt s aplikovanými prvky a nástroji objektově orientovaného přístupu programování. (0 - 60 bodů)
Vyučující hodnotí porozumění využití nástrojů, správnému zařazení v algoritmu a v prvcích API, aplikační potenciál zpracování algoritmu, kvalitu vnoření algoritmu do událostmi řízeného systému jako nadřazeného celku.

Pro získání klasifikovaného zápočtu je nutné během semestru dosáhnout na minimálně 50 b. včetně obhájeného finálního projektu. 


Obě části výuky - přednáška i cvičení jsou povinné. Po řádné omluvě a dohodě s vyučujícím je možné zameškanou výuku nahradit, obvykle v zápočtovém týdnu.

Učební cíle

Cílem předmětu je na řešených příkladech algoritmizace naučit studenty používání základních nástrojů objektově orientovaného přístupu v jazyce C++ a naučit je základy generického programování s využitím šablon.
Absolvent předmětu je schopen:
- analyzovat problém a formulovat algoritmus matematického modelu
- navrhnout algoritmus a efektivně jej implementovat tak, že je výsledný kód pro použitý operační systém velmi výkonný a stabilní
- sestavit a aplikovat v jednoduchém textovém prostředí algoritmus za minimálních požadavků na IT hardware
- znát a aplikovat vlastností objektově orientovaného přístupu
- ovládat objektový přístup k sestavení aplikace
- posoudit, navrhnout a aplikovat nástroje C++ (objekty, třídy, operátory, dědičnost, polymorfismus, přetěžování) využít šablon funkcí a tříd, obsluhovat výjimky, používat standardních knihoven STL

Základní literatura

Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994 (EN)
Eckel, B.: Myslíme v jazyku C++, GRADA, 2000 (CS)
Herout, P. Učebnice jazyka C, Koop, 6. vydání, 2009. (CS)
ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996 (EN)
ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988 (EN)
Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000 (EN)
Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997 (EN)

Elearning

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

  • Program BPC-TLI bakalářský 0 ročník, letní semestr, volitelný
  • Program BPC-IBE bakalářský 3 ročník, letní semestr, povinně volitelný

  • Program BPC-AUD bakalářský

    specializace AUDB-TECH , 3 ročník, letní semestr, povinně volitelný
    specializace AUDB-ZVUK , 2 ročník, letní semestr, povinně volitelný

Typ (způsob) výuky

 

Cvičení na počítači

39 hod., povinná

Vyučující / Lektor

Osnova

1. Základy strukturovaného programování v jazyce C, datové typy, funkce, podmínky, cykly.
2. Dynamická alokace paměti, vícerozměrná pole, pointery, vracení hodnoty parametrem.
3. Vlastnosti jazyka C/C++, směrnice ANSI, objektově orientované programování, algoritmy.
4. Klíčová slova C++, třídy, členské proměnné.
5. Členské funkce-metody, ukazatel this, agregáty, oblasti platnosti a dosažitelnosti identifikátorů.
6. Prostory jmen, paměťové třídy, objekty.7. Přiřazování objektů, předávání a vracení objektů funkcím.
8. Přehled operátorů, popis a užití operátorů.
9. Přetěžování operátorů.
10. Dědičnost, přístupy v dědičnosti, polymorfismus.
11. Přetěžování konstruktorů, anachronismus přetěžování, přetěžování a nejednoznačnost.
12. Šablony funkcí a tříd, parametry šablon, šablony objektových typů, obsluha výjimek.
13. Knihovny STL a jejich aplikace. 

Elearning