Course Information

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):

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: