Course Evaluation
You can download the results of the course evaluation.
Exam
The exam will take place Monday, January 10, 2011 from 9:00-13:00 in rooms U48 and U48A.
There is a number of old exams from previous editions of this course.
Weekly Notes
| Week | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 
|---|---|---|---|---|---|---|---|
| Weekly notes | 08.11.2010 | 15.11.2010 | 22.11.2010 | 30.11.2010 | 06.12.2010 | 06.12.2010 | 06.12.2010 | 
Project
Part 1
Information about the first part of the project is now available in a note on Part 1.
Example Inputs
Here is a list of example inputs in the format described by the note above:
Template
There is a template available to use as a starting point for the solution.
Part 2
Information about the second part of the project is now available in a note on Part 2.
Template
There is a template available to use as a starting point for the solution.
Schedule
| Week | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 
|---|---|---|---|---|---|---|---|
| Tue 10-12 | Exercise (U26a) | ||||||
| Tue 14-16 | Lecture (U27a) | Lecture (U27a) | Lecture (U27a) | Lecture (U27a) | Lecture (U27a) | Lecture (U27a) | Lecture (U27a) | 
| Wed 12-14 | Exercise (U27a) | Exercise (U27a) | Exercise (U27a) | Exercise (U27a) | Exercise (U27a) | Exercise (U27a) | Exercise (U27a) | 
| Fri 08-10 | Lecture (U26) | Lecture (U26) | Exercise (U26) | Lecture (U26) | Lecture (U26) | Exercise (U26) | 
Office Hours
Just come to my office. If you want to make sure I'm there, contact me before (by e-mail, jabber, phone).
- Office: IMADA, Ø13-602b-2 (map)
 - Phone: 6550 2327
 - E-mail: petersk@imada.sdu.dk
 - Home page: http://www.imada.sdu.dk/~petersk/
 - Jabber: petersk@jabber.dk
 
Literature
The course will be based on lecture notes and hand-outs.
Course Description
Prerequisites:
The contents of Programming A (DM502) and B (DM503) must be known. The course Algorithms and Data Structures (DM507) is recommended.
Evaluation:
- A four hour written exam with books, notes, etc. External examiner, grades according to the 7-point marking scale.
 - A number of mandatory assignments (pass/fail, internal evaluation by teacher), accounting for 1 ECTS of the 5 ECTS of the course. These assignments must be approved before the written exam can be taken.
 - Reexam after 4th quarter. The reexam is an oral exam with external examiner and grades according to the 7-point marking scale.
 
Withdrawal date:
Withdrawal from the exam must be 7 days before the first exam date.
Course type:
Lectures (22 hours), discussion sessions (20 hours), project work.
Teaching period:
2nd quarter, fall 2010
Aims:
To give the students the general principles of programming languages design, and the specific choices characterizing the language classes imperative, object-oriented, logic based and functional. To give the participants experience with programming in language of other types than the usual imperative and object-oriented languages.
Synopsis:
- General languages mechanisms:
Control structure, type systems, abstraction, modules. - Functional languages:
Functions, higher-order types, polymorphism, lists, lazy evaluation, referential transparency, monads, efficiency considerations, proof of correctness. - Logic based languages:
Predicates and rules, unification, SLD resolution, function symbols, lists, implementation of negation, constraint programming. 
Aim description:
After the course, the student is expected to be able to:
- solve non-trivial programming tasks in Haskell by writing clear and correct code and by applying the standard language libraries.
 - solve non-trivial programming tasks in Prolog by writing clear and correct code and by applying the standard language libraries.
 - estimate time and space consumption of Haskell programs.
 - prove properties of simple Haskell programs.
 - calculate the most general type of a Haskell expression.
 - determine if a Haskell function is strict.
 - calculate the most general unifier of two Prolog terms.
 - execute resolution for a Prolog goal.
 - convert an expression in first order logic to clausal form.