* Logické programování v jazyce Prolog.
Tvar programu a jeho interpretace, unifikace, backtracking.
Deklarativní a procedurální sémantika programu.
Práce se seznamy a s rekurzivními datovými strukturami.
Standardní predikáty a jejich použití. Aritmetika. Definice operátorů.
Řez a negace. Efektivita programů v Prologu, neúplně definované datové struktury.
Aplikace logického programování v umělé inteligenci.
* Funkcionální programování, základy lambda kalkulu.
Tvar programu v jazyce Haskell. Dvojrozměrná syntax, líné vyhodnocení.
Definice funkce, rekurze, porovnávání se vzorem. Stručné seznamy.
Definice typů a datových struktur, polymorfismus, typové třídy a instance.
Funkce vyšších řádů. Nekonečné datové struktury. Monády, vstup a výstup.
Předmět je věnován principům logického a funkcionálního programování, které jsou vyloženy prostřednictvím programovacích jazyků Prolog a Haskell. Funkcionální aspekty multiparadigmatických jazyků jsou ilustrovány na příkladu jazyka Python.