Course detail

Functional Programming and the LISP Language

FSI-VFL Acad. year: 2018/2019 Summer semester

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.

Language of instruction

Czech

Number of ECTS credits

2

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.

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.

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.

The study programmes with the given course

Programme M2I-P: Mechanical Engineering, Master's
branch M-AIŘ: Applied Computer Science and Control, 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.