Skip to main content


This is an archived course. This course is provided as a resource which you are welcome to access as you see fit, but it is not possible to earn a Statement of Accomplishment at this time. If you would like to earn a Statement of Accomplishment, a newer offering may be provided in the future on the Stanford Lagunita course listing page.

About This Course

This course concentrates on recognizing and solving convex optimization problems that arise in applications. The syllabus includes: 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.


You should have good knowledge of linear algebra and exposure to probability. Exposure to numerical computing, optimization, and application fields is helpful but not required; the applications will be kept basic and simple. You will use matlab and CVX to write simple scripts, so some basic familiarity with matlab is helpful. We will provide some basic Matlab tutorials.

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 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; Scientific Computing and Computational Mathematics. The course may be useful to students and researchers in several other fields as well: Mathematics, Statistics, Finance, Economics.

Course Staff

Stephen Boyd

Stephen P. Boyd is the Samsung Professor of Engineering, and Professor of Electrical Engineering in the Information Systems Laboratory at Stanford University. He has courtesy appointments in the Department of Management Science and Engineering and the Department of Computer Science, and is member of the Institute for Computational and Mathematical Engineering. His current research focus is on convex optimization applications in control, signal processing, and circuit design.

Henryk Blasinski

Henryk is a PhD candidate in the Electrical Engineering Department where he is a member of the VISTA Lab. His scientific interests focus on applying convex optimization and machine learning techniques to solving problems in multispectral imaging and computer vision. In his free time Henryk is an avid sailor.

Neal Parikh

Neal Parikh is a 5th year Ph.D. Candidate in Computer Science at Stanford University. He has previously taught Convex Optimization (EE 364A) at Stanford University and holds a B.A.S., summa cum laude, in Mathematics and Computer Science from the University of Pennsylvania and an M.S. in Computer Science from Stanford University.

Ernest Ryu

Ernest Ryu is a PhD candidate in Computational and Mathematical Engineering at Stanford University. He has served as a TA for EE364a at Stanford. His research interested include stochastic optimization, convex analysis, and scientific computing.

Madeleine Udell

Madeleine Udell is a PhD candidate in Computational and Mathematical Engineering at Stanford University. She has served as a TA and as an instructor for EE364a at Stanford. Her research applies convex optimization techniques to a variety of non-convex applications, including sigmoidal programming, biconvex optimization, and structured reinforcement learning problems, with applications to political science, biology, and operations research.

Frequently Asked Questions

Do we need to purchase a Matlab license to take this course?

No, you do not need to purchase a Matlab license for this course. You will be able to use Matlab under a limited license provided to you as a course participant for the duration of the CVX101 course. This license is intended to be used only for course work and not for commercial purposes. Although there are open source alternatives to CVX (the Matlab-based optimization package we use in the course) currently being developed, none of them are currently as mature as CVX and so are not being used in this version of CVX 101.

Do I get a credit or a certificate?

No, you will receive an informal Statement of Accomplishment from the instructor.

How hard is this class?

This is an advanced class, targeting MS and PhD level students in mathematically sophisticated fields.

  1. Course Number

  2. Classes Start

    Jan 21, 2014
  3. Classes End

    Mar 26, 2014
  4. Estimated Effort

    10 hours per week
  5. Price


Our Research Community

Stanford University pursues the science of learning. Online learners are important participants in that pursuit. The information we gather from your engagement with our instructional offerings makes it possible for faculty, researchers, designers and engineers to continuously improve their work and, in that process, build learning science.

By registering as an online learner, you are also participating in research...

Read Terms of Service and Privacy Policy.