Who is this class for?

This is a PhD level class in Operations Research and Information Engineering. We expect that the class will also be suitable for advanced undergraduates and for masters students with (very) strong backgrounds in linear algebra and vector calculus. The class may also be of interest to students in Computer Science; Statistics; Electrical, Mechanical, and Aerospace Engineering; Economics; Information Science; and other disciplines.

Course requirements and grading

This course uses two different grading schemas. Your final grade is the maximum of your grade according to each of the schemas. If you decide that you prefer to be graded by one or the other schema, you can simply stop doing the assignments corresponding to the other one; but nothing prevents you from doing both.

Schema I (“learning”):

  • Homework (40%): weekly (or so) homework assignments

  • Exam (50%): one final exam

  • Participation (10%): submit one question or comment on piazza after each lecture.

Schema II (“research”):

  • Homework (40%): weekly (or so) homework assignments

  • Course Project (50%): research project. includes

    • project proposal

    • midterm report

    • final report

    • poster presentation

  • Peer Grading: grade other students’ course projects. includes

    • grading 2–4 of your peers on each project milestone

  • Participation (5%): submit one question or comment on piazza after each lecture.

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

Textbooks and readings

The main textbook for the course will be Convex Optimization by Boyd and Vandenberghe.

For a refresher on linear algebra, we recommend reading Appendix A of the course textbook, Convex Optimization by Boyd and Vandenberghe.


This class will make use of convex optimization modeling languages to compute solutions to optimization problems. Students can choose to use CVX (MATLAB), Convex.jl (Julia), or cvxpy (Python).

Relation to other courses

This course is not the same as ORIE 6328, Convex Analysis. There is some overlap: both courses cover the basics of convex sets and convex functions, and some algorithms for convex optimization. Compared to ORIE 6328, this course focuses more on modeling problems as convex problems, introduces software for convex optimization, and introduces a few algorithms for convex optimization not covered in ORIE 6328.