Electrical Engineering 127 — Optimization Models in Engineering (4 Units)

Note: EE127 is now EECS127.

Course Overview


This course covers linear-algebra-based optimization and convex optimization. The emphasis is on problem formulation and recognizing classes of different optimization problems (e.g. linear programming, semidefinite programming). The course does not emphasize algorithms. Instead, the CVX software package is used extensively in the course to computationally solve problems.


Linear algebra at the level of Math 54 is essential for understanding the material. Linear algebra at the level of Math 110 is even better.

Topics Covered

  • Linear algebra relevant for optimization
    • Linear equations
    • SVD
    • Least-squares
  • Convex models
    • Convex optimization
    • Linear programming (LP)
    • Quadratic programming (QP)
    • Second-order cone programming (SOCP)
    • Robust linear programming
    • Geometric programming (GP)
    • Semidefinite programming (SDP)
  • Duality: weak and strong


Course Work

Topics are not as conceptually difficult as other classes. Readings are recommended.

Time Commitment

At the time of writing, the course has two two-hours lectures per week and one one-hour section per week.

There are bi-weekly non-computational, proof-oriented problem sets. These are usually pretty long, so it is recommended you keep up with them.

Choosing the Course

When to take

This is the only undergraduate course in the EECS department that focuses on optimization. This course is crucial mainly for those who intend on working on problems that extensively use optimization.

What's next?

EE 227B, EE 227C

Usefulness for Research or Internships

This course can be useful for research or internship positions in machine learning and AI.

Additional Comments/Tips

This course covers a variety of "easy" (i.e. computationally efficient to solve) optimization problems which arise in many fields. Although there isn't an emphasis on algorithms in this course, we do use available software (CVX) to computationally solve convex optimization problems. The idea is that after taking the course, students are able to use existing optimization software packages to solve a variety of optimization problems. Moreover, this course provides a great foundation for those interested in more advanced topics in optimization.

Duality is mind-blowing.

Keep up with the homeworks, especially the non-computational, proof-oriented homeworks since exams are of the same flavor.

Last edited: Fall 2017