Fakulta elektrotechnická

České vysoké učení technické v Praze

ČVUT v Praze

Popis předmětu - AE4B33FLP

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
AE4B33FLP Functional and Logic Programming Rozsah výuky:2+2c
Garanti:Železný F. Role:PO,P,V Jazyk výuky:EN
Vyučující:Vyskočil J., Železný F. Zakončení:Z,ZK
Zodpovědná katedra:13136 Kreditů:6 Semestr:L

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.

Výsledek studentské ankety předmětu je zde: AE4B33FLP

Cíle studia:

Learn principles of functional and logic programming in the respective languages LISP and PROLOG.

Osnovy 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.

Osnovy 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

Literatura:

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

Požadavky:

Discrete Mathematics Programming 1+2.

Poznámka:

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

Webová stránka:

http://cw.felk.cvut.cz/doku.php/courses/ae4b33flp/start

Klíčová slova:

LISP, PROLOG, functional programming, logic programming

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
BEKME3 Aplikovaná elektronika V 4
BEKME5 Komunikace a elektronika V 4
BEKME2 Multimediální technika V 4
BEKME1 Komunikační technika V 4
BEKME_BO Před zařazením do oboru V 4
BEKME4 Síťové a informační technologie V 4
BEEEM_BO Před zařazením do oboru V 4
BEEEM2 Elektrotechnika a management V 4
BEEEM1 Aplikovaná elektrotechnika V 4
BEKYR_BO Před zařazením do oboru V 4
BEKYR1 Robotika V 4
BEKYR2 Senzory a přístrojová technika V 4
BEKYR3 Systémy a řízení V 4
BPOI1 Počítačové systémy P
BPOI2 Informatika a počítačové vědy P
BPOI3 Softwarové systémy P
BPOI_BO Před zařazením do oboru P
BEOI2 Informatika a počítačové vědy PO 4


Stránka vytvořena 23.1.2018 12:47:43, semestry: Z,L/2017-8, Z/2018-9, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: I. Halaška (K336), J. Novák (K336)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.