Time schedule

Lectures (note different lecture rooms on different week days)


No Picture
Fabian Ruch

Office hours:
Tuesdays 14hs-16hs
Office: 6103A

Anton's picture
Anton Ekblad

Office hours:
Fridays 13hs-15hs
Office: 5463, 5th floor, EDIT building

Course Representatives

Discussion Group

You can register here to the Google Group of the course. The google group is meant to be used to post questions and have discussions related to the course. Sharing (total or partial) solutions in the google group is forbidden.

Reading material

Course book

There is a online version of it. Some related papers to read and other material will be provided with the lectures.

Extra reading material

These books are all good but presented in order of decreasing relevance for the AFP course.

Aim and context

Learning outcomes:


The AFP course requires a BSc in Computer Science or equivalent, mathematical maturity, a basic course on Functional Programming (like our version) and a course on Programming Languages (like Programming Language Technology or Programming Paradigms). Other recommended courses are Logic in CS, Algorithms and Finite automata theory and formal languages.



Laborations are graded with 3,4, and 5. Once you finish all the labs, you will get the following temporary grade:

tmp = (3*grade lab 1  + 5*grade lab 2 + 4*grade lab 3)/12

Above, the 3,5, and 4 coefficients are the weights of the labs based on their difficulty.

To fix some round errors, the final score of the lab is:

grade_labs = (tmp - 3) * 1,4999 + 2.5


The exam is graded as 3,4, and 5.

Final grade

The final grade for the course is composed of 60% for the lab's score and 40% for the exam's score.

total_grade = 0.6 * grade_labs + 0.4 * grade_exam

Where the total_grade then gets rounded generously, meaning, 4.5 -> 5.

If you are a Chalmers student, then you get the score total_grade as the grade for the whole course.

GU students get G if total_grade is 3 or 4 and VG if it is 5.

Course Syllabus

For GU students

For Chalmers students

Advanced Functional Programming 2016 - Chalmers University of Technology & Gothenburg University