Course Evaluation

You can download the results of the course evaluation as well as the action plan.

Exam

The exam will take place Tuesday, January 12, 2010 from 9:00-13:00 in rooms U44 and U56..

There is a number of old exams from previous editions of this course.

Here is the exam and a solution.

Weekly Notes

Week 45 46 47 48 49 50 51
Weekly notes 02.11.2009 06.11.2009 13.11.2009 22.11.2009 01.12.2009 07.12.2009 13.12.2009

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:

There are many more inputs available in the alternative format that can also be used for testing:

Template

There is a template available to use as a starting point for the solution.

Possible Constraint System

In the fifth lecture I discussed a possible encoding of the 6x6 example as a constraint programming problem. You can take a look at the code for this.

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 08-10 (U53) Lecture Lecture Exercise Lecture Lecture Lecture Lecture
Wed 12-14 (U89A) Exercise Exercise Exercise Exercise Exercise Exercise Exercise
Thu 12-14 (U46) Lecture Lecture Lecture Exercise Lecture Exercise Lecture

Office Hours

Just come to my office. If you want to make sure I'm there, contact me before (by e-mail, jabber, phone).

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:

  1. A four hour written exam with books, notes, etc. External examiner, grades according to the 7-point marking scale.
  2. 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.
  3. 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 2009

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.
Design by 1234.info | Modified by Peter Schneider-Kamp | CSS 2.0