6.S098: Intro to Applied Convex Optimization

  1. Overview
  2. Schedule
  3. Notes
  4. Assignments
  5. Other


Course Syllabus

Convex optimization problems appear in a huge number of applications and can be solved very efficiently, even for problems with millions of variables. However, recognizing what can be transformed into a convex optimization problem can be challenging. This course will teach you how to recognize, formulate, and solve these problems. We will briefly survey theoretical results in convex analysis, but the majority of the course will focus on formulating and solving problems that come up in practice. Applications will include signal processing, statistics & machine learning, finance, circuit design, mechanical structure design, control, power systems, and other areas based on student interest. This course is designed for advanced undergraduates and beginning graduate students.

Prerequisites: multivariable calculus (18.02), linear algebra (18.06 or 18.061), basic probability, basic programming, mathematical maturity (e.g., 6.042)

Course Objectives

After this course, you should be able to...


Textbook: Convex Optimization, by Stephen Boyd and Lieven Vandenberghe

Software: Convex.jl and convex optimization solvers.


Lectures are every Tuesday and Thursday from 1:00-2:30 PM, in 32-124. Most lectures will be taught by Theo Diamandis, but there may be a guest lecture or two.

Jan 10: Introduction to Optimization

Jan 12: Convex Analysis & Optimization

Jan 17: Convex Optimization Problems and Applications

Jan 19: Applications: Approximation, Signal Processing

Jan 24: Duality (i.e., understanding the output of your solver)

Jan 27: Duality II

Jan 31: Applications: Statistics & Machine Learning

Feb 2: Advanced Topics


I will try to post course notes before the corresponding lectures. The notes are organized by topic instead of by lecture. Please let me know if you find any typos, either on Piazza or via email (tdiamand@mit.edu).

  1. Optimization overview

  2. Convex sets and functions

  3. Convex optimization problem classes

  4. Applications: approximation, signal processing, machine learning

  5. Duality

  6. Semidefinite programming and conic programs

  7. Solvers


Problem sets

Problem sets are assigned on Thursday and due the following Thursday at 11:59pm. Each problem set will ask you to model and solve convex optimization problems that come from various application areas. You'll need to use Julia and Convex.jl for the problem sets. See instructions here.

Most homework problems will be taken from the Convex Optimization additional exercises. Data files can be found here. It's easy to load these variables with include("filename.jl").

All homework will be submitted on Gradescope. Course code: 3JBNZX


There will be an optional course project during the last week of IAP that will allow you to apply convex optimization to a problem of interest. The final product will be a short mathematical description of this problem (akin to the descriptions you see on the problem sets) and a solution. Course grading is designed such that this project can take the place of the final problem set.

Project Information



Attendance is encouraged and will reflected in your final grade. You will received 1pt for each lecture attended, up to a maximum of 6pts.

Lecture attendance form


This course is offered for 6 units of credit, and the grading is P/D/F. To receive credit, you must get 14 or more points. The main goal of this course is to learn about optimization and solve some fun problems.

Problem sets12 pts

Office Hours


Much of the material for this course comes from the following courses:

CC BY-SA 4.0 Theo Diamandis. Last modified: February 11, 2023. Website built with Franklin.jl and the Julia programming language.