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
Supervisor
Department
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.