Detail předmětu

The C++ Programming Language

FEKT-CSCPAk. rok: 2017/2018

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.

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.

Doporučená nebo povinná literatura

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

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 (0-5 bodů)
- za aktivní účast v počítačovém cvičení (ateliéru)
Dvakrát za výukové období (semestr) odevzdá samostatně zpracovaný příklad algoritmu s aplikovanými prvky a nástroji objektově orientovaného přístupu programování. (0-25 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.

Jazyk výuky

angličtina

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

Cíl

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.

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

  • Program EEKR-BC bakalářský

    obor BC-TLI , 2. ročník, letní semestr, 4 kredity, volitelný mimooborový

  • Program AUDIO-PU magisterský navazující

    obor PU-AUD , 1. ročník, letní semestr, 4 kredity, volitelný mimooborový
    obor PU-AUD , 2. ročník, letní semestr, 4 kredity, volitelný mimooborový

Typ (způsob) výuky

 

Cvičení na poč.

26 hod., povinná

Vyučující / Lektor

Projekty a atel.

13 hod., povinná

Vyučující / Lektor