AM 221 : Advanced Optimization


The goal of this course is to provide strong foundations for students interested in the manipulation of data, broadly defined. In particular, this course is highly recommended for students who are interested in machine learning, algorithms, data-mining, mathematical finance, and microeconomics.


This will be a mathematically rigorous course. Basic knowledge in linear algebra and competency with calculus are required (e.g. Math 23a or Math 25a and Math 25b) as well as basic probability (Stat 110). AM 121 is certainly helpful but is not a necessary prerequisite. An appreciation for aesthetics, as well as prior coursework in algorithms, machine learning, and statistics will be helpful but not necessary. There will be some simple programming exercises (CS 50 and comfort with programming in a scripting language suffice). The course is intended for graduate students, but advanced undergraduates are encouraged to attend as well.


Half of the course grade will be determined by the performance on the problem sets, and half determined by the final project. There will be weekly problem sets, and the performance on the problem sets will be the average score of the best ten problem sets, submitted in compliance with the submission policy. The project can be data-oriented or theoretically-focused, or (better) a combination of both. There is room for projects involving algorithms, data mining, machine learning, game theory and mechanism design, and statistics.

Course Outline


Linear Optimization

Convex Optimization

Combinatorial Optimization


The class is self contained, and will not follow a specific book. The material of the course is largely covered in the following textbooks:

In addition, we also recommend consulting these textbooks: