Department of Information Technology

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

Please navigate using the menu on the left. All announcements are made at the Student Portal.

For administrative reasons, and like in every course, attendance at the first two-hour-lecture is mandatory: you must contact Pierre Flener if you cannot make it for a convincing case of force majeure, ideally in advance.

Aim of the Course

Constraint programming proposes a novel 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.

Constraint programming has been identified by the Association for Computing Machinery (ACM), which is a leading professional body in information technology, as a strategic direction in computing research. Also 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.

Updated  2011-10-14 10:12:52 by Pierre Flener.