Subject description - AD4B33FLP

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
AD4B33FLP Functional and Logic Programming Extent of teaching:14KP+6KC
Guarantors:  Roles:PO,V Language of
teaching:
CS
Teachers:  Completion:Z,ZK
Responsible Department:13136 Credits:6 Semester:L

Anotation:

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.

Study targets:

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

Course outlines:

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.

Exercises outline:

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,
11. Search algorithms
12. Constraint logic programming
13. Constraint logic programming
14. Credits

Literature:

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

Requirements:

Discrete Mathematics, Logic and Graphs, Programming 1+2.

Keywords:

LISP, PROLOG, functional programming, logic programming

Subject is included into these academic programs:

Program Branch Role Recommended semester
BKOI2 Computer and Information Science PO 4
BKEEM1 Applied Electrical Engineering V 4
BKEEM_BO Common courses V 4
BKEEM2 Electrical Engineering and Management V 4
BKKYR1 Robotics V 4
BKKYR_BO Common courses V 4
BKKYR3 Systems and Control V 4
BKKYR2 Sensors and Instrumentation V 4
BKKME1 Communication Technology V 4
BKKME_BO Common courses V 4
BKKME4 Network and Information Technology V 4
BKKME3 Applied Electronics V 4
BKKME2 Multimedia Technology V 4
BIS(ECTS)-D Intelligent Systems V
BKSTMWM Web and Multimedia V
BKSTMSI Software Engineering V
BKSTMMI Manager Informatics V
BKSTMIS Intelligent Systems V
BKSTM_BO Common courses V
BSI(ECTS)-D Software Engineering V
BWM(ECTS)-D Web and Multimedia V
BMI(ECTS)-D Manager Informatics V


Page updated 13.12.2019 17:52:09, semester: Z,L/2020-1, L/2018-9, Z,L/2019-20, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)