Course Catalogue

Constraint Programming (M) COMPSCI5006

  • Academic Session: 2026-27
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 5 (SCQF level 11)
  • Typically Offered: Semester 1
  • Available to Visiting Students: Yes
  • Collaborative Online International Learning: No
  • Curriculum For Life: No

Short Description

We cover Constraint Programming and its use in solving a number of combinatorial problems. We also cover the underlying technology, and related combinatorial optimisation approaches.

Timetable

3 hours per week

Requirements of Entry

For MSc students - Honours degree in Computing Science
For Honours students - 3rd year Computing Science

For
MSci students - 4th year Computing Science

Excluded Courses

None

Co-requisites

None

Assessment

Summative coursework will consist of multiple-choice quizzes (20% within the 'set exercise' category), set coding tasks with descriptions of results (30% within the 'set exercise' category), and a research-focussed project output (e.g. a research-style poster).

Course Aims

To enable students to implement constraint programming solutions to a number of combinatorial problems using a state of the art constraint programming toolkit.
To give students a critical appreciation of the fundamental concepts of constraint satisfaction and constraint programming
, and the ability to compare to related search approaches.
To give the student an appreciation of, and exposure to, commer
cial applications and the research directions in constraint programming.
To understand the basic mechanics of a constraint programming toolkit (such that they might implement such a toolkit).

Intended Learning Outcomes of Course

By the end of this course students will be able to:

1: Model complex problems (such as scheduling problems, design and configuration problems) as constraint programs, using a state of the art constraint programming toolkit;

2: Implement the algorithms for achieving constraint propagation, and critically appreciate the costs and benefits of different levels of consistency;

3: Demonstrate extensive, detailed and critical knowledge and understanding of constraint satisfaction from a theoretical point of view, and be able to compare to other combinatorial approaches;

4: Implement, the search algorithms typically used in constraint programming;

5: Use various variable and value ordering heuristics;

6: Discuss current issues and research direction in constraint programming.

Minimum Requirement for Award of Credits

No exceptions