Detail předmětu

Funkcionální programování a jazyk Lisp

FSI-VFLAk. rok: 2017/2018

Předmět je věnován následujícím tématům: Principy funkcionálního programování. Jazyk Lisp: základní vlastnosti, datové typy, programové struktury, vyhodnocování symbolických výrazů, funkce a makra. Příklady řešení problémů umělé inteligence v Lispu.

Jazyk výuky

čeština

Počet kreditů

2

Výsledky učení předmětu

Studenti získají znalost stylu funkcionálního programování a budou schopni aplikovat Lisp na řešení problémů umělé inteligence.

Prerekvizity

Základy umělé inteligence a expertních systémů.

Plánované vzdělávací činnosti a výukové metody

Předmět je vyučován formou cvičení zaměřených na praktické používání jazyka Lisp.

Způsob a kritéria hodnocení

Požadavky pro zápočet: aktivní účast ve cvičeních, zpracování projektu v Lispu.

Učební cíle

Cílem předmětu je seznámit studenty s neimperativními přístupy k řešení problémů a prohloubit jejich znalosti principů metod umělé inteligence.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Účast ve cvičeních je povinná. Zameškaná výuka může být nahrazena vypracováním zadaných úloh.

Základní literatura

Koschmann, T. The Common Lisp Companion. New York, John Wiley & Sons 1990. (EN)
Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2002. (EN)
Luger, G.F.; Stubblefield, W.A. AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java. Addison-Wesley 2008. (EN)

Doporučená literatura

Kolář, J. Jazyky pro umělou inteligenci. Skripta. Praha, ČVUT 1994. (CS)
Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2002. (EN)
Molnár, L., Návrat, P. Programovanie v jazyku Lisp. Bratislava, Alfa 1988. (SK)
Seibel, P. Practical Common Lisp. Apress, 2005. http://www.gigamonkeys.com/book/ (EN)

Zařazení předmětu ve studijních plánech

  • Program M2I-P magisterský navazující

    obor M-AIŘ , 2 ročník, letní semestr, volitelný (nepovinný)
    obor M-AIŘ , 2 ročník, letní semestr, volitelný (nepovinný)

Typ (způsob) výuky

 

Cvičení s počítačovou podporou

26 hod., povinná

Vyučující / Lektor

Osnova

1. Úvod do funkcionálního programování, jazyky Hope a Haskell.
2. Jazyky Miranda a F#.
3. Seznámení s implementacemi jazyka Lisp, základní funkce, definice funkcí.
4. Funkce pro zpracování seznamů a čísel, predikátové a vyhodnocovací funkce.
5. Definice rekurzívních funkcí.
6. Koncová rekurze a iterace.
7. Lambda výrazy, mapovací funkcionály, definice maker.
8. Modifikace struktur, reprezentace atomů.
9. Vstupní a výstupní funkce.
10. Strategie prohledávání stavového prostoru.
11. Reprezentace znalostí, strojové učení.
12. Implementace expertního systému.
13. Vyhodnocení semestrálních projektů.