Computing and Optimization Fall 2019, Princeton University (undergraduate course)
Useful links  Blackboard
 Piazza (used only for Q&A  you should sign in to Piazza via Blackboard)
 Download MATLAB
 Download CVX
 The course syllabus (includes times/locations of office hours)
Lectures The lecture notes below summarize most of what I cover on the blackboard during class. Please complement them with your own notes. Some lectures take one class session to cover, some others take two.
 Lecture 1: Let's play two games! (Optimization, P and NP.)
[pdf], [ppt]
 Lecture 2: What you should remember from linear algebra and multivariate calculus.
[pdf]
 Lecture 3: Unconstrained optimization, least squares, optimality conditions.
[pdf]
 Lecture 4: Convex optimization I.
[pdf]
 Lecture 5: Convex optimization II.
[pdf]
 CVX: Basic examples.
[m]
 Lecture 6: Applications in statistics and machine learning: LASSO + Support vector machines (SVMs)
[pdf]
 Lecture 7: Root finding and line search. Bisection, Newton, and secant methods.
[pdf]
 Lecture 8: Gradient descent methods, analysis of steepest descent, convergence and rates of convergence, Lyapunov functions for proving convergence.
[pdf]
 Lecture 9: Multivariate Newton, quadratic convergence, Armijo stepsize rule, nonlinear least squares and the GaussNewton algorithm.
[pdf]
 Lecture 10: Conjugate direction methods, solving linear systems, Leontief economy.
[pdf]
 Lecture 11: Linear programming: applications, geometry, and the simplex algorithm.
[pdf]
 Lecture 12: Duality + robust linear programming.
[pdf]
 Lecture 13: Semidefinite programming + SDP relaxations for nonconvex optimization.
[pdf]
 Lecture 14: A working knowledge of computational complexity theory for an optimizer.
[pdf]  Lecture 15: Limits of computation + course recap.
