Functional Programming 2018


Functional Programming is divided into 2 parts. For the first part, lectures are available on Courseware and the Wednesday afternoon slot will be used for recitation sessions. The second part will follow a classical lecture structure, with in-person lectures on Wednesday afternoons.

First week

Prof. Odersky will give the introductory lecture on Wednesday 19th September at 13:15 in CO2

Part 1: Functional Programming Principles in Scala

Each week, you should watch the videos corresponding to the week and complete the weekly programming assignments. The videos and assignments instructions will be available on Courseware:

Please login with your EPFL credential. If you you don't have access to that page, please ask by email: olivier.blanvillain at

In place of a traditional lecture session, during our lecture slot on Wednesdays, we will be holding recitation sessions, to ensure that students understand the material covered in the lectures. The recitation session will last one hour. In order to optimize these sessions, the students will be divided in groups of approximately 25. Sessions will take place between 13:15 and 14:00, and 14:15 and 15:00. You can attend either session. The sessions will take place in the rooms CO2, CO015, CO016, CO017.

You need to register for a room and a time using the following poll:

The Teaching Assistants are available on Fridays from 10:15 to 12:00 in CO 021 to answer questions related to the programming assignments. This is the more traditional “séance d'exercices” that EPFL students are familiar with.

Part 2: Declarative Programming

For part 2 of the course, students should attend the weekly lectures by Prof. Kuncak, on Wednesdays at 13:15. We will no longer hold recitation sessions during this time slot.

Teaching Assistants will still be available on Fridays at 10:15 exactly like in Part 1.


If you have any questions regarding assignments, lecture material or organization, please ask them on the Courseware “Discussion” page:


The grading of the course is divided between projects (30%), a midterm (30%), and a final exam (40%) held during the last week of courses. The exact way this is translated into a grade out of 6 will depend on students' results, but a total grade of at least 60% means you will get at least a 4 out of 6.

This course is a semester course, which means that once registered for the course, you cannot un-register before the final exam.

The midterm will be held on Wednesday 7th November.

The final exam will be held on Friday 21th December.

Exams from previous years are available here.