Course detail

Languages for Artificial Intelligence

FSI-VJUAcad. year: 2011/2012

The course deals with the following topics: Principles of functional and logic programming. Lisp language: basic features, data types, program structures, evaluation of symbolic expressions, functions and macros. Prolog language: basic notions, data types, clauses, unification of terms, control of program execution, built-in predicates. Examples of solving artificial intelligence problems in Lisp and Prolog.

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Learning outcomes of the course unit

Students will acquire knowledge of functional and logic programming styles, and will be able to apply Lisp and Prolog to solving artificial intelligence problems.

Prerequisites

Mathematical logic, basic knowledge of artificial intelligence and expert systems.

Co-requisites

Not applicable.

Planned learning activities and teaching methods

Teaching methods depend on the type of course unit as specified in the article 7 of BUT Rules for Studies and Examinations.

Assesment methods and criteria linked to learning outcomes

Course-unit credit requirements: active attendance at the seminars, elaboration of two projects (in Lisp and Prolog).
Examination: written test (problems and questions), oral exam.

Course curriculum

Not applicable.

Work placements

Not applicable.

Aims

The goal of the course is to make students familiar with non-imperative approaches to solving problems and to deepen their knowledge of principles of artificial intelligence methods.

Specification of controlled education, way of implementation and compensation for absences

The attendance at the seminars is controlled. An absence can be compensated for via solving given problems.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Bratko, I. Prolog Programming for Artificial Intelligence. Pearson Education 2011.
Koschmann, T. The Common Lisp Companion. New York, John Wiley & Sons 1990.
Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2008.

Recommended reading

Kolář, J. Jazyky pro umělou inteligenci. Skripta. Praha, ČVUT 1994.
Merrit, D. Building Expert Systems in Prolog. Berlin, Springer-Verlag 1989. http://www.amzi.com/ExpertSystemsInProlog/index.htm
Molnár, L., Návrat, P. Programovanie v jazyku Lisp. Bratislava, Alfa 1988.
Polák, J. Prolog. Praha, Grada 1992.
Seibel, P. Practical Common Lisp. Apress, 2005. http://www.gigamonkeys.com/book/

Classification of course in study plans

  • Programme N2301-2 Master's

    branch M-AIŘ , 1 year of study, summer semester, elective (voluntary)
    branch M-AIŘ , 2 year of study, summer semester, compulsory

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

1. Functional programming. Lisp language - program structure, data types.
2. Basic functions, definition of functions, evaluation mechanism.
3. Functions for list and number processing, predicates, evaluating functions.
4. Iteration, mapping functions, definition and evaluation of macros.
5. Modification of structures, representation of atoms, input and output, memory management.
6. Examples of applying Lisp to solving artificial intelligence problems.
7. Logic programming. Prolog language - program structure, data objects.
8. Declarative and procedural meaning of program, list and number processing.
9. Operator notation, type predicates, meta-logical predicates, constructing and decomposing terms.
10. Cut, negation, database manipulation.
11. Input and output, backtracking and the predicate repeat.
12. Building expert systems in Prolog.
13. Examples of applying Prolog to solving other artificial intelligence problems.

Computer-assisted exercise

26 hod., compulsory

Teacher / Lecturer

Syllabus

1. Introduction to the use of Lisp interpreters.
2. Definition of functions for list processing.
3. Tail recursion, iteration, definition of macros.
4. Strategies for state space search.
5. Knowledge representation, machine learning.
6. Implementation of an expert system in Lisp.
7. Introduction to the use of Prolog interpreters.
8. List and number processing.
9. Search strategies.
10. Planning problems.
11. Knowledge representation, machine learning.
12. Implementation of an expert system in Prolog.
13. Evaluating semester projects.