Course syllabus

Functional Programming

EDAN40, 7,5 credits, A (Second Cycle)

Valid for: 2012/13
Decided by: Education Board 1
Date of Decision: 2012-03-19

General Information

Elective for: D4, D4-pv, F4, F4-pv, Pi4, Pi4-pv
Language of instruction: The course might be given in English


The course gives an insight into how the functional programming often offers a possibility to write shorter and easier-to-understand programs than using the traditional imperative or object-oriented approaches.

Learning outcomes

Knowledge and understanding
For a passing grade the student must

Competences and skills
For a passing grade the student must

Judgement and approach
For a passing grade the student must


The philosophy of functional languages. The programming languageĀ Haskell. Language constructs and idioms. Higher-order functions. Lazy evaluation and infinite data structures. Monads and monadic computations. Polymorphic type systems and type classes. Type analysis and type inference.

Examination details

Grading scale: TH
Assessment: Written examination. To qualify for the exam students must have completed the assignments. The final grade of the course is based on the result of the written examination.


Admission requirements:

Required prior knowledge: FMAA01, FMA420 and FMA430.
The number of participants is limited to: No
The course overlaps following course/s: EDA120

Reading list

Contact and other information

Course coordinator: Docent Jacek Malec,
Course homepage: