EE364a: Convex Optimization I

Stanford University, Summer Quarter 2018
Instructor: Reese Pathak


Lectures are Tuesdays and Thursdays, 9:30-11:20am, in Gates B3.

This summer, lectures are being recorded and will become available online, a few hours after each lecture. Additionally, videos of lectures from previous offerings of this course are available, though you're certainly encouraged to come to lecture to hear a different persepctive on the material. There is no gaurantee that the emphasis or pacing of this offering of EE364a will be the same as any previous offerings.

Office hours

The instructor and the course assistants will provide weekly office hours.

  • Reese Pathak: Fridays, 9:00-10:00am, Packard 104.

  • Ruiyang Song: Tuesdays, 4-6pm, Packard 107.

  • Mojtaba Tefagh: Thursdays, 4-6pm, Packard 109.

  • Nitya Mani: Wednesdays, 8:10-10:10am, STLC 118.

  • Qijia Jiang: Fridays, 4:30-6:30pm, Packard 104.


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

Course requirements and grading


  • Homework. Homework will be assigned every Friday, due the following Friday by 5pm on-line. The purpose of the homework is to give you an opportunity to think about the material presented in lecture. They also will prepare you for the final exam. You are encouraged to work on the homework in groups, though you must prepare and submit your solutions independently. Homework will be graded extremely coarsely, on a scale of 0–4.

  • Midterm quiz. There will be one quiz on the mathematics of convex optimization developed in the first few weeks of the course. It is scheduled for the first hour of lecture on 7/12.

  • Final exam. The format is a 24 hour take home, scheduled for the last week of classes, but we will accommodate your schedule if you can't take it at that time.

Grading: Homework 20%, midterm quiz 30%, final exam 50%. (This is subject to change.)


Knowledge of linear algebra at the level of EE263 is essential. Any prior exposure to probability, analysis, numerical computing, optimization, and application fields is helpful, but certainly not required.

You must also be proficient in basic programming. You will use either MATLAB, Python, or Julia to solve convex programs numerically in this course. A good way to gauge your readiness for this aspect of the course is to attempt the first two homeworks and discuss with course staff as necessary.

Online quizzes

The quizzes available on the lecture slides page are just for fun; they are not graded and your responses are not logged. We encourage you to take a look at these after the corresponding lectures to see if you've understood what was convered in class.

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.