Logo ČVUT
Loading...
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2011/2012

Funkcionální a logické programování

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
A4B33FLP Z,ZK 6 2+2c česky
Předmět nesmí být zapsán současně s:
Functional and Logic Programming (AE4B33FLP)
Předmět je náhradou za:
Programování pro umělou inteligenci (Y33PUI)
Přednášející:
Olga Štěpánková, Jiří Vyskočil
Cvičící:
Radomír Černoch, Ivan Havel, Ivor Kollár, Viliam Lisý, Olga Štěpánková, Jiří Vyskočil
Předmět zajišťuje:
katedra kybernetiky
Anotace:

Předmět podává úvod do technik funkcionálního programování v jazycích LISP (přesněji v jeho implementaci SCHEME) a HASKELL a logického programování v jazyce PROLOG. Oba jazyky jsou deklarativní v tom smyslu, že programátor symbolicky popíše problém, který má být řešen, místo výčtu konkrétní posloupnosti akcí, které má počítač provést. V PROLOGu je problém popsán vlastnostmi objektů a vztahy mezi nimi vyjádřenými v logice. V LISPu má popis problému formu definice funkcí. Oba jazyky nalezly významné aplikace v umělé inteligenci, např. v agentových systémech či v symbolickém strojovém učení.

Požadavky:

Diskrétní matematika, Logika a grafy, Programování 1+2

Osnova přednášek:

1. Úvod do deklarativních programovacích jazyků. Srovnání s klasickými imperativními jazyky. Úvod do programování pro umělou inteligenci.

2. LISP a Scheme: základní jazykové idiomy, atomy, seznamy, rekurze

3. Scheme: lambda abstrakce, vestavěné funkce, pokročilé datové struktury

4. Scheme: vztahy mezi iteracemi, optimizace rekurze zaručená jazykovým standardem, vestavěné funkce vyšších řádů.

5. Scheme: prohledávání stavového prostoru, aplikace v umělé inteligenci

6. Haskell: typy, vzory, vestavěné funkce, lambda abstrakce

7. Haskell: prokročilé vlastnosti jazyka ve srovnání se Scheme

8. Prolog: fakta, pravidla, dotazy, rekurze, odpovídání dotazů

9. Funkce, unifikace, operace se seznamy

10. Prolog a logika: klauzule, Herbrandova báze, interpretace, model, předpoklad uzavřeného světa, rozhodnutelnost

11. Řez a negace, mimologické operátory, aritmetika

12. Kombinatorické prohledávání v Prologu

13. Programování s omezujícími podmínkami

14. Programovací praktiky, ladění, vestavěné predikáty

Osnova cvičení:

1. Scheme. Seznámení se Scheme a jeho prostředím. Ladění. Základní příklady.

2. Rekurze, akumulátor.

3. Lambda abstrakce

4. Rekurze, funkce vyššího řádu

5. Haskell

6. Prolog jako databáze, fakta, pravidla, dotazy

7. Rekurze, ladění programů

8. Unifikace, operace se seznamy

9. Operace se seznamy, operace řezu a negace

10. Prohledávací algoritmy

11. Prohledávací algoritmy

12. Programování s omezujícími podmínkami

13. Programování s omezujícími podmínkami

14. Zápočy

Cíle studia:

Seznámit se s principy funkcionálním a logickým programováním v jazycích LISP resp. PROLOG.

Studijní materiály:

P. Flach: Simply Logical, John Wiley 1994

V. Mařík et al: Umělá

inteligence I, II, Academia 1993

P. Jirků, P. Štěpánek, O. Štěpánková: Programování v Jazyku Prolog, SNTL 1991

I. Bratko: Prolog programing for AI, Addison Wesley 2001 (3rd edition)

Poznámka:

Rozsah výuky v kombinované formě studia: 14p+6c

Rozvrh na zimní semestr 2011/2012:
Rozvrh není připraven
Rozvrh na letní semestr 2011/2012:
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po
Út
místnost KN:E-126
Štěpánková O.
Vyskočil J.

11:00–12:30
(přednášková par. 1)
Karlovo nám.
Trnkova posluchárna K5
místnost KN:E-230
Lisý V.
Havel I.

16:15–17:45
(přednášková par. 1
paralelka 101)

Karlovo nám.
Černobyl K230
místnost KN:E-230
Lisý V.
Havel I.

18:00–19:30
(přednášková par. 1
paralelka 102)

Karlovo nám.
Černobyl K230
St
Čt

Předmět je součástí následujících studijních plánů:
Platnost dat k 9. 7. 2012
Aktualizace výše uvedených informací naleznete na adrese http://bilakniha.cvut.cz/cs/predmet12582804.html