Předmět: Paradigmata programování 3

« Zpět
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í
  • Balun Jiří, Mgr.
  • Krupka Michal, doc. RNDr. Ph.D.
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
  • Fowler, M. (2003). Patterns of enterprise application architecture. Addison-Wesley.
  • GRAHAM P. (1996). ANSI Common Lisp. Prentice Hall.
  • KICZALES GREGOR, DES RIVIERES JIM AND BOBROW DANIEL G. (1991). The Art of the Metaobject Protocol. Cambridge, MA ; London : MIT Press.
  • MEYER BERTRAND. (1997). Object-Oriented Software Construction. Prentice Hall.
  • Seibel P. (2005). Practical Common Lisp. Apress.
  • Weitz, E. (2015). Common Lisp Recipes: A Problem-Solution Approach. Apress.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník 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í