Carnegie Mellon University

Electrical and Computer Engineering

College of Engineering

Course Information

18-660: Optimization




Many design problems in engineering (e.g., machine learning, finance, circuit design, etc.) involve minimizing (or maximizing) a cost (or reward) function. However, solving these problems analytically is often challenging. Optimization is the study of algorithms and theory for numerically solving such problems, and it underpins many of the technologies we use today.

This course is an introduction to optimization. Students will: (1) learn about common classes of optimization problems, (2) study (and implement) algorithms for solving them, and (3) gain hands-on experience with standard optimization tools. We will focus on convex optimization problems, but will also discuss the growing role of non-convex optimization, as well as some more general numerical methods. The course will emphasize connections to real-world applications including machine learning, networking, and finance. The course will involve lectures, homework, exams, and a project.

This course is crosslisted with 18-460. ECE graduate students will be prioritized for 18-660, and ECE undergraduate students will be prioritized for 18-460. Although students in 18-460 will share lectures with students in 18-660, students in 18-460 will receive distinct homework assignments, distinct design problems, and distinct exams from the ones given to students in 18-660. Specifically, the homework assignments, design problems and exams that are given to the 18-660 students will be more challenging than those given to the 18-460 students.

Prerequisites: 18-202 and 21241 and 36217 OR equivalent background material with permission of the instructor.

Last Modified: 2022-11-16 11:42AM

Semesters offered:

  • Spring 2023
  • Spring 2022
  • Spring 2021
  • Spring 2019
  • Spring 2018
  • Fall 2016
  • Fall 2015
  • Fall 2014
  • Fall 2013
  • Fall 2012
  • Fall 2011
  • Fall 2010
  • Fall 2009