CS5968/6968 -- Techniques in Algorithms and Approximation

Course Outline

The goal of the course is to introduce some of the ideas and techniques essential for research in algorithms, with specific emphasis on approximation algorithms. The course is aimed at early graduate students and advanced undergrads with basic background in algorithm design and mathematical proofs. A rough set of topics we will cover:

  1. Convex relaxations for problems (LP and SDP), rounding, duality
  2. Spectral methods, random walks in graphs
  3. Convex optimization, gradient descent
  4. Multiplicative weight update method (and how it leads to fast, distributed algorithms)
  5. Hardness of approximation, Beyond worst case analysis

We will also discuss other aspects we care about in algorithm design, like robustness to noise (in the data) and parallelizability. In short, the goal is to give a taste of the various beautiful techniques in the area, and bring students to a level where they can easily follow and contribute to research in algorithms.


There are no formal prerequisites, but students are expected to have a good grasp of the basic concepts in probability, linear algebra, and graph theory. They should also be comfortable with mathematical proofs and basic algorithm design.


Time          :    2:00pm-3:20pm, Tuesday and Thursday

Location    :    WEB L122


Mid-term: we will have the course mid-term during regular class on Tuesday, March 8th, 2016. Here are some practice problems. Here is the midterm with solutions.

Final: the course final will be on Tuesday, May 3, 2016, from 2-3:30PM. Here are some practice problems.

Instructor and Office Hours

Class Schedule, Notes

There is no single textbook for the course, so the lecture slides and notes will be posted here, and will be the main references.


Homework 1 (Due January 28, 11:59PM)
Homework 2 (Due February 4, 11:59PM)
Homework 3 (Due February 26, 11:59PM)
(Some of the problems will be non-graded, meant mostly for understanding the material.)

References/Additional Material

Apart from the lecture notes, the following references (books, links to other course notes, etc) could be useful for interested students. If you find references I may have missed, please let me know.

Books and Surveys:

Writing assignment:

Here are some interesting results in algorithms (biased towards topics we covered in class). Some are more technical than the others. The goal is to pick up one of the papers, and write a two-page summary on it. The goal is to learn how to summarize the essential ideas from a research paper. Make sure you mention (a) the main motivation, (b) the result, (c) key ideas in the proof, and (d) a rough description of the technical details.


The homeworks will account for 50% of the grade. The midterm and final will be 20% each. The remaining 10% will be based on a reading assignment, where the goal is to read a research paper and write a clear, two-page summary (or alternately give a 15 minute presentation).