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


Ilmoittautuminen ja opintomaksu

Free of charge.

Enrollment instructions

No enrollment before the course begins. You will be instructed to enroll on 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 enrollment required.

2. Once you have completed course assignments, you will be sent Open University enrollment instrucutions through the learning environment. Open University enrollment is required for ECTS credits.

In order to enroll you will need to meet one of the following criteria:
A. You have a university of Helsinki user ID.
B. You have a user ID at a HAKA federation member institution.
C. You have Finnish personal indentity number.
D. You are able to visit the University of Helsinki Admission Services in Helsinki and verify your identity. You can find the instructions for the registration process on this page under the heading Registration without a Finnish personal identity code or online banking ID at the University’s Admissions Services.

Please note:

  • Enrollment 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 enroll on 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 enroll on 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.
  • During the course, you complete assignments that are returned electronically and automatically graded.

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