This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

FUP – Functional Programming


This course introduces students into the techniques of functional programming, the advantages and disadvantages of this programming paradigm, and its use in practice. This approach is declarative in the sense that the programmer symbolically describes the problem to be solved, rather than specifying the exact sequence of operations required to solve it. It allows focusing on the essence of the solved problem and implementing even more complex algorithms compactly. Functional programming has notable advantages for parallelization and automated verification of algorithms, and the most useful functional programming concepts are increasingly often introduced to standard programming languages. Because of the focus of functional programming on symbols, rather than numbers, functional programming has been heavily used in in artificial intelligence fields, such as agent systems or symbolic machine learning.


Weekly lectures and labs.

Homework assignments every 2 weeks worth 50% of the grade.

  • 3 assignments in Scheme
  • 2 assignments in Haskell

At least 1 point from each assignment is necessary to pass.

Final programming exam for 30%.

Final test for 20%.


In order to come to the exam, the student should have fulfilled the conditions for passing the labs. It means having at least 1 point from each home assignment and at least 25 points in total.

Assignments from the first three exams are published below. I suggest not looking at the text of the assignments before you have time to attempts to solve it. You should be able to solve each of them in roughly 30 minutes to get perfect score in the exam.

Exam1 Exam2 Exam3

The exam will be at the lab computers without internet access. The students will have access to slides and notes from the labs. In order to pass the implementation exam, the students have to obtain more than 50% of the points for this exam.

Exam Dates

All exams will be on the Karlovo namesti campus.

28.05.2019 13:00-17:00

05.06.2019 13:00-17:00

24.06.2019 13:00-17:00

04.09.2019 9:00-13:00 (test might be after the implementation, if anyone is interested in writing it, let me know)

All the exams will be in KN-E308 and the surrounding labs.


Consulting hours E-mail Místnost Poznámka
Viliam Lisý appointment by email lisyvili@fel.cvut.cz KN:E-407 Lecturer
Lasse Blaauwbroek appointment by email lasse@blaauwbroek.eu CIIRC:A-615 Instructor
Josef Vonasek appointment by email vonasjo1@fel.cvut.cz Instructor
George Broughton appointment by email brouggeo@fel.cvut.cz KN:E-332 Instructor
Michal Sustr appointment by email michal.sustr@aic.fel.cvut.cz KN:E-316 Instructor
courses/fup/start.txt · Last modified: 2019/08/12 11:21 by lisyvili