Objektově orientované programování (FSI-VOB)

Akademický rok 2020/2021
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:
Pochopit rysy objektově orientovaného programování a metodiku návrhu a tvorby programu s využitím OOP. Seznámit se s podporou objektové technologie v jazyce C++ a C#.
Výstupy studia a kompetence:
Absolvent bude schopen používat technologii objektově orientovaného programování pro návrh a implementaci softwarových systémů s použitím programovacího jazyka C++ a C#.
Prerekvizity:
Předpokládají se základní znalosti algoritmizace a programování v některém procedurálním programovacím jazyce. Znalost jazyka C je výhodou.
Obsah předmětu (anotace):
Předmět je zaměřen na objektově orientované programování a jeho použití při návrhu a realizaci softwarových systémů. Výklad technik OOP je z hlediska metodiky částečně držen v obecné rovině, detaily implementace a praktické příklady používají jazyk C++ a C#.
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í:
Pro udělení zápočtu je nutná aktivní účast na cvičeních, vypracování závěrečného testu (max. 50 bodů) a zpracování semestrálního projektu (max. 50 bodů). Studenti si sami volí téma projektu, projekt je ohodnocen vyučujícím. Pro úspěšné zakončení kursu je nutné získat v součtu alespoň 50 bodů.
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 × 1 hod. nepovinná                  
    Cvičení s počítačovou podporou  13 × 2 hod. povinná                  
Osnova:
    Přednáška 1. Klasifikace programovacích jazyků. Vývoj technologie programování. Charakteristika OOP.
2. Úvod do jazyka C++.
3. Základní pojmy, objektové datové typy, přístup k položkám objektů.
4. Inicializace instance, konstruktor a destruktor.
5. Dědičnost, hierarchie a vzájemné vztahy objektů.
6. Pozdní vazba, virtuální metody.
7. Přetížené operátory.
8. Kontejnery.
9. Serializace objektů. Proudy dat. Persistentní objekty.
10. Genericita.
11. Objektový návrh.
12. Objekty jako výpočetní procesy.
13. Realizace rozsáhlých projektů.
    Cvičení s počítačovou podporou 1. Opakování algoritmizace, práce s překladačem.
2. Příklady v C++ bez využití objektových vlastností.
3.-10. Příklady k tématům probíraným na přednáškách v jazyce C++ a alternativně v jazyce C#.
11., 12. Implementace genetického algoritmu v C++.
13. Závěrečný test.
Literatura - základní:
1. Weisfeld, M.: The Object-Oriented Thought Process. Addison-Wesley Professional, 2008.
2. Stroustrup, B.: The C++ Programming Language. 3rd Edition. Addison-Wesley Professional, 2000.
Literatura - doporučená:
1. Stroustrup, B.: The C++ Programming Language. 3rd Edition. Addison-Wesley Professional, 2000.
2. Prata, S.: Mistrovství v C++, 2. vydání. Computer Press, 2004
Zařazení předmětu ve studijních programech:
Program Forma Obor Spec. Typ ukončení   Kredity     Povinnost     St.     Roč.     Semestr  
N-AIŘ-P prezenční studium --- bez specializace -- kl 3 Povinný 2 1 L