Course detail

Functional Programming and the LISP Language

FSI-VFLAcad. year: 2017/2018

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. Examples of solving artificial intelligence problems in Lisp.

Learning outcomes of the course unit

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

Prerequisites

Basic knowledge of artificial intelligence and expert systems.

Co-requisites

Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

Koschmann, T. The Common Lisp Companion. New York, John Wiley & Sons 1990. (EN)
Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2002. (EN)
Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2002. (EN)
Kolář, J. Jazyky pro umělou inteligenci. Skripta. Praha, ČVUT 1994. (CS)
Molnár, L., Návrat, P. Programovanie v jazyku Lisp. Bratislava, Alfa 1988. (SK)
Luger, G.F.; Stubblefield, W.A. AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java. Addison-Wesley 2008. (EN)
Seibel, P. Practical Common Lisp. Apress, 2005. http://www.gigamonkeys.com/book/ (EN)

Planned learning activities and teaching methods

The course is taught through exercises focused to practical using the Lisp language.

Assesment methods and criteria linked to learning outcomes

Course-unit credit requirements: active attendance at the seminars, elaboration of project in Lisp.

Language of instruction

Czech

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 required. An absence can be compensated for via solving given problems.

Classification of course in study plans

  • Programme M2I-P Master's

    branch M-AIŘ , 2. year of study, summer semester, 0 credits, elective (voluntary)
    branch M-AIŘ , 2. year of study, summer semester, 0 credits, elective (voluntary)

Type of course unit

 

Computer-assisted exercise

26 hours, compulsory

Teacher / Lecturer

Syllabus

1. Introduction to functional programming, Hope and Haskell languages.
2. Miranda and F# languages.
3. Introduction to the use of Lisp interpreters, basic functions, definition of functions.
4. Functions for list and number processing, predicate and evaluating functions.
5. Definition of recursive functions.
6. Tail recursion and iteration.
7. Lambda expressions, mapping functions, definition of macros.
8. Modification of structures, representation of atoms.
9. Input and output functions.
10. Strategies for state space search.
11. Knowledge representation, machine learning.
12. Implementation of an expert system in Lisp.
13. Evaluating of semester projects.