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:
- Bob Harper's
Programming in Standard ML draft book. (The first chapter is quite initimidating, so you might want to immedieately skip to the second one.)
- Larry Paulson's ML for the Working Programmer. (Not available electronically.)
- The Moscow ML
homepage has many good references under the heading "Other on-line
Standard ML resources" - scroll down a bit to get there. Note in particular
the introductions by Cummings, Gilmore, and Tofte. (For the adventurous, there
are also links to interesting projects using SML.)
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)