Jazyky C a C++ (FSI-VCP)

Akademický rok 2012/2013
Garant: prof. RNDr. Ing. Tomáš Březina, CSc.  
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 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á znalost algoritmizace a používání některého procedurálního programovacího jazyka (např. Pascal).
Obsah předmětu (anotace):
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 z profesionálně používaných programovacích jazyků vykazuje doposud nejvyšší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 číní jazyk C++ jedním z nejvhodnějších jazyků pro tvorbu rozsáhlých aplikací v současné době.
Metody vyučování:
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.
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č. podporou  13 × 2 hod. povinná                  
Osnova:
    Přednáška 1. Úvod, historie jazyka C, základní datové typy, výrazy a příkazy.
2. Deklarace a definice. Řídící struktury, funkce, struktura programu.
3. Pole a směrníky, směrníková aritmetika, struktury, uniony, definice typu.
4. 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ů.
7. Přístup k položkám objektů. Inicializace objektu, konstruktor a destruktor.
8. Static datové položky a metody. Dědičnost, dědění, vícenásobná dědičnost.
9. Polymorfismus, virtuální metody, ryzí virtuální metody. Přetěžování operátorů.
10. Proudy dat v C++. Kontejnery.
11. Výjimky. Genericita, šablony.
12. Persistentní objekty, serializace.
13. Návrh a realizace rozsáhlých projektů v C++.
    Cvičení s poč. podporou 1. Práce s překladači Borland a Microsoft.
2. Tvorba konzolových aplikací v prostředí MS Visual C++.
3.-5. Aplikace používající pole, směrníky a dynamické datové struktury.
6. Jednoduché aplikace v C++.
7. Používání konstruktorů a destruktorů.
8. Objektová implementace genetického algoritmu.
9. Událostmi řízené programování.
10. Základní principy aplikací pro Windows.
10. Úvod do MFC. Databázové aplikace v MFC.
12. Tvorba DLL.
13. Diskuse samostatných projektů.
Literatura - základní:
1. Kernighan, B. W. - Ritchie, D. M.: The C Programming Language
2. Stroustrup, B.: The C++ Programming Language
Literatura - doporučená:
2. Dumek, V. - Roupec, J.: Programování v jazyku C
3. Racek, S.: Objektově orientované programování v C++
Zařazení předmětu ve studijních programech:
Program Forma Obor Spec. Typ ukončení   Kredity     Povinnost     St.     Roč.     Semestr  
M2I-P prezenční studium M-AIŘ Aplikovaná informatika a řízení -- zá,zk 5 Povinný 2 1 Z
B3S-P prezenční studium B-AIŘ Aplikovaná informatika a řízení -- zá,zk 4 Povinný 1 2 Z
M2A-P prezenční studium M-MAI Matematické inženýrství -- zá,zk 4 Povinně volitelný 2 1 Z