Languages for Artificial Intelligence

Semestr: Winter

Range: 2+2c

Completion:

Credits: 4

Programme type: Undefined

Study form: Fulltime

Course language:

Summary:

The course is intended for those interested in functional and logic programming, which find most applications in solving problems of artificial intelligence (AI). The course offers a profound acquaintance with programming language Lisp and (to some level) with Prolog. Apart from classical operations on list structures in Lisp, some modern features of Common Lisp are included, as e.g. opeartions with vectors, hash tables as well as object-oriented programming in Lisp.

Keywords:

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

Course syllabus:

1. Languages used in AI, functional programming, recursive programming style
2. Basic data types and functions of Lisp
3. Lists and trees, type predicates, generalized variables
4. Recursion and iteration in Lisp, local and global references
5. Characters and strings, input, output
6. Lambda-expression, mapping functionals, control structures of Lisp
7. Macros, structures
8. Classes, objects
9. Vectors, arrays
10. Logic programming, syntax of data and program in Prolog
11. Predicates, clauses, facts, goal satisfaction, cut
12. Arithmetic predicates, list operations, term processing
13. Meta-logic predicates, input, output
14. Programming style, modifying the Prolog knowledge base

Seminar syllabus:

1. Recursive programming style, solving simple problems recursively in Pascal
2. Getting acquainted with the Lisp system in computer laboratory
3. Definining and debugging simple list functions in Lisp
4. Homework assignment
5. Recursive and iterative problem solving, efficiency of recursion
6. Mapping functionals and filters
7. Property lists of atoms, modifying pseudo-functions
8. Macros, structures
9. Object-oriented programming in Lisp
10. Consultation of homeworks
11. Getting acquainted with the Prolog system in computer laboratory
12. Recursion in Prolog, arithmetic and list predicates
13. Input, output, control of program execution
14. Homework evaluation, assessment

Literature:

1. Slade, S.: Object-Oriented Common Lisp. Prentice Hall, New Jersey 1998.
2. Bratko, I.: PROLOG Programming for Artificial Intelligence. Addison-Wesley, Reading, Mass. 1990.

Examiners:

Lecturers:

Instructors: