EdX

Constraint Programming (edX)

Constraint Programming (edX)

Learn the basics of constraint programming from the implementation of solvers to modeling techniques for solving concrete combinatorial problems such as routing and scheduling. In this course, we will learn the basics of constraint programming: a paradigm that aims to reduce the cost of developing and solving combinatorial problems through extensive reuse of code, whose design is open-ended, but also through pruning techniques of the search space by reasoning at the level of constraints.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Today more than ever, the optimal use of resources has become a very important issue. Many decision problems (logistics, production, space, etc.) aiming at an optimal use of resources can be formulated as constraint combinatorial optimization problems. Unfortunately, these problems are difficult to solve mainly for two reasons :

  1. They require complex algorithms to design and develop,
  2. Finding an optimal solution can be computationally intensive.

During the proposed projects, you will develop your own constraint programming solver in Java that we will gradually extend in functionality in order to solve more and more complex combinatorial problems, especially in scheduling and vehicle routing. You will also develop global constraints, implement search strategies, model problems, and measure the impact of modeling choices on the efficiency of the solution.
Each module first introduces the concepts through videos, then a programming project is proposed to put these concepts into practice.

What you'll learn

  • Understand the constraint programming paradigm
  • Design and implement a modern constraint programming library
  • Model using the constraint programming
  • Extend the solver with new global constraints
  • Design custom and black-box searches
  • Approach Scheduling and Vehicle Routing problems with constraint programming

Syllabus

Module 1: From Backtracking Search to the Constraint Programming Paradigm
Starting from a custom backtracking search algorithm for the N-Queens Problem, we will make the approach gradually more generic until the introduction of a purely declarative approach and the design a first tiny CP library.

Module 2: Introduction to Mini-CP
The design and internals (variables, domains, state restoration, etc.) of Mini-CP, the constraint programming library that is used along the course and that is extended in each assignment.

Module 3: The sum and element global constraints
Two constraints that occur for solving most of the CP problems. Design of their filtering algorithms, study of their properties and implementation.

Module 4: The extensional table constraint
Introduction to the table constraint, the most generic one can imagine in CP. Study of some of its application, and filtering algorithms for this constraint.

Module 5: The alldifferent constraint
Study of the alldifferent global constraint as an illustration of an elegant reuse of well-known graph algorithms embedded into the filtering of constraints.

Module 6: The Circuit constraint and Vehicle Routing Problems (VRP)
Introduction to solving VRP with CP using the successor model and the circuit global constraint. Introduction to solving optimization problems with CP and Large Neighborhood search.

Module 7: Cumulative Scheduling Problems
Introduction to Scheduling with CP and the cumulative constraint, instrumental for scheduling non preemptive tasks with resource requirements.

Module 8: Disjunctive Scheduling Problems
A specific case of scheduling problems is the one of disjunctive resource where activities cannot overlap in time. We will study specific filtering and search techniques and apply it to solve the well kownknown job-shop problem.

Module 9: Blackbox Search
Introduction to efficient search heuristics independent of the problem to solve. All these searches are declinations of the well-known first-fail principle.

Module 10: Modeling
Introduction to advanced modeling techniques to boost the solving of your problems, including redundant constraints, and symmetry breaking.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Big Data Modeling and Management Systems (Coursera) Coursera
University of California, San Diego

Big Data Modeling and Management Systems (Coursera)

Once you’ve identified a big data issue to analyze, how do you collect, store and organize your data using Big Data solutions? In this course, you will experience various data genres and management tools appropriate for each. You will be able to describe the reasons behind the evolving plethora of new big data platforms from the perspective of big data management systems and analytical tools.

Aug 31st 2026
5-12 Weeks
Solving Algorithms for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Solving Algorithms for Discrete Optimization (Coursera)

Discrete Optimization aims to make good decisions when we have many possibilities to choose from. Its applications are ubiquitous throughout our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports.

Sep 7th 2026
4 Weeks
Advanced Statistical Inference and Modelling Using R (edX) EdX
University of Canterbury,UCx

Advanced Statistical Inference and Modelling Using R (edX)

Extend your knowledge of linear regression to the situations where the response variable is binary, a count, or categorical as well as to hierarchical experimental set-up. Advanced Statistical Inference and Modelling Using R is part two of the Statistical Analysis in R professional certificate. This course is directed at people who are already familiar with basic linear regression and fundamentals of statistical inference. It extends the knowledge of linear regression to the situations where the response variable is binary, a count, or categorical as well as to hierarchical experimental set-up.

