Detail předmětu

The C++ Programming Language

FEKT-BPA-SCPAk. rok: 2022/2023

Student na jednoduchém algoritmu získá 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

angličtina

Počet kreditů

4

Nabízen zahradničním studentům

Všech fakult

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

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

Prerekvizity

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. Jsou požadovány znalosti některého z problémově orientovaných programovacích jazyků, jako například C, PASCAL, BASIC, FORTRAN. Je požadovaná znalost základních dovedností IT v systémech s API, objektově orientovaných, 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.

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

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.
Pro zvládnutí objektově orientovaného programování a způsobu použití jednotlivých nástrojů je výuka členěna na teoretické objasnění problematiky a jeho následné procvičení na jednoduchých algoritmech.
Přednáška a cvičení proto následují v rozvrhu bezprostředně za sebou. V procvičení na počítačích je student individuálně veden v rámci bodu osnovy k posouzení vhodnosti použití prvku objektového programování v algoritmu, návrhu jeho zakomponování ve zdrojovém textu. Zdrojový text samostatně analyzuje, vyhledá a napraví chyby. Algoritmus samostatně testuje, během cvičení jej modifikuje a získává dovednosti z oblasti variability použitých nástrojů objektového způsobu událostmi řízeného programování. Na konci lekce je samostatně schopen vysvětlit každou položku zdrojového textu a diskutovat nad výhodami a nevýhodami algoritmu, je schopen je samostatně doplnit a tvůrčím způsobem modifikovat.

Způsob a kritéria hodnocení

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. 

Osnovy výuky

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

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.

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

Obě části výuky - přednáška, cvičení (ateliéry) 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.

Základní literatura

Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997
Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000
Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994
ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988
ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996
Eckel, B.: Myslíme v jazyku C++, GRADA, 2000

eLearning

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

  • Program BPA-ELE bakalářský

    specializace BPA-ECT , libovolný ročník, letní semestr, volitelný
    specializace BPA-PSA , libovolný ročník, letní semestr, volitelný

Typ (způsob) výuky

 

Cvičení na počítači

39 hod., povinná

Vyučující / Lektor

eLearning