Teacher(s)
Language
English
> French-friendly
> French-friendly
Main themes
- Constraints and domains
- Practical aspects of constraint solvers
- Constraint Satisfaction Problems (CSP)
- Models and languages for constraint programming
- Methods and techniques for constraint solving (consistency, relaxation, optimization, search, linear programming, global constraints, ...)
- Search techniques and strategies
- Problem modelling and resolution
- Applications to differents problem classes (e.g. planification, scheduling, ressource allocation, economics, robotics)
Learning outcomes
At the end of this learning unit, the student is able to : | |
With regard to the AA reference framework of the “Master in Civil Engineering in Computer Science” program, this course contributes to the development, acquisition, and assessment of the following learning outcomes:
With regard to the AA reference framework of the “Master [120] in Computer Science” program, this course contributes to the development, acquisition, and assessment of the following learning outcomes:
|
|
Content
- Constraint Programming : a Declarative Programming paradigm
- Architecture of a constraint programming solver
- Global contraints and implementation techniques (incrementality, etc)
- Search techniques and strategies
- Combinatorial optimization problem modeling and solving
- Modeling and solving combinatorial optimization problems using constraint programming
- Applications to different problem classes (e.g. planification, scheduling, resource allocation, economics, robotics)
Teaching methods
The presentation of concepts will be delivered either through lectures, videos, or readings, and will be accompanied by practical work (assignments/micro-projects) requiring the application of these concepts.
Evaluation methods
June — First Session
The June grade consists of two independent parts worth 10 points each, for a total of 20 points:- 10 points for practical work;
- 10 points for theory.
Practical Part — 10 points
The 10 practical points can be obtained in one of two ways:- either by passing the practical exam on INGInious, organized at the end of the quadrimester and lasting two hours;
- or by passing the practical programming section on paper during the June exam.
Failing the INGInious exam therefore does not mean losing the 10 practical points: the student can still obtain these points during the practical programming section on paper in the June exam.
Nevertheless, it is in the student’s interest to participate in the INGInious exam and attempt to pass it. If successful, the 10 practical points are secured before the June exam, allowing the student to focus on the theoretical part during the written exam and thereby reduce the amount of programming material that needs to be prepared.
Theoretical Part — 10 points
The 10 theory points are assessed during the written June exam.The exam may include questions concerning the projects completed during the quadrimester and their source code.
August — Second Session
In the second session, the exam is entirely conducted on paper and remains divided into two parts worth 10 points each:- 10 points for theory;
- 10 points for practical work, in the form of programming on paper.
However, the 10 practical points corresponding to the programming-on-paper section of the June exam cannot be carried over separately to August.
| Theory | Practical | Total | |
|---|---|---|---|
| June | 10 pts on paper | 10 pts via INGInious or programming on paper | 20 pts |
| August | 10 pts on paper | 10 pts of programming on paper (carried over from the INGInious section) | 20 pts |
Exam Conditions
All exams are individual. No collaboration, communication, or outside assistance is permitted during the exams.The use of generative AI is strictly prohibited during the INGInious exam as well as during the written exams, both in June and in August.
Students must therefore complete the exams individually and without using any generative AI tools.
The INGInious exam is therefore a risk-free opportunity in June: if the student fails, they can still obtain their 10 practical points through the programming-on-paper section of the June exam. If they pass, they validate this part directly and benefit from a reduced amount of programming material to prepare for the June exam.
Other information
A good background in data-structure and algorithms is required to follow this course and a good knowledge of Java language
Online resources
Bibliography
Le site www.minicp.org + lectures suggérées pendant le semestre
Faculty or entity