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

Functional and Logic Programming

Přihlášení do KOSu pro zápis předmětu Zobrazit rozvrh
Kód Zakončení Kredity Rozsah Jazyk výuky
AE4B33FLP Z,ZK 6 2+2c česky
Předmět nesmí být zapsán současně s:
Funkcionální a logické programování (A4B33FLP)
Předmět je náhradou za:
Funkcionální a logické programování (A4B33FLP)
Přednášející:
Jiří Vyskočil, Filip Železný (gar.)
Cvičící:
Jiří Vyskočil, Filip Železný (gar.), Radomír Černoch, Ivor Kollár
Předmět zajišťuje:
katedra kybernetiky
Anotace:

This course introduces students into the techniques of functional programming in the LISP (or more precisely SCHEME) and HASKELL language and logic programming in the PROLOG language. Both languages are declarative in that the programmer symbolically describes the problem to be solved, rather than enumerating the exact sequence of actions to be taken. In PROLOG, one describes the problem by specifying properties of objects and relations thereamong through logic formulas. In LISP, the problem description takes the form of function definitions. Both languages have found significant applications in artificial intelligence fields, such as agent systems or symbolic machine learning. Motivating tasks from these domains will be used throughout the course.

Požadavky:

Discrete Mathematics

Programming 1+2.

Osnova přednášek:

1. Introduction to declarative programming languages. Comparison to classical imperative languages. Introduction to programming for artificial intelligence.

2. Lisp and Scheme: basic language idioms, atoms, lists, recursion.

3. Scheme: lambda abstraction, built-in functions, advanced data structures.

4. Scheme: relations between iterations and tail recursion optimisations guaranteed by the language standard, built-in high-order functions.

5. Scheme: state space search, applications in artificial intelligence.

6. Haskell: types, patterns, built-in functions, lambda abstraction.

7. Haskell: advanced properties of the language in comparison to Scheme.

8. Prolog: facts, rules and queries. Recursion. Query answering.

9. Functions, unification, list operations.

10. Prolog and logic: clauses, Herbrand base, interpretation, model, closed-world assumption, decidability.

11. Cut and negation. Extralogical operators, arithmetics.

12. Combinatorial search in Prolog.

13. Constraint logic programming.

14. Programming practices, debugging, built-in predicates.

Osnova cvičení:

1. Scheme. First look at Scheme and its environment. Program debugging. Basic examples.

2. Recursion. Accumulator.

3. Lambda abstraction.

4. Tail recursion. High-order function.

5. Haskell.

6. Prolog as a database. Facts, rules, queries.

7. Recursion. Program debugging.

8. Unificaton. List operations.

9. List, cut and negation operations.

10. Search algorithms, individual task assignment

11. Search algorithms

12. Constraint logic programming

13. Constraint logic programming

14. Credits

Cíle studia:

Learn principles of functional and logic programming in the

respective languages LISP and PROLOG.

Studijní materiály:

P. Flach: Simply Logical, John Wiley 1994

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

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

inteligence I, II, Academia 1993 (In Czech)

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

B. O'Sullivan, D. Stewart, and J. Goerzen: Real World Haskell, O'Reilly, November 2008, English, ISBN-10: 0596514980, ISBN-13: 978-0596514983

B. Harvey and M. Wright: Simply Scheme, Introducing Computer Science, MIT Press, 1999

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
St
Čt
místnost KN:E-128
Železný F.
Vyskočil J.

12:45–14:15
(přednášková par. 1)
Karlovo nám.
Cvičebna K3
místnost KN:E-230
Černoch R.
Vyskočil J.

14:30–16:00
(přednášková par. 1
paralelka 101)

Karlovo nám.
Černobyl K230

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/predmet12819904.html