Course Evaluation

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

Project

Re-Exam

Information about the re-exam project is available in the re-exam project description.

Supporting files for the re-exam project are available by clicking here.

Part 2

Information about the second part of the project is now available in a note on Part 2.

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

Schedule

Week 45 46 47 48 49 50 51
Mon 10-12 Lecture (U142) Exercise (U142)
Tue 16-18 Exercise (U27a) Exercise (U27a) Exercise (U27a) Exercise (U27a) Exercise (U27a) Exercise (U27a) Exercise (U27a)
Wed 12-14 Lecture (U27a) Lecture (U27a) Lecture (U27a)
Thu 12-14 Lecture (U155) Lecture (U155) Lecture (U155) Lecture (U155)
Fri 12-14 Lecture (U155) Exercise (U26) Lecture (U26) Exercise (U26) Lecture (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 available in Blackboard.

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:

Project divided into parts and integrated in the course. Pass/fail, internal evaluation by the teacher.

Re-examination after 4th quarter.

Withdrawal date:

Withdrawal from the exam must be 7 days before the first exam date.

Course type:

Lectures (22 hours), discussion sessions (20 hours) and project work.

Teaching period:

2nd quarter, fall 2011

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 a functional programming language by writing clear and correct code and by applying the standard language libraries.
  • solve non-trivial programming tasks in a logic-based language by writing clear and correct code and by applying the standard language libraries.
  • estimate time and space consumption of functional programs.
  • prove properties of simple functional programs.
  • calculate the most general type of a functional expression.
  • calculate the most general unifier of two terms.
  • execute resolution for a logical goal.
  • convert an expression in first order logic to clausal form.
Design by 1234.info | Modified by Peter Schneider-Kamp | CSS 2.0