Název předmětu | Paradigmata programování 3 |
---|---|
Kód předmětu | KMI/PP3 |
Organizační forma výuky | Přednáška + Cvičení |
Úroveň předmětu | Bakalářský |
Rok studia | 3 |
Semestr | Zimní |
Počet ECTS kreditů | 6 |
Vyučovací jazyk | Čeština |
Statut předmětu | Povinný, Povinně-volitelný |
Způsob výuky | Kontaktní |
Studijní praxe | Nejedná se o pracovní stáž |
Doporučené volitelné součásti programu | Není |
Vyučující |
---|
|
Obsah předmětu |
Jedná se o třetí část čtyřdílného kurzu věnovaného základním programovacím paradigmatům. Obecným cílem kurzu je seznámit studenty s principy programování bez úzké vazby na konkrétní programovací jazyk. Jako modelovací jazyk je většinu kurzu použit jazyk Common Lisp. Náplní třetí části je všeobecný úvod do objektově orientovaného programování. 1. Třídy a instance, zprávy a metody. Sloty a jejich inicializace. Jednoduchá objektová grafická knihovna. 2. Zapouzdření. Motivace: tři problémy řešené principem zapouzdření. Formulace principu, výjimky. Použití v objektové grafické knihovně. 3. Polymorfismus. Princip polymorfismu. Použití v objektové grafické knihovně. 4. Jednoduchá dědičnost. Pojem dědičnosti. Dědičnost jako nástroj redukující opakování v kódu. Hierarchie tříd. Přepisování metod, volání zděděné metody. Použití v objektové grafické knihovně. 5. Struktura stromu dědičnosti. Pravidlo "is-a", princip Liskovové, kontraktové programování. 6. Události. Programování řízené událostmi. Pojem delegáta. 7. Prototypové jazyky. Dědičnost a zprávy v prototypových jazycích. Srovnání prototypových jazyků a jazyků založených na třídách, implementace jednoduchého prototypového jazyka a práce s ním. Ukázka čistě objektového prototypového jazyka. 8. Vícenásobná dědičnost. Pojem vícenásobné dědičnosti, vícenásobná dědičnost v různých programovacích jazycích. Programování pomocí rozhraní (interface) a mixinů. Výhody a úskalí vícenásobné dědičnosti. 9. Pokročilé programování v CLOSu. Generické funkce a multimetody, kombinace metod a jejich využití. Spojení funkcionálního a objektového programování, dynamické objektové programování. Metaobjektové protokoly.
|
Studijní aktivity a metody výuky |
Přednášení, Demonstrace |
Výstupy z učení |
Studenti se seznámí se základními pojmy z objektově orientovaného programování.
1. Znalost Definuj výhody a styly vývoje objektově orientovaných programů. |
Předpoklady |
nespecifikováno
KMI/PP1 |
Hodnoticí metody a kritéria |
Ústní zkouška, Písemná zkouška
Aktivní účast v hodině. Plnění zadaných úkolů. Složení ústní (příp. písemné) zkoušky. |
Doporučená literatura |
|
Studijní plány, ve kterých se předmět nachází |
Fakulta | Studijní plán (Verze) | Kategorie studijního oboru/specializace | Doporučený semestr | |
---|---|---|---|---|
Fakulta: Přírodovědecká fakulta | Studijní plán (Verze): Informatika - specializace Obecná informatika (2021) | Kategorie: Informatické obory | 2 | Doporučený ročník:2, Doporučený semestr: Zimní |
Fakulta: Přírodovědecká fakulta | Studijní plán (Verze): Informatika (2020) | Kategorie: Informatické obory | 2 | Doporučený ročník:2, Doporučený semestr: Zimní |
Fakulta: Přírodovědecká fakulta | Studijní plán (Verze): Informatika - specializace Programování a vývoj software (2021) | Kategorie: Informatické obory | 2 | Doporučený ročník:2, Doporučený semestr: Zimní |
Fakulta: Přírodovědecká fakulta | Studijní plán (Verze): Bioinformatika (2021) | Kategorie: Informatické obory | 2 | Doporučený ročník:2, Doporučený semestr: Zimní |
Fakulta: Přírodovědecká fakulta | Studijní plán (Verze): Informatika pro vzdělávání maior (2024) | Kategorie: Informatické obory | 3 | Doporučený ročník:3, Doporučený semestr: Zimní |