22494 Convex Optimization: Course Information


Lectures are Sundays and Tuesdays, 9:00–10:30 am, via webinar. Click here to learn more about our webinars.
Videos of all in-class lectures will be available on OCW shortly after the end of the semester, but should not be considered a substitute for coming to class. You are encouraged to attend the live webinars but the recorded videos are available here.

Office hours

Mojtaba Tefagh's office hours: Sundays, 10:30–11:30 am, via webinar.

TA office hours: The TAs will offer informal working sessions, that will also serve as their office hours, starting the second week of class. Attendance is not required.

  • Artin Tajdini: Wednesdays, 2:00–3:00 pm, via webinar

  • Parsa Mashayekhi: Tuesdays, 3:00–4:00 pm, via webinar

  • Mojtaba Zare: Mondays, 3:00–4:00 pm, via webinar

Textbook and optional references

The course materials are the same as EE364a (Stanford) and EE236b (UCLA). Specifically, the textbook and lecture slides can be found here.

Course requirements and grading

  1. Requirements:

    1. Weekly homework assignments, due each Friday 5pm, starting February 21. You are allowed, even encouraged, to work on the homework in small groups, but you must write up your own homework to hand in. Each question on the homework will be graded on a scale of {0, 1, 2}. Some assignments require you to use convex programming software such as CVX (Matlab), CVXPY (Python), Convex.jl (Julia), or CVXR (R), which we refer to as CVX*.

    2. Midterm quiz. The format is an in-class, 75 minute, closed book, closed notes midterm scheduled for Sunday April 5.

    3. Final exam. The format is a 24 hour take home, scheduled for the last week of classes, nominally Sunday June 28–29.

  2. Grading: Homework 20%, midterm 10%, final exam 70%. These weights are approximate; we reserve the right to change them later.

    1. Update. The final weights are the solution of the following linear program

\[ \begin{array}{ll} \mbox{maximize} & c^Tx + (2-a)\max(c_{Quera/Lecture}, c_{Homework}) + c_{ExtraCreditProblem}\\ \mbox{subject to} & 1^Tx = 1^T\tilde{x} \\ & \dfrac{1}{a} \leq \dfrac{x_i}{\tilde{x}_i}, \quad 1\leq i\leq 3\\ & 0 < a \leq 0.3\big(\prod_{i=1}^3 x_i\big)^{\frac{1}{3}}. \end{array} \]

Note that the coefficient \(2-a\) will never be negative, as we have:

\[ a \leq 0.3\big(\prod_{i=1}^3 x_i\big)^{\frac{1}{3}} \leq 0.3 \big(\dfrac{\sum_{i=1}^3 x_i}{3}\big) = 0.3 \big(\dfrac{\sum_{i=1}^3 \tilde{x}_i}{3}\big) = 0.3 \big(\frac{20}{3}\big) = 2 \]


Good knowledge of linear algebra (as in 22255), and exposure to probability. Exposure to numerical computing, optimization, and application fields helpful but not required; the applications will be kept basic and simple.
You will use one of CVX (Matlab), CVXPY (Python), Convex.jl (Julia), or CVXR (R), to write simple scripts, so basic familiarity with elementary programming will be required. We refer to CVX, CVXPY, Convex.jl, and CVXR collectively as CVX*.


This class has no formal quizzes. There are online quizzes on this page. These are just for fun; they are not graded and your responses are not logged.

Catalog description

Concentrates on recognizing and solving convex optimization problems that arise in applications. Convex sets, functions, and optimization problems. Basics of convex analysis. Least-squares, linear and quadratic programs, semidefinite programming, minimax, extremal volume, and other problems. Optimality conditions, duality theory, theorems of alternative, and applications. Interior-point methods. Applications to signal processing, statistics and machine learning, control and mechanical engineering, digital and analog circuit design, and finance.

Course objectives

  • to give students the tools and training to recognize convex optimization problems that arise in applications

  • to present the basic theory of such problems, concentrating on results that are useful in computation

  • to give students a thorough understanding of how such problems are solved, and some experience in solving them

  • to give students the background required to use the methods in their own research work or applications

Intended audience

More info 

This course should benefit anyone who uses or will use scientific computing or optimization in engineering or related work (e.g., machine learning, finance). More specifically, people from the following departments and fields: Mathematical Sciences (especially computer science and applied mathematics); Computer Engineering (especially areas like machine learning, robotics, computer graphics, algorithms & complexity, computational geometry); Electrical Engineering (especially areas like signal and image processing, communications, control, EDA & CAD). The course may be useful to students and researchers in several other fields as well: Computational Mathematics, Operations Research, Statistics, Economics. Please click on the image to the left for more information.