The schedule is tentative and subject to change (e.g., snow days).
You can try the Jupyter notebooks in your browser here. You can make changes and run the code in the browser. The changes will not be saved, when you hit refresh all the changes will be gone.
Lecture  Topic  Annotated Slides  Other  

Lecture 1 (1/22/20)  Course overview and introduction. Linear classification and the Perceptron algorithm  Lecture 1  
Lecture 2 (1/27/20)  Review of concepts from linear algebra  Lecture 2  Jupyter notebook  
Lecture 3 (1/29/20)  Review of concepts from multivariate calculus 
Lecture 3  
Lectures 4, 5 (2/3/20, 2/5/20)  Convex functions and sets 
Lectures 4,5  
Lectures 6, 7 (2/10/20, 2/12/20)  Introduction to optimization. Examples of discrete and continuous optimization problems: classification and learning problems (least squares, LASSO, SVM), maximum flows and minimum cuts, maximum cut, minimum independent set

Lectures 6,7  Jupyter notebook  
Lectures 8, 9 (2/18/20, 2/19/20)  Optimality conditions for general and convex problems 
Lectures 8,9  
Lectures 10, 11 (2/24/20, 2/26/20)  Oracle models, iterative methods, and gradient descent 
Lectures 10,11  
Lecture 12 (3/2/20 )  Gradient descent for smooth and strongly convex functions 
Lecture 12  
Lectures 13, 14 (3/4/20, 3/16/20)  Prediction using expert advice: majority algorithms, multiplicative weights update algorithm 
Lectures 13,14  
Lecture 15 (3/18/20)  Applications of multiplicative weights update framework 
Lecture 15  
Lecture 16 (3/23/20)  Midterm exam (take home exam, lecture cancelled) 

Lecture 17 (3/25/20)  Online optimization and learning, follow the leader algorithm for online convex optimization 
Lecture 17  
Lecture 18 (3/30/20)  Online convex optimization continued: follow the regularized leader, online gradient descent. Introduction to linear programming. 
Lecture 18  
Lecture 19 (4/1/20)  Modeling using LPs, LP duality 
Lecture 19  
Lecture 20 (4/6/20)  Applications of duality I: 2player games, Nash equilibria, minimax theorem 
Lecture 20  
Lectures 21, 22 (4/8/20, 4/13/20)  Applications of duality II: minimax theorem, boosting theorem, maxflowmincut theorem 
Lecture 21, 22  
Lectures 23, 24 (4/15/20, 4/22/20)  Maximum flows and minimum cuts in networks (guest lectures by Adrian Vladu) 
Lecture 23, Lecture 24  
Lecture 25 (4/27/20)  Course recap 
Lecture 25  
Lecture 26 (4/29/20)  Midterm exam (takehome exam, lecture cancelled) 
Acknowledgments: Many pictures used in the lecture slides are courtesy of Google Images and their respective authors. I am indebted to my colleagues at other institutions for some of the material in the lectures. In particular, Amir Ali Ahmadi's course at Princeton has been a great source of inspiration and material.
Homeworks are released on Wednesday before class, and are due in two weeks on Wednesday at midnight. Expect a homework every two weeks except for the midterm exam week.