EE364a: Course Information


Lectures are Tuesdays and Thursdays, 9:00–10:20am, in NVIDIA Auditorium.

Office hours

Stephen Boyd's office hours: Tuesdays 10:20–11:50am, Packard 174.

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. Office hours marked with an asterisk will support SCPD. See Piazza for details.

  • Reese*: Monday 9am-11am, Gates 100 (Join Zoom with code 841-477-5846.)

  • Mojtaba: Monday 1:30pm-3:30pm, 260-003

  • Nitya: Monday 3:30pm-5:30pm, GESB150

  • Joan: Tuesday 1pm-3pm, Gates 100

  • Logan: Tuesday 3pm-5pm, 160-317

  • Shane: Wednesday 2pm-4pm, 460-301

  • Jongho: Thursday 1pm-3pm, Gates 100

  • John D.: Thursday 3pm-5pm, 300-303

  • Sahaj: Thursday 5pm-7pm, 260-007

  • Steven*: Thursday 5pm-7pm, SCPD only on Zoom with code 894-544-3414.

  • John S.: Friday 10:30am-12:30pm, Hewlett 103

  • Steven: Friday 1pm-3pm, Hewlett 103

Textbook and optional references

The textbook is Convex Optimization, available online, or in hard copy form at the Stanford Bookstore.

Course requirements and grading


  • Weekly homework assignments, due each Friday 5pm, starting January 18. 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. Homework will be graded on a scale of 0–4.

  • Midterm quiz. The format is an in-class, 75 minute, closed book, closed notes midterm scheduled for Thursday January 24.

  • Final exam. The format is a 24 hour take home, scheduled for the last week of classes, nominally Friday March 15–16. We will have a few alternate times before the official date and time.

Grading: 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 CVX (Matlab), CVXPY (Python), or Convex.jl (Julia), to write simple scripts, so basic familiarity with elementary programming will be required. We refer to CVX, CVXPY, and Convex.jl collectively as CVX*.


This class has no formal quizzes. There are on-line quizzes on the lecture slides 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

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.