Advanced Algorithms (COMS W4995-3, Spring'17)


See the Course Information Sheet here.

Administrivia:


Instructor: Alex Andoni. http://www.mit.edu/~andoni/
Time: MW 2:40 - 3:55pm.
Location: Zankel 408, in Teacher's College (enter Teacher's college on the north side of the 120th St, and proceed to the 4th floor).
Office hours: Mon 4:15-6:15pm.

Teaching assistants (see course information sheet for emails):
  • Erik Waingarten, OH: Wednesday 10am-12pm in CSB 464;
  • Peilin Zhong, OH: Tuesday 2-4pm in CS TA room;
  • Rex Lei, OH: Tuesday 10am-12pm in CS TA room.

Description:


We will cover classic and modern algorithmic ideas that are central to many areas of Computer Science. The focus is on most powerful paradigms and techniques of how to design algorithms, and measure their efficiency. The topics will include hashing, sketching, dimension reduction, linear programming, spectral graph theory, gradient descent, multiplicative weights, compressed sensing, and others.

The class is designed to be an “grad intro to algorithms” class, and thus a more advanced version of “Analysis of Algorithms” (COMS 4231). It is
suitable for those of you who have seen some algorithms class (like 4231), and/or want to follow-up with a more in-depth algorithms class. The evaluation is based on homeworks and a final project (reading, implementation, or original research).

The class satisfies the track electives for Theory (Foundations) and ML tracks.

Prerequisites:


Mathematical maturity is a must: the class is based on theoretical ideas and is proof-heavy. You are expected to be able to read and write formal mathematical proofs.
Some familiarity with algorithms and randomness will be assumed as well. COMS 4231 (Analysis of Algorithms) or equivalent is highly recommended, but not required if you have solid math background.

Tentative list of topics:


Hashing, sketching (sublinear space), dimension reduction, linear programming, spectral graph theory, gradient descent, multiplicative weights, compressed sensing, and others. Some related classes include:



Grading:


Grading will be based on 5 problem sets (55%), scribing one lecture (10%), and a final project (35%).

Homeworks: 5 in total (roughly once in 2 weeks). You can collaborate on homeworks. In this case, you have to: 1) write your own solutions, independently, 2) write clearly all the persons you have collaborated with. There will also be an automatic extension policy. All submissions are via CourseWorks.

The final projects can be of three types:
  • Reading-based: read research papers on a topic and summarize them;
  • Implementation-based: implement some of the algorithms from the class (or from other theoretical literature), and perhaps apply if your area of interest/expertise; apply on real-world datasets;
  • Research-based: investigate a research topic on your own (eg, develop an algorithm, and prove its properties).