Languages for Artificial Intelligence

Semestr: Winter

Range: 2+2s

Completion:

Credits: 4

Programme type: Undefined

Study form:

Course language:

Summary:

The course is addressed to those interested in functional and logic programming, whose primary application domain is artificial intelligence (AI). It offers an acquaintance with programming languages Lisp and Prolog. As homework assignments, problems from AI, programming languages, and compiler construction are worked out. Usage of object oriented facilities of Common Lisp is welcome.

Keywords:

functional programming, Lisp, logic programming, Prolog, artificial intelligence

Course syllabus:

1. Basic features of languages for AI, Lisp: atoms, symbolic expressions, definition of variables and functions.
2. Conditions and predicates, basic operations with symbolic expressions.
3. Rational agents, simple implementation.
4. Standard functions, eval-apply-funcall, types of recursion.
5. Argument definition, generalized variables, modification functions.
6. Implementation of search, heuristic search.
7. Control structures, lambda, mapping functionals, structures.
8. Macros, structure definition, metods and generic functions.
9. I/O operations, strings and chars, arrays, hash tables.
10. Programming style, games, alpha-beta procedure, CSP.
11. Prolog, program structure and execution, data types.
12. Declarative and procedural semantics, lists, search implementation.
13. Backtracking and cut, standard predicates, implementation of CSP.
14. Reserved

Seminar syllabus:

1. Functional notation, inductive/recursive definition of numerical functions, symbolic data types.
2. LispWorks System, debugging and extending functions from lab 1.
3. Design and testing of functions that process symbolic expressions, debugging in LispWorks.
4. Designing efficient recursive functions, profiling.
5. AIMA code (doc, utilities) - modification and testing of selected functions.
6. AIMA code (agents, search) - modification and testing of selected functions.
7. Team formation and homework projects assignment.
8. Consultation to projects, usage of control structures.
9. Consultation to projects, usage of macros.
10. Consultation to projects, usage of I/O functions and hash tables.
11. Consultation to projects.
12. Prolog programming environment, debugging simple programs.
13. Presentation and evaluation of projects.
14. Assessment.

Literature:

[1] Kolář, J.: Jazyky pro umělou inteligenci. Skripta ČVUT, Praha 1994
[2] Slade, S.: Object-Oriented Common Lisp. Prentice Hall, New Jersey 1998
[3] Bratko, I.: PROLOG Programming for Artificial Intelligence. Reading, Addison-Wesley, Mass. 1990
[4] S. Russell - P. Norvig: Artificial Intelligence: A Modern Approach. Prentice Hall, 2003
[5] Paul Graham's WWW Pages (http://www.paulgraham.com/index.html)
[6] Seibel, P.: Practical Common Lisp. Apress, 2005, ISBN 1-59059-239-5 (see http://www.gigamonkeys.com/book/)

Examiners:

Lecturers:

Instructors: