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.

Here is the exam and a solution.

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).

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