Discrete Optimization

Professor Pascal Van Hentenryck, The University of Melbourne

Tired of solving Sudokus by hand? This class teaches you how to solve complex search problems with discrete optimization concepts and algorithms, including constraint programming, local search, and mixed-integer programming.

Optimization technology is ubiquitous in our society. It schedules planes and their crews, coordinates the production of steel, and organizes the transportation of iron ore from the mines to the ports. Optimization clears the day-ahead and real-time markets to deliver electricity to millions of people. It organizes kidney exchanges and cancer treatments and helps scientists understand the fundamental fabric of life, control complex chemical reactions, and design drugs that may benefit billions of individuals.

This class is an introduction to discrete optimization and exposes students to some of the most fundamental concepts and algorithms in the field. It covers constraint programming, local search, and mixed-integer programming from their foundations to their applications for complex practical problems in areas such as scheduling, vehicle routing, supply-chain optimization, and resource allocation.

An introductory lecture to the course can viewed here.


The course has an open format.  At the start of the course all of the assignments and lectures are available and each student is free to design their own plan of study and proceed at their own pace.  The assessments in the course consist of five programming tasks where students experience the challenges of real world optimization problems such as selecting the most profitable locations of retail stores (facility location) and the design of package delivery routes (vehicle routing).  The class community is an important aspect of this course and students are encouraged to collaborate and help each other in the completion of the assignments.

Recommended Background

Good programming skills, knowledge of fundamental algorithms, and linear algebra.

Suggested Readings

The lectures are designed to be self-contained and there are no required readings for this course.

Course Format

The class will consist of lecture videos, which are between 8 and 20 minutes in length (approximately 3 hours per week), and programming assignment covering the course concepts and exercising creativity.  Successful students can spend between 5 to 20 hours a week on the assignments depending on their background skills and level of interest.


  • What are the pre-requisites for the class?
  • Good programming skills, knowledge of algorithms and linear algebra.
  • What programming language will be used in this class?
  • A minimal knowledge of python is necessary to integrate with the course infrastructure.  Outside of that, students are free to use any language of their choice.
  • What is the coolest thing I'll learn if I take this class?
  • To be the coolest waiter in the world.
  • How difficult is this class?
  • A motivated student spending the time on the programming assignment will succeed in this class.
  • 4 March 2015, 9 weeks
  • 4 March 2014, 9 weeks
  • 18 June 2013, 9 weeks
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb


No reviews yet. Want to be the first?

Register to leave a review

Included in selections:
Convex_optimization Optimization
Optimization is for optimistic people!
Vyyjayfzd3pynkssdhnqwcrx4bk4ennc1-ren956ujr2e1pya9umefxe-z08yngaz4nptzjr4nqcte0whwul=s0#w=1724&h=1060 Алгоритмизация вычислений
1 курс МИЭМ ВШЭ, 4 кредита
More on this topic:
Course-logo Beginning Game Programming with C#
Start learning how to program video games using the C# programming language...
14-451f09 Dynamic Optimization Methods with Applications
This course focuses on dynamic optimization methods, both in discrete and in...
Tpffw_nig2w-w-ibeys-6iizqjuxv3cewrantzaey-kfz8xmuh_jqi7soiujlej0n-ncyftmjwplouiqowk=s0#w=436&h=268 Programming Languages. Building a Web Browser
This course is an introduction to the fundamentals of programming languages...
Developers-logo Google's Python Class
Welcome to Google's Python Class -- this is a free class for people with a little...
15-053s07 Optimization Methods in Management Science
15.053 introduces students to the theory, algorithms, and applications of optimization...
More from 'Computer Science':
2aa9e070-fc03-49b4-9240-b5df5d79cb15-0838bc13b7cd.small Information Security - Authentication and Access Control
Learn more fundamentals of information security, including Introduction to Cryptography...
19bbc9bb-5e0d-4205-ad7c-752a7bd87eac-b9d1304bbc7d.small The Software Architect Code: Building the Digital World
An introductory course aimed at helping you to discover and develop your software...
A0af5b37-e5fb-442f-9b95-910e57674085-a80d8eef9cf6.small Introduction to Java Programming: Writing Good Code
Learn to program in an easy and interactive way and enter the fascinating world...
D3856133-b0c2-49c4-bda9-b00155e0f5de-81a78321f065.small Unreal Engine Interactive 3D: Sequencer-Cinematography, Interfaces, Visual Effects, Pipelines, and Production
Learn techniques in cinematography, Interface design, visual effects, collaboration...
4633ab16-80c5-48c4-a656-564b89bf4349-cc99a1b889e3.small Developing Cloud Applications with Node.js and React
Learn how to develop and deploy web applications with JavaScript frameworks...
More from 'Coursera':
Success-from-the-start-2 First Year Teaching (Secondary Grades) - Success from the Start
Success with your students starts on Day 1. Learn from NTC's 25 years developing...
New-york-city-78181 Understanding 9/11: Why Did al Qai’da Attack America?
This course will explore the forces that led to the 9/11 attacks and the policies...
Small-icon.hover Aboriginal Worldviews and Education
This course will explore indigenous ways of knowing and how this knowledge can...
Ac-logo Analytic Combinatorics
Analytic Combinatorics teaches a calculus that enables precise quantitative...
Talk_bubble_fin2 Accountable Talk®: Conversation that Works
Designed for teachers and learners in every setting - in school and out, in...

© 2013-2019