Constraint Programming

Lectures are on Thursdays, 14:15–16:00,
in Building 45, HS 003.
Lectures start on April 14 and end on July 14.
No lectures on May 5 (Ascension) and May 26 (Corpus Christi)

This course was awarded the Teaching Award for the
summer semester 2005.

Course description

Many computational problems can be described in terms of
restrictions imposed on possible solutions. Constraint Programming
is a problem-solving technique that works by incorporating such
restrictions into a programming environment. Constraint Programming
draws on methods from artificial intelligence, logic programming,
and operations research. It has been successfully applied in a
number of fields such as scheduling, computational linguistics, and
computational biology.

The aim of this course is to

create an understanding of the fundamental concepts underlying
constraint programming,

develop skills in modelling and solving combinatorial
problems, and

develop skills in taking advantage of strong algorithmic
techniques.

To achieve these goals, the course will cover the following topics:

modelling combinatorial problems using constraint
programming

constraint domains and notions of consistency

a generic architecture for solving constraint problems using
propagation and search

applications of constraint programming

Besides the theoretical part, the course will put an emphasis on
practical experience with state-of-the-art constraint programming
systems.

Course prerequisites

You should have

basic knowledge in logics, for example from an
introductory logics course like LSV or CL

basic knowledge about algorithms and data structures

basic programming skills in Java or Standard ML

You will benefit from

optimization, operations research, or similar courses

last semester's seminar on constraint programming

Office hours

Wednesdays, 14:00–15:00

News

2005-06-03: The exam will take place on Thursday, July 14, 14:15-16:00.

2005-05-15: The slides for the first lecture are now online (see the
Services page).