##
Equational Programming 2017-2018

####
Contents

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, and possibly also the basics of term rewriting.

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).

####
Schedule

The course is in 2017-2018 taught in period 2, that is, in weeks 44--50.

We have lectures on Mondays and Thursdays,
and exercise classes on Tuesdays and Fridays.

On Tuesday afternoons we have a Haskell lab.

Please see the
course schedule.
####
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 homework exercises.
The information concerning the theoretical part of Equational Programming
is available via
this page.
####
Exam

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

The construction of a term model won't be asked.
####
Final grade

For both parts the grade should be at least 5.5 in order to pass the course.

####
Questions?

Mail f.van.raamsdonk @ vu.nl.

Last update December 2017.