Who is this class for: This course is primarily aimed at third- and fourth-year undergraduates interested in Artificial Intelligence, Computer Science, and Mathematics. Students are expected to have basic programming skills and a general comfort with mathematics. Knowledge of fundamental computer algorithms is helpful for following some of the optional course content.

Created by:   The University of Melbourne

  • Prof. Peter James Stuckey

    Taught by:    Prof. Peter James Stuckey, Professor

    Computing and Information Systems

  • Dr. Carleton Coffrin

    Taught by:    Dr. Carleton Coffrin, Adjunct Lecturer

    Computing and Information Systems

Commitment5 weeks of study, 5-10 hours per week. The last 2 weeks are optional.
How To PassPass all graded assignments to complete the course.
User Ratings
4.6 stars
Average User Rating 4.6See what learners said


When will I have access to the lectures and assignments?

What if I need additional time to complete the course?

What will I get if I pay for this course?

Can I take this course for free?

What is the refund policy?

Is financial aid available?

How It Works

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.


Earn official recognition for your work, and share your success with friends, colleagues, and employers.

The University of Melbourne
The University of Melbourne is an internationally recognised research intensive University with a strong tradition of excellence in teaching, research, and community engagement. Established in 1853, it is Australia's second oldest University.
Ratings and Reviews
Rated 4.6 out of 5 of 31 ratings

Great course, excellent videos and examples.

Difficult but rewarding course.

Excellent course, very practical with challenging exercises. The tools and knowledge leaned are of great use for solving hard problems. Special thanks for the team that made this online class available.

This was a very challenging, but rewarding course. The idea is fascinating, and deceptively simple: write a small number of lines of modeling code describing the properties of the output (as if you're writing a unit test), then hand it off to the solver, which comes up with the answer, as if by magic. Turns out it's relatively simple to write a correct model - the hard part is writing a model which is efficient enough to produce answers in your lifetime.

The instructor did a great job of explaining the material, including the subtleties of writing an efficient model. The homework problems were, nonetheless, quite challenging. I spent at least 20 hours on one assignment (week 3). But it felt so good when I finally got it to pass! To get there, I had to re-watch some of the lectures multiple times. This is what made the course so rewarding - and what's so great about Coursera (as opposed to the online tutorial format): it's one thing to listen to a bunch of material and get the feeling you know something, but it's quite another to actually internalize it to where you can wield what you've learned. This course excelled in that regard: I believe I have attained the ability to turn MiniZinc to my purposes.