Department of Information Technology

CP - Constraint Programming (course 1DL440) - Autumn 2013



  • Catalogue entry for this course, including the official course goals; unofficial secondary course goals are the acquisition of technical writing & typesetting skills as well as note-taking skills


Constraint programming proposes a set of techniques and tools for efficiently solving (hard) combinatorial problems. Doing so is crucial in many application domains, such as scheduling, planning, molecular biology, finance, linguistics, and so on. Many companies are successfully deploying constraint programming, making knowledge thereof a marketable asset. This course combines coverage of theoretical foundations with hands-on experience in modelling and solving real-life combinatorial problems.

See the Constraint Applications blog as well as the articles Constraint Programming in Sweden, Constraint Technology and the Commercial World (these links work from the UU network), and Constraint Programming -- The Paradigm to Watch, for instance.

Target Group

Natural-science students (biology, bioinformatics, physics, chemistry, ...), mathematics students, engineering students, finance students, linguistics students, computer-science students, and anyone interested in solving complex problems that have many constraints. Note that constraint programming is complementary to linear programming (a common technique in operations research): this course will be of particular interest to students with such a background. The target audience includes third-year and fourth-year undergraduate students, as well as graduate students.


120 higher-education credits (that is 120 ECTS points) in science, technology, systems science, or linguistics, including 12 higher-education credits (that is 12 ECTS points) in programming and basic algebra. Programming skills in C++ are assumed.


All announcements about the course will be made here, so check this page regularly:

  • 2014-01-08: The exam is graded and published: starting on the next workday, you may inspect your annotated copy at IT kansliet; the grades will come up on-line (at Ladok) in a few workdays.
  • 2013-12-10: The deadline for Assignment 3 is extended by exactly one week.
  • 2013-10-15: Project part 3 is published. All the necessary material (topic 5) has already been taught.
  • 2013-10-02: Project part 2 is published. All the necessary material (topic 4) has already been taught.
  • 2013-09-24: Assignment 3 is published. All the necessary material (topics 1 to 9) will normally have been taught long before the deadline, so you can start very early.
  • 2013-09-10: Project part 1 is published. All the necessary material (topics 1 to 6) will normally have been taught until 30 September inclusive, but some aspects can be handled much earlier.
  • 2013-09-06: Assignment 2 is published. All the necessary material (topics 3 to 5) will normally have been taught until 24 September inclusive, but some questions can be answered much earlier.
  • 2013-09-02: Assignment 1 is published. All the necessary material (topics 1 and 2) will have been taught until 3 September inclusive.
  • 2013-09-02: Until midnight of Sunday 8 September, you can build a team of two students using the "Register Homework Teams" option of the "Group Divisions" menu at the Student Portal of CP. After that, the remaining students will be randomly divided into teams. You can advertise your search for a teammate using the "Team Partner Search" option of the "Forums" menu at the Student Portal of CP. If, by Friday 6 September afternoon, at least one teammate is not yet formally registered to the course, then declare the team by email to the head teacher.
  • 2013-06-14: These pages were created and will be continuously updated until and during the course.

Updated  2014-01-08 09:21:05 by Pierre Flener.