The assignments below are are step by step migrated from the
previous course instance (labelled "2009:" below) to the
current 2010 instance.
There are three programming assignments, which you should do in pairs.
If you have a good reason for doing the assignments by yourself,
please contact Patrik. You need to pass all three assignments in order
to pass the course.
Each of the assignments is divided into two parts with separate
The assignments have to be handed in using the Fire system.
Assignment 1 - Turtle Graphics
Design and implement an embedded language for turtle graphics.
Assignment 2 - Replay Monad
Implement a monad which allows computations to be replayed, and
implement a programming model for CGI programs on top of this
Assignment 3 - Open project
(2009:) The third assignment is a more open project where you can choose
between a few different problems or, if you have an interesting idea,
pick a problem of your own.
The project should take the form of a domain specific language for
some interesting domain and an application of the language to a