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

« Zpět
Název předmětu Paradigmata programování 4
Kód předmětu KMI/PP4
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Letní
Počet ECTS kreditů 5
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í
  • Osička Petr, Mgr. Ph.D.
  • Laštovička Jan, Mgr. Ph.D.
  • Mikula Tomáš, Mgr.
Obsah předmětu
Jedná se o závěrečnou část čtyřdílného kurzu věnovaného základním programovacím paradigmatům, stylům a techniká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. Závěrečná část kurzu se soustředí na základy paralelního a logického programování. Paralelní programování - Paralelní program: vlastnosti, výhody, problémy. Atomické akce a jejich podpora HW. Synchronizace, reentrantnost, aktivní a pasivní čekání. - Demonstrace základních problémů, problém producent-konzument. - Kritická sekce a její použití: Zámek (mutex), vzájemné vyloučení, podmíněné čekání. - Bariéra a její použití v datově paralelních algoritmech. - Semafor a jeho použití pro řešení synchronizačních úloh (producent-konzument, problém čtenářů a písařů, spící holič atd.) - Monitor a podmíněné proměnná. Jejich použití pro řešení synchronizačních problémů. Logické programování - Úvod do PROLOGu. O logickém programování. Fakta, pravidla, dotazy. Jednoduché příklady. - Rekurze. Seznamy. Vybrané operace na seznamech. Základy aritmetiky. Datové struktury. Složitější příklady. - Základní fáze výpočtu PROLOGu. Řezy. O negaci. - Vstup a výstup. Práce s databázemi. Expertní systémy.

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 paralelního programování a logického programování.
3. Aplikace: Rozpoznej a řeš překážky při vývoji paralelních programů.
Předpoklady
nespecifikováno
KMI/PP2

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
  • ANDREWS G. R. (2000). Foundations of Multithreaded, Parallel, and Distributed Programming. Addison-Wesley.
  • Ben-Ari M. (2006). Principles of concurrent and distributed programming. Addison-Wesley.
  • Jirků P. a kol. (1991). Programování v jazyku Prolog..
  • M. Kifer, Y. A. Liu. (2018). Declarative Logic Programming: Theory, Systems, and Applications.
  • McCool M., Reinders J., Robinson A. (2012). Structured parallel programming: patterns for efficient computation. Morgan Kaufman.
  • Roosta, Seyed H. (2000). Parallel processing and parallel algorithms. Springer.
  • Schmidt Ph.D., Gonzales-Domingues, J., Hundt, Cc., Schlarb, M. (2017). Parallel Programming: Concepts and Practice. Morgan Kaufman.
  • Schneider F. B. (1997). On concurrent programming. Springer.


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: Letní
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: Letní
Fakulta: Přírodovědecká fakulta Studijní plán (Verze): Bioinformatika (2021) Kategorie: Informatické obory 2 Doporučený ročník:2, Doporučený semestr: Letní
Fakulta: Přírodovědecká fakulta Studijní plán (Verze): Informatika (2020) Kategorie: Informatické obory 2 Doporučený ročník:2, Doporučený semestr: Letní