Algoritmy a programovací techniky (FSI-VCP)

Akademický rok 2022/2023
Garant: doc. Ing. Jan Roupec, Ph.D.  
Garantující pracoviště: ÚAI všechny předměty garantované tímto pracovištěm
Jazyk výuky: čeština
Cíle předmětu:
Cílem kursu je naučit se formulovat algoritmy pro širokou škálu inženýrských úloh, programovat v jazycích C a C++ a pochopit rysy objektově orientovaného programování a metodiku návrhu a tvorby programu s využitím OOP.
Výstupy studia a kompetence:
Studenti získají základní dovednosti a zkušenosti při psaní a ladění programů středního stupně obtížnosti s využitím programovacího jazyka C a C++. Studenti zvládnou technologii OOP pro návrh a realizaci projektů v jazyce C++.
Prerekvizity:
Kurs předpokládá základní znalost algoritmizace a počítačovou gramotnost.
Obsah předmětu (anotace):
Předmět se zabývá výukou algoritmizace a programování. Pro praktickou výuku jsou používány programovací jazyky C a C++. Jazyk C je v současnosti jedním z nejužívanějších programovacích jazyků. K jeho velkým výhodám patří jeho univerzální použitelnost pro nejrůznější aplikační oblasti a dostupnost pro většinu existujících platforem. Jazyk C++ se vykazuje velmi vysokým stupněm implementace rysů objektově orientovaného programování. Překladač jazyka C++ bývá k dispozici pro různě platformy, samotný jazyk je velmi dobře standardizován. Tyto rysy činí jazyk C++ jedním z nejvhodnějších jazyků pro tvorbu rozsáhlých aplikací v současné době.
Metody vyučování:
Předmět je vyučován formou přednášek, které mají charakter výkladu základních principů a teorie dané disciplíny. Cvičení je zaměřeno na praktické zvládnutí látky probrané na přednáškách.
Způsob a kritéria hodnocení:
Zápočet: Účast na cvičeních + zpracování zadaných programů v C a C++ (celkem 2 programy). Zkouška: ústní, diskuse nad zpracovanými projekty s možnými doplňujícími otázkami. Klasifikace je plně v kompetenci vyučujícího podle platných směrnic VUT v Brně.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky:
Přítomnost na přednáškách je doporučená, na cvičeních povinná. Výuka probíhá podle rozvrhu. Stanovení formy náhrady zameškaných cvičení je v kompetenci vyučujícícho.
Typ (způsob) výuky:
    Přednáška  13 × 2 hod. nepovinná                  
    Cvičení s počítačovou podporou  13 × 2 hod. povinná                  
Osnova:
    Přednáška 1. Úvod, základní datové typy, operátory, výrazy.
2. Deklarace, definice. Struktura programu. Řídicí struktury.
3. Pole a směrníky, směrníková aritmetika. Funkce.
4. Struktury, uniony, definice typu. Preprocesor. Práce se soubory.
5. Historie C++. Rozdíly mezi C a C++ v neobjektové oblasti.
6. Základní charakteristika OOP. Datové typy s vlastnostmi objektů. Metody.
7. Přístup k položkám objektů. Konstruktor a destruktor. Static datové položky a metody. Přetěžování operátorů.
8. Dědičnost. Polymorfismus, virtuální metody, ryzí virtuální metody.
9. Proudy dat. Realizace datových struktur v C++.
10. Výjimky. Genericita, šablony.
11. Objektově orientovaná analýza a design.
12. - 13. Návrh a realizace rozsáhlých projektů v C++.
    Cvičení s počítačovou podporou 1. Vývojové prostředí Visual Studio. Jednoduchá konzolová aplikace.
2. Tvorba konzolových aplikací v prostředí MS Visual C++.
3.-5. Realizace základních algoritmů pro práci s poli a ukazateli, dynamické datové struktury.
6. Příklad rozsáhlého projektu v jazyce C.
7. Používání konstruktorů a destruktorů.
8. Dědičnost a polymorfismus.
9. Realizace datových struktur v C++.
10. Používání šablon.
11. Událostmi řízené programování. Příklad Windows aplikace.
12. Ukázky projektů v jazycích Java a C#.
13. Diskuse individuálních projektů.
Literatura - základní:
1. Kernighan, B. W. - Ritchie, D, M.: The C Programming Language. Second Edition. Prentice-Hall, 2012.
2. Stroustrup, B.: The C++ Programming Language, Fourth edition, Pearson Education, 2013.
3. Drozdek, A.: Data Structures and Algorithms in C++. CENGAGE Learning, 2013.
Literatura - doporučená:
1. Capper, D.M.: Introducing C++ for Scientists, Engineers and Mathematicians, Springer, 2001.
2. Virius, M.: Jazyky C a C++, kompletní průvodce. Grada, 2011.
Zařazení předmětu ve studijních programech:
Program Forma Obor Spec. Typ ukončení   Kredity     Povinnost     St.     Roč.     Semestr  
CŽV prezenční studium CZV Základy strojního inženýrství -- zá,zk 5 Povinný 1 1 L
N-AIŘ-P prezenční studium --- bez specializace -- zá,zk 5 Volitelný 2 1 L
B-STR-P prezenční studium AIŘ Aplikovaná informatika a řízení -- zá,zk 5 Povinný 1 2 L