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; to develop skills in modeling and solving
combinatorial problems; to develop skills in taking advantage of strong algorithmic techniques. The
course has both a theoretical component, oriented on the study of the domain and of the relevant
issues, and a practical component, oriented on the study of different typical problems, systems,
platforms and libraries for constraints programming.
The course and seminar are online. I
will post the courses on the teams where you will also have access to the study materials.