EE364a: Course Information

Lectures

Lectures are Tuesdays and Thursdays, 9:30-10:45am, in Gates B1. This year EE364a will be available on SCPD. The lectures will be available (to registered students) in streaming video format a few hours after each live lecture, but you are encouraged to attend the live lectures if possible.

Several sets of videos of previous lectures are available, but should not be considered a substitute for coming to class.

MOOC

CVX101, a MOOC covering the same topics as EE364a, will run from 1/21/14 to 3/14/14. It is independent of EE364a, although you are welcome (and encouraged) to sign up for it in addition to EE364a, so you can take the on-line quizzes. (Feel free to spread word of the MOOC to your non-Stanford friends.)

Office hours

Stephen Boyd's office hours: Tuesdays 10:45am–12pm, Packard 254.

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

  • Nick: Mondays, 12pm–2pm.

  • Bowen: Tuesdays, 4pm–6pm.

  • AJ: Wednesdays, 6:30–8:30pm.

  • Yiming: Thursdays, 12pm–2pm.

  • Jaehyun: Fridays, 10am–12pm.

All TA sessions will take place in Packard 104.

Textbook and optional references

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

Several texts can serve as auxiliary or reference texts:

You won't need to consult them unless you want to.

Course requirements and grading

Requirements:

  • Weekly homework assignments. Homework will normally be assigned each Friday, and due the following Friday by 5pm in the box accross from Packard 243. 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.

  • 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%, final exam 80%.

These weights are approximate; we reserve the right to change them later.

Prerequisites

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 matlab and CVX to write simple scripts, so some basic familiarity with matlab will be required. Many good matlab tutorials are available online. The short course “CME192: Introduction to Matlab” is offered concurrently. This course is entirely optional, and will cover matlab in much greater depth than we require.

Quizzes

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. If you register for CVX101 MOOC, you'll be able to take the (simple) quizzes that follow each video segment there. (This is not required.)

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.