Detail předmětu
Funkcionální programování a jazyk Lisp
FSI-VFLAk. rok: 2016/2017
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
Garant předmětu
Zajišťuje ústav
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
Kontrolována je účast ve cvičeních. 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)
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)
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
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ů.
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ů.