CS 159: Data-Driven Algorithm Design

Spring 2020

What is Data-Driven Algorithm Design?

Over the past several years, machine learning is increasingly used to (semi-)automatically design algorithms for various optimization problems. Canonical examples include:

Like all of machine learning, one requires data in order to learn well. There are two ways to obtain such data:

  • One can have pre-collected problem instances to learn from, and assume that future test instances are well-represented by the training instances.

  • One can learn "on-the-fly" on a new problem instance.

  • A mix of the two.

The goal of this course is to familiarize students how to use machine learning to aid in automated algorithm design. Students will read and discuss recent research papers, as well as conduct a research project.

Course Description


  • Blog post: 20%

    • Due April 24th

  • Final Project (Report & Presentation): 80%

    • Proposal Due May 1st

    • Presentations on June 3rd-5th

    • Project Report Due

      • June 6th for groups containing graduate students or graduating seniors

      • June 13th for groups containing only non-graduating undergraduates


  • CS 155 or CS 165 or Permission From Instructor.

Teaching Staff