- 2 reviews
- 2 completed
All other optimization MOOC I've seen focus mostly on Linear and Integer Programming. This course, however, explores a wider range of topics, starting with basics like Dynamic Programming and Branch'n'Bound, and then proceeding with in-depth coverage of Constraint Programming, Local Search and Integer Programming. The approach of this course is 'learn by doing': students get instances of optimization problems and should solve them with whatever methods they've learned. Such approach results in unique learning experience, when students discover the nature of optimization by applying different methods to the same problem instances. As a result, after finishing this class students have very good intuition about pros and cons of different optimization methods and are very confident in their ability to solve real-world optimization problem. I would highly recommend this course to everyone, just to get the feeling of how exciting and addictive a MOOC can be. Even if you're not currently interested in discrete optimization, halfway into the course you are likely to loose your sleep over thinking of how to optimally solve Travelling Salesman Problem with 33810 cities or optimally color a huge random graph. This course is particularly recommended to those, who took Tim Roughgarden's "Algorithms: Design and Analysis, Part 2". I'm sure you guys are curious to know, how NP-complete problems are dealt with in practice.
If you want to become a polyglot programmer, this course is a very good place to start. It will teach you the basic concepts in programming language design, making them very clear to you by using appropriate language for each conecpt.