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 : | |
1 |
Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation 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
- Applications to different problem classes (e.g. planification, scheduling, resource allocation, economics, robotics)
Teaching methods
Students will follow a MOOC on the EdX platform (videos), and there will be programming exercises and graded quizzes on Inginious.
Restructuring sessions will also be organized as an introduction to the practical work.
Restructuring sessions will also be organized as an introduction to the practical work.
Evaluation methods
June:
For the first session, the overall course grade is based solely on the mission grades (50%) and the final project (50%).
August:
For the second session, the mission grades remain unchanged. A new project worth 50% will be assigned to students after the June session. This project will also require a written report.
If deemed necessary by the instructor, an interview about any project may also be conducted also to verify that all theoretical concepts are well understood.
Projects are invididual. It means that any source code of a project estimated to be copied on the one of another student will result in a zero grade for the student at the projects and the exam.
The same consequences will hold for a student that voluntarily shares his code or make available to other students.
Nevertheless, students are permitted to use generative AI tools to assist with their assignments. Such tools can provide inspiration, suggest coding approaches, or help troubleshoot issues. But:
for i in range(10): ...
For the first session, the overall course grade is based solely on the mission grades (50%) and the final project (50%).
August:
For the second session, the mission grades remain unchanged. A new project worth 50% will be assigned to students after the June session. This project will also require a written report.
If deemed necessary by the instructor, an interview about any project may also be conducted also to verify that all theoretical concepts are well understood.
Projects are invididual. It means that any source code of a project estimated to be copied on the one of another student will result in a zero grade for the student at the projects and the exam.
The same consequences will hold for a student that voluntarily shares his code or make available to other students.
Nevertheless, students are permitted to use generative AI tools to assist with their assignments. Such tools can provide inspiration, suggest coding approaches, or help troubleshoot issues. But:
- Original Work: While AI can be a tool, it should not be the sole author of your assignment. Your submission should be primarily your own work. Directly copying and pasting solutions from AI outputs without understanding or modification is discouraged. Similarly, collaborating with fellow students is a valuable part of the learning process, but directly copying another student's work is considered plagiarism.
- Source Indication: Whenever you use generative AI to assist in your assignment, you are required to indicate so by providing a brief comment in your code on how the AI was used. For example:
for i in range(10): ...
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