EE364a: Convex Optimization I

EE364a is the same as CME364a.


  • We've updated the information about the midterm quiz and final exam below, and have posted the 2019 midterm with solutions for practice.

  • The first lecture will be Tuesday January 4, 9:45–11:15am. Unfortunately, the first two weeks of lectures will be online. When we do meet in person, it will be in Gates B1.

  • Please fill out the questionaire you will find in homework 0 on the homework page.

  • If you're looking for something to do before class starts, you could read Chapter 1 of the textbook. If you're really antsy, you could start reading Chapter 2, and take a look at Homework 1, which is now posted.

  • The course will be on SCPD, so videos of the lectures will be available to enrolled students, with details below.

  • Welcome to EE364a, Winter quarter 2022.


Professor Stephen Boyd. Office hours: Tuesdays 11:15am–12:30pm, Packard 254. Link for Zoom office hours for the first two weeks is available on the calendar in Canvas.

Teaching assistants

  • Emi Soroka

  • Eric Luxenberg

  • Aneesh Pappu

  • Willie Aboumrad

  • Daria Reshetova

Office hours:

  • Mondays, 10am–12pm, Packard 036 (basement), Daria

  • Mondays, 5–7pm, Packard 204, Eric

  • Tuesdays, 4–6pm, remote, Aneesh

  • Wednesdays, 5–7pm, Packard 036 (basement), Eric

  • Thursdays, 2–4pm, remote, Willie

  • Thursdays, 4–6pm, remote, Aneesh

  • Fridays, 9–11am, Packard 204, Emi

  • Fridays, 11am–1pm, Packard 036 (basement), Daria

SCPD Office Hours:

  • Mondays, 5–7pm, Willie

  • Wednesdays, 7:30–9:30pm, Emi

For the first two weeks, office hours will be online. Links for Zoom office hours are available on the calendar in Canvas.


Lectures are Tuesdays and Thursdays, 9:45–11:15am, in Gates B1. Videos of lectures will appear in Panopto on Canvas. You can watch the lectures live using via Zoom using the link on the calendar in Canvas. If you're not an enrolled student, you can watch videos from earlier years at Stanford Engineering Everywhere or YouTube.

Contacting us

We will host the discussion forum in Ed. You can also contact the course staff at the staff email address. (Please do not use the Instructor's or the TAs’ direct email addresses for matters related to the course.)


The textbook is Convex Optimization, available online, or in hard copy from your favorite book store.


  • Weekly homework assignments, due each Friday at midnight, starting the second week. We will use Gradescope. Late homework will not be accepted. 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}.

  • Midterm quiz. The format is a timed 75 minute exam, during the 4th week. You can take it during any 75 minute period between 11:30am Thursday 1/27 and 5pm Saturday 1/29. The midterm quiz covers chapters 1–3, and the concept of disciplined convex programming (DCP). Here's the 2019 midterm with solutions for practice.

  • Final exam. The format is a 24 hour take home exam, scheduled for the last week of classes. You can take it during any 24 hour period between 9am Wednesday 3/9 and 5pm Sunday 3/13. We can arrange for you take it earlier (as a beta tester, and only if you really need to) but not later.


Homework 20%, midterm 15%, final exam 65%. These weights are approximate; we reserve the right to change them later.


Good knowledge of linear algebra (as in EE263), 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 CVXPY (Python) or Convex.jl (Julia) to write simple scripts, so basic familiarity with elementary programming is required. You could also use CVX (Matlab), or CVXR (R), but we won't be supporting these. We refer to CVXPY, Convex.jl, CVX, and CVXR collectively as CVX*.

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.


  • 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

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: Electrical Engineering (especially areas like signal and image processing, communications, control, EDA & CAD); Aero & Astro (control, navigation, design), Mechanical & Civil Engineering (especially robotics, control, structural analysis, optimization, design); Computer Science (especially machine learning, robotics, computer graphics, algorithms & complexity, computational geometry); Operations Research (MS&E at Stanford); Scientific Computing and Computational Mathematics. The course may be useful to students and researchers in several other fields as well: Mathematics, Statistics, Finance, Economics.