Equational Programming 2016-2017


Equational Programming (course code 401011) is a course in the minor Deep Programming about the foundations of functional programming.
The theoretical part of the course is concerned with lambda calculus and equational specifications.
The practical part consists of exercises in the functional programming language Haskell.

Prerequisites: the course Logic and Modelling.
Possible follow-up courses: Term Rewriting Systems (master course) and Logical Verification (master course).


Lectures are on Mondays and Thursdays, 11.00-12.45, in weeks 2--5.
Exercise classes are on Tuesdays and Fridays, 11.00-12.45, in weeks 2--5.
Haskell labs are on Tuesdays and Thursdays, 13.30-17.00, in weeks 2--4.

In week 4 of the course, we have:
lecture 7 on Monday January 30,
exercise class 7 on Tuesday January 31,
question hour on Thursday February 2,
the exam on Friday February 3,
and that is it.
In particular: no Haskell afternoons, and no exercise class on Friday.

Practical part: functional programming in Haskell

There are three set of obligatory programming assignments.
The grades for the programming assignments contibute to the final grade for the course.
The information concerning the practical part of Equational Programming is available via this page.

Theoretical part: lambda-calculus and equational specifications

There are four sets of non-obligatory homework exercises.
They contribute to a bonus of at most 0.5 on the exam grade.
The information concerning the theoretical part of Equational Programming is available via this page.


At the exam, the typing rules of simply typed lambda-calculus and the derivation rules for equational logic (Definition 3.2) will be given.

Final grade

The practical part counts for 30% for the final grade, and the written exam counts for 70% for the final grade.
For both parts the grade should be at least 5.5 in order to pass the course.
A bonus of at most 0.5 contributing to the grade of the written exam can be obtained via hand-in written exercies.


Mail f.van.raamsdonk @ vu.nl.
Last update May 2017.