Functional Design and Programming (E2004)

This course introduces the programming paradigm functional programming. Functional programming is introduced on two levels. First, we shall learn the programming language Standard ML (SML) to get some "hands-on" practical experience. Second, we shall see how functional design leads to simple, elegant and robust programs.

Curriculum for written exam

See this plain txt-file.

Latest News

1/12
Added versions of old examsets with answers included. (See below!)
FDP exam assignments January 2003 (with answers)
FDP exam assignments January 2004 (with answers)
16/11
Curriculum for exam has been posted. See above.
15/11
Exam assignments for previous FDP's available (in danish only, sorry!):
FDP exam assignments January 2003
FDP exam assignments January 2004
14/9
Slides and exercises for the 3rd lecture added - see Lecture plan. NB! In the future, the addition of slides, exercises and solutions will not qualify as news.
8/9
Slides and exercises for the 2nd lecture added - see Lecture plan.
2/9
Added suggestions for additional reading.
1/9
Slides and exercises for the 1st lecture added - see Lecture plan.
30/8
Welcome to the first version of the course homepage for "Functional Design and Programming".
The first lecture will take place 1st of September, 9:00-12:00 in 4A 20n

Course Information

Plan
Lecture plan (currently tentative). Will be updated continually with links to lecture notes, slides, etc.
Time and place
We meet Wednesday's at ITU, starting Wednesday the 1st of September and ending Wednesday the 17th of November. There will be lectures in the morning and exercises in the afternoon.

Lectures: 9:00-12:00 in room 4A20.

Exercises: 13:00-16:00 in room 4A54.
Teachers
Lars Birkedal (mail: birkedal (at) itu.dk)
Søren Debois (mail: debois (at) itu.dk)
Troels C. Damgaard (mail: tcd (at) itu.dk)
Software tools
This page contains brief notes on how to use the software tools we will employ in the course.
Course materials
We use Hansen and Rischel's Introduction to Programming Using SML.
A classic paper Why Functional Programming Matters by John Hughes (we read part 1-3 (pages 1-8)).
Some notes on types by Andy Pitts Types Lecture Notes (Andy Pitts), pages 1-28.
And Essentials of Standard ML Modules by Mads Tofte (1996).

Supplementary reading:

We will use the Moscow ML compiler and associated tools described in the Owner's Manual.

Note that supplementary material might be added.
Official course description
Description in the course database.
Exam
There is a four hours written examination on Thursday 6th of January 2005 with books etc., but without computers. (Exam form A2, see Exam forms).
Projects
Suggestions for projects.
Teaching language
All course materials are in English. Lectures will be given in English or Danish as necessary.

Author: Troels C. Damgaard (tcd (at) itu.dk)