460-2043/01 – Programování II (PR II)
Garantující katedra | Katedra informatiky | Kredity | 3 |
Garant předmětu | doc. Mgr. Miloš Kudělka, Ph.D. | Garant verze předmětu | doc. Mgr. Miloš Kudělka, Ph.D. |
Úroveň studia | pregraduální nebo graduální | Povinnost | povinný |
Ročník | 1 | Semestr | letní |
| | Jazyk výuky | čeština |
Rok zavedení | 2013/2014 | Rok zrušení | 2022/2023 |
Určeno pro fakulty | USP, FEI | Určeno pro typy studia | bakalářské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Objektově orientované přístupy jsou nezbytnou součástí odborné přípravy každého absolventa informatiky. Jde nejen o klíčový koncept přemýšlení, ale také o technologickou podporu softwarových řešení.
Předmět „Programování II“ je úzce propojen s předmětem „Algoritmy II“, do kterého budou přeneseny a prakticky procvičeny dovednosti spojené s využitím jazyka C++ při návrhu objektově orientovaných programů.
Předpokládanými vstupy pro předmět „Programování II“ je úspěšné absolvování předmětů „Základy programování“ a „Algoritmy I“. Tyto předměty, díky obdobnému propojení, studentům společně poskytnou nezbytné dovednosti a znalosti spojené s implementací datových struktur a algoritmů v prostředí strukturovaného a procedurálního programování.
Vyučovací metody
Přednášky
Cvičení (v učebně)
Anotace
Předmět je zaměřen jednak na představení konceptu objektově orientovaného programování, jednak na zvládnutí základních konstrukcí jazyka C++ nezbytných pro návrh objektově orientovaných programů.
Po absolvování předmětu bude student rozumět rozdílu mezi strukturovaným a procedurálním přístupem k programování a objektově orientovaným programováním. V omezené míře bude student zvládat praktický objektový návrh programu a implementaci s využitím objektových technik.
Díky úzkému propojení s předmětem „Algoritmy II“ budou studenti průběžně aplikovat získané znalosti a dovednosti při implementaci abstraktních datových typů s využitím technik objektově orientovaného programování.
Povinná literatura:
Doporučená literatura:
Forma způsobu ověření studijních výsledků a další požadavky na studenta
E-learning
Další požadavky na studenta
Další požadavky na studenta nejsou kladeny.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky
1. Vývoj programovacích paradigmat a jazyků, příčiny a důsledky.
2. Aspekty kvality software, znovupoužití. Nevýhody použití klasických přístupů.
3. Třída x objekt. Objekt jako počítačová reprezentace entity reálného světa. Data a funkce objektu, stav objektu.
4. Přehled principů OOP. Zapouzdření, skládání, zasílání zpráv, delegování, dědičnost, polymorfismus.
5. Vznik a zánik objektu I. Konstruktory, destruktory, jak fungují a proč.
6. Veřejná a soukromá část objektu, skrývání implementace.
7. Návrh objektově orientovaného programu I.
8. Jednoduchá dědičnost a důvody pro její použití. Polymorfismus.
9. Virtuální metody. Abstraktní třídy. Typy skrývání implementace. Vícenásobná x jednoduchá dědičnost, problémy a důsledky.
10. Vznik a zánik objektů II. Speciální typy konstruktorů, kopírovací konstruktor.
11. Návrh objektově orientovaného programu II.
12. Šablony (template) a důvody pro jejich použití.
13. Standardní objektové knihovny jazyka C++.
14. Návrh objektově orientovaného programu III.
Počítačová cvičení:
1. Porovnání zdrojových kódu úloh s obdobným zaměřením a rozsahem, ale s použitím různého přístupu (procedurální x objektově orientovaný). Hodnocení z pohledu struktury, čitelnosti, spravovatelnosti.
2. Ukázka implementace jednoduchých spolupracujících tříd, analýza chování objektů.Návrh třídy s ohledem na skrývání detailů implementace.
3. Implementace jednoduchého objektově orientovaného programu I.
4. Ukázka implementace jednoduché objektové hierarchie (dědičnost), analýza chování objektů.
5. Implementace jednoduchého objektově orientovaného programu II.
6. Ukázka implementace objektového programu s využitím šablon a vybraných tříd standardních objektových knihoven jazyka C++.
7. Implementace jednoduchého objektově orientovaného programu III.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky