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 EECS 16B or Math 54 is essential for understanding the material. Linear algebra at the level of Math 110 is even better, but not required.

Experience with logic and proofs equivalent to having completed CS70 (any upper division math course is certainly sufficient).

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

Readings are recommended. - weekly problem sets - 3 hours of lecture a week - 1 hour of discussion a week - 2 midterms (some semesters 1 midterm) - 1 project (some semesters, and sometimes optional) - 1 final

Time Commitment

3 hours of lecture, 1 hour of discussion, 6-20 hour problem sets each week. Problem sets swing wildly between being filled with boundless algebraic manipulation, challenging proofs, and exercises in Python notebooks.

Choosing the Course

When to take

127 can be taken anytime after you finish EECS 16B and CS70, and is recommended to be taken before CS189. However, its content remains valuable for any undergrad who has not taken Math 170.

What's next?

EE 227B, EE227C, CS189 for applications

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 highly-algebraic proof-oriented homeworks since exams are of the same flavor.

Last edited: Summer 2020