Kuva: Mika Tompuri

Welcome to the world of functional programming!

This course introduces you to the principles of functional programming using the Haskell programming language. You will learn how to use recursion in problem solving and how to create compact programs that work correctly.

The course is a MOOC course that consists of online lectures and programming exercises with automatic grading.

The follow-up course: Functional Programming II



Anmälning och avgift

Free of charge.

Registration instructions

No preregistration. You will be instructed to register for the course through the Open University after you have completed assignments in the MOOC learning environment.

1. Complete the assignments in the MOOC online learning environment. No course registration required.

2. Once you have completed course assignments, you will be sent Open University registration instrucutions through the learning environment. Register for the course according to the instructions and continue studying on the course in the online learning environment Moodle.

Please note:

  • Registration at the Open University ends 31 Aug 2021.
  • If you wish to have the ECTS entered in the University of Helsinki’s student records, you must register for the course at the Open University.
  • July 2021 course completetions will be registered in August 2021.
  • If you do not have a Finnish personal identity code, please contact the University of Helsinki Admission Services in order to register for the course.
  • Course materials (without ECTS) are available for everyone without officially enrolling on the course.
  • Students and international students at the University of Helsinki can enrol on the course with their University of Helsinki username.

Open University reserves the right to make changes to the study programme.


The course is suitable for students who

  • have studied the basics of programming: Introduction to Programming & Advanced Course in Programming, or similar competence.
  • are interested in functional programming.

You can take the course as part of Digital Education For All (DEFA) studies.

Before taking this course, you should have completed Introduction to Programming & Advanced Course in Programming, or have similar competence.

After the course you

  • will know the basic principles of functional programming,
  • can implement simple algorithms using the Haskell programming language,
  • can fluently use recursion in programming.

Central topics are:

  • the way of thinking in functional programming,
  • the basics of the Haskell programming language,
  • using recursion in programming.

The course is based on online material that is available in the MOOC system.

The course is graded based on the number of solved exercises. Possible grades: fail / pass / 5.

Contact information:

  • The course is completed in the MOOC learning environment between 1 September 2020 and 31 August 2021.
  • The MOOC environment contains the materials and instructions necessary for completing the course. Link to the learning environment will be added here when the course begins in fall 2020.
  • During the course, you complete assignments that are returned electronically and automatically graded.

The course is part of the subject studies in Computer Science.