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

Planificación y control de proyectos con Microsoft Project (edX) EdX
The Pontificia Universidad Javeriana,JaverianaX

Planificación y control de proyectos con Microsoft Project (edX)

En este MOOC los participantes comprenderán las características que hacen de Microsoft Project una herramienta que facilita la planeación, el manejo, el seguimiento y el control de proyectos de distintas complejidades y la posibilidad de emplear esta herramienta en diferentes contextos, como en la gestión de proyectos laborales, proyectos académicos, entre otros.

Self Paced
Self-Paced
Model-Based Automotive Systems Engineering (edX) EdX
Chalmers University of Technology,ChalmersX

Model-Based Automotive Systems Engineering (edX)

Learn how to model and simulate system dynamics in automotive engineering. Modeling, control design, and simulation are important tools supporting engineers in the development of automotive systems, from the early study of system concepts (when the system possibly does not exist yet) to optimization of system performance. This course provides a theoretical basis to model-based control design with the focus on systematically develop mathematical models from basic physical laws and to use them in control design process with specific focus on automotive applications.

Self Paced
Self-Paced
Techniques of Design-Oriented Analysis (Coursera) Coursera
University of Colorado Boulder

Techniques of Design-Oriented Analysis (Coursera)

This is Course #2 in the Modeling and Control of Power Electronics course sequence. The course is focused on techniques of design-oriented analysis that allow you to quickly gain insights into models of switching power converters and to translate these insights into practical converter designs. The design-oriented techniques covered are the Extra Element Theorem and the N-Extra Element Theorem (N-EET). Through practical examples, it is shown how the EET can be used to simplify circuit analysis, to examine the effects of initially unmodeled components, and to design damping of converters such as SEPIC and Cuk to achieve high-performance closed-loop controls.

Jun 29th 2026
3 Weeks
Construction Scheduling (Coursera) Coursera
Columbia University

Construction Scheduling (Coursera)

Learners will discover the key project scheduling techniques and procedures including; how to create a network diagram, how to define the importance of the critical path in a project network, and defining project activities float. Also covered are the fundamentals of Bar Charts, Precedence Diagrams, Activity on Arrow, PERT, Range Estimating, and linear project operations and the line of balance.

Jun 29th 2026
5-12 Weeks
Groundwater Cycle (edX) EdX
Purdue University,PurdueX

Groundwater Cycle (edX)

The Earth is blue for its oceans but green for the blankets of groundwater under our feet. This course explores the water cycle from under the ground. How much groundwater do we use and what for? How much do the trees? How do we model water fluxes? This course explores the water cycle from an underground perspective. We start with the description of groundwater as a resource: How much is there? Where is it? How do we use it? How much groundwater do plants and trees use every year? How much water do aquifers lose during droughts? How much do they gain during rain events or in a typical year?

Jan 10th 2022
5-12 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
Digitalisation in Aeronautics (Coursera) Coursera
Technische Universität München - TUM

Digitalisation in Aeronautics (Coursera)

The instructors of the online course "Digitalisation in Aeronautics" present a spectrum of different aviation research and application areas, exploring the impact of digitalisation in this specific field, including the effects of digitalisation in simulating the interaction of aircraft components, in overall aircraft development and related decision-making and in the communication channels used within aircraft. A broad and varied range of applications and digital solutions are explored in detail in the individual modules of this course.

Jun 29th 2026
4 Weeks
Global Warming I: The Science and Modeling of Climate Change (Coursera) Coursera
University of Chicago

Global Warming I: The Science and Modeling of Climate Change (Coursera)

This class describes the science of global warming and the forecast for humans’ impact on Earth’s climate. Intended for an audience without much scientific background but a healthy sense of curiosity, the class brings together insights and perspectives from physics, chemistry, biology, earth and atmospheric sciences, and even some economics—all based on a foundation of simple mathematics (algebra).

Jun 29th 2026
5-12 Weeks
Modeling and Simulation of Multibody Systems - Part I (edX) EdX
LouvainX,Université Catholique de Louvain - UCL

Modeling and Simulation of Multibody Systems - Part I (edX)

Vehicles, bicycles, cranes, human body and robots are multibody systems. Learn how to model them and compute their kinematic and dynamic characteristics, such as velocities, accelerations and forces. This course aims at acquainting you with the modeling and simulation of complex articulated mechanical systems, denoted as multibody systems, such as vehicles, merry-go-rounds, motorbikes, cranes, human bodies, suspensions, robot manipulators, mechanical transmissions, etc.

Self Paced
Self-Paced
Modeling and Debugging Embedded Systems (Coursera) Coursera
University of Colorado Boulder

Modeling and Debugging Embedded Systems (Coursera)

This is part 3 of the specialization. In this course students will learn : * About SystemC and how it can be used to create models of cyber-physical systems in order to perform "what-if" scenarios; * About Trimble Engineering's embedded systems for heavy equipment automation; * A deeper understanding of embedded systems in the Automotive and Transportation market segment; * How to debug deeply embedded systems; * About Lauterbach's TRACE32 debugging tools; * How to promote technical ideas within a company; * What can be learned from studying engineering failures.

Jun 29th 2026
4 Weeks
Principles of Modeling, Simulations, and Control for Electric Energy Systems (edX) EdX
MIT,MITx

Principles of Modeling, Simulations, and Control for Electric Energy Systems (edX)

Apply a dynamic systems-level approach and engage emerging research on efficient, sustainable, and physically and economically feasible electric power systems of the future. As global energy demand grows, to mitigate climate change we must drive a swift transition to clean energy resources and enhanced electric power grid infrastructure. In this course, you will explore systemic principles of future electric power system management, such as the role of smart grids, data-enabled machine learning, power electronics-control, and data-driven decision-making.

No session available
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