Self Paced
Self-Paced
Applied Text Mining in Python (Coursera) Coursera
University of Michigan

Applied Text Mining in Python (Coursera)

This course will introduce the learner to text mining and text manipulation basics. The course begins with an understanding of how text is handled by python, the structure of text both to the machine and to humans, and an overview of the nltk framework for manipulating text. The second week focuses on common manipulation needs, including regular expressions (searching for text), cleaning text, and preparing text for use by machine learning processes. The third week will apply basic natural language processing methods to text, and demonstrate how text classification is accomplished. The final week will explore more advanced methods for detecting the topics in documents and grouping them by similarity (topic modelling).

Sep 14th 2026
4 Weeks
Customising your models with TensorFlow 2 (Coursera) Coursera
Imperial College London

Customising your models with TensorFlow 2 (Coursera)

Welcome to this course on Customising your models with TensorFlow 2! In this course you will deepen your knowledge and skills with TensorFlow, in order to develop fully customised deep learning models and workflows for any application. You will use lower level APIs in TensorFlow to develop complex model architectures, fully customised layers, and a flexible data workflow. You will also expand your knowledge of the TensorFlow APIs to include sequence models.

Aug 31st 2026
5-12 Weeks
Introduction to 3D Modeling (Coursera) Coursera
University of Michigan

Introduction to 3D Modeling (Coursera)

On this four-week practical course from the University of Michigan, you’ll not only learn how to use the Rhino software to create your 3D models, but you’ll also gain basic design skills to help bring your imagination to life. This course will guide you through 3D modeling within Rhino, so you’ll cover the fundamentals of the software as well as 3D modeling in general. You’ll first look at how to navigate the user interface and the different tools that you’ll be using to create models throughout this course. You’ll familiarize yourself with the 3D space and 3D objects before jumping straight in to create your own objects and building blocks.

Sep 7th 2026
4 Weeks
Foundations of Data Analysis - Part 1: Statistics Using R (edX) EdX
University of Texas at Austin,UTAustinX

Foundations of Data Analysis - Part 1: Statistics Using R (edX)

This is a hands on course with a data lab to teach fundamental statistical topics such as descriptive statistics, inferential testing, and modeling. In this first part of a two part course, we’ll walk through the basics of statistical thinking – starting with an interesting question. Then, we’ll learn the correct statistical tool to help answer our question of interest – using R and hands-on Labs.

No sessions available
5-12 Weeks
Basic Modeling for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Basic Modeling for Discrete Optimization (Coursera)

Optimization is a common form of decision making, and is ubiquitous in our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions in manpower and material resources management also allow corporations to improve profit by millions of dollars.

Sep 14th 2026
4 Weeks
Manufacturing Systems II (edX) EdX
MIT,MITx

Manufacturing Systems II (edX)

Learn how to analyze manufacturing systems to optimize performance and control costs and better understand the flow of material and information. Manufacturing systems are complex systems that require analytical analysis. Managers and practitioners use a wide variety of methods to analyze and optimize the performance of manufacturing systems and control costs.

Mar 6th 2024
5-12 Weeks
Feature Engineering for Improving Learning Environments (edX) EdX
University of Texas at Arlington,UTArlingtonX

Feature Engineering for Improving Learning Environments (edX)

Every model used to predict a future outcome depends upon the quality of features used. This course focuses on developing better features to create better models. How can data-intensive research methods be used to create more equitable and effective learning environments? In this course, you will learn how data from digital learning environments and administrative data systems can be used to help better understand relevant learning environments, identify students in need of support, and assess changes made to learning environments.

No sessions available
3 Weeks
Statistical Inference and Modeling for High-throughput Experiments (edX) EdX
HarvardX,Harvard University

Statistical Inference and Modeling for High-throughput Experiments (edX)

A focus on the techniques commonly used to perform statistical inference on high throughput data. In this course you’ll learn various statistics topics including multiple testing problem, error rates, error rate controlling procedures, false discovery rates, q-values and exploratory data analysis. We then introduce statistical modeling and how it is applied to high-throughput data. In particular, we will discuss parametric distributions, including binomial, exponential, and gamma, and describe maximum likelihood estimation.

Self Paced
Self-Paced