Functional Programming and the LISP Language (FSI-VFL)

Academic year 2018/2019
Supervisor: RNDr. Jiří Dvořák, CSc.  
Supervising institute: ÚAI all courses guaranted by this institute
Teaching language: Czech
Aims of the course unit:
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.
Learning outcomes and competences:
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.
Course contents:
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.
Teaching methods and criteria:
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.
Controlled participation in lessons:
The attendance at the seminars is required. An absence can be compensated for via solving given problems.
Type of course unit:
    Computer-assisted exercise  13 × 2 hrs. compulsory                  
Course curriculum:
    Computer-assisted exercise 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.
Literature - fundamental:
1. Koschmann, T. The Common Lisp Companion. New York, John Wiley & Sons 1990.
2. Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2002.
3. Luger, G.F.; Stubblefield, W.A. AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java. Addison-Wesley 2008.
Literature - recommended:
1. Luger, G.F. Artificial Intelligence. Structures and strategies for Complex Problem Solving. Harlow, Addison-Wesley 2002.
2. Kolář, J. Jazyky pro umělou inteligenci. Skripta. Praha, ČVUT 1994.
3. Molnár, L., Návrat, P. Programovanie v jazyku Lisp. Bratislava, Alfa 1988.
4. Seibel, P. Practical Common Lisp. Apress, 2005. http://www.gigamonkeys.com/book/
The study programmes with the given course:
Programme Study form Branch Spec. Final classification   Course-unit credits     Obligation     Level     Year     Semester  
M2I-P full-time study M-AIŘ Applied Computer Science and Control -- Cr 0 Elective (voluntary) 2 2 S
M2I-P full-time study M-AIŘ Applied Computer Science and Control P linked to branch B-AIR Cr 0 Elective (voluntary) 2 2 S