Lab for Automated Reasoning and Analysis LARA

Functional Programming 2017


Functional Programming is divided into 2 parts. For the first part, lectures are available on YouTube 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 20th September at 13:15 in CO2

An introduction to Git will be presented during the first hour of the exercise session on Friday 22th September at 10:15 in CE 1 4. Teaching Assistants will be available in the second hour to answer questions related to the first programming assignment.

Part 1: Functional Programming Principles in Scala

Each week, you should watch the videos corresponding to the week and complete the weekly programming assignments.

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 Moodle forums. We will also use Moodle for all communications regarding the course, so make sure you are registered.



For all assignments, students must work alone – working in groups is not allowed!

  • Assignment 1, to be delivered before Thursday 28th September, 23:59.


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. 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 Friday 10th November.

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

Exams from previous years are available here.

funprog17/top.txt · Last modified: 2017/09/19 11:36 by guillaume