6.897: Advanced Data Structures (Spring'05)

Prof. Erik Demaine     TA: Mihai Patrascu

[Home] [Lectures] [Assignments] [Project] [Erik's Notes] [Accessibility]

Data structures play a central role in modern computer science. You interact with data structures much more often than with algorithms (think of Google, your mail server, and even your network routers). In addition, data structures are essential building blocks in obtaining efficient algorithms. This course will cover major results and current directions of research in data structures:


Assuming there is interest, there will be an optional problem solving session, in which we will discuss and try to solve current open problems.


The recommended prerequisite is 6.854 Advanced Algorithms. This is the entry-level graduate course in Theory/Algorithms, and it should be taken before jumping into any deeper graduate courses. However, we recognize that some highly qualified students have not yet taken 6.854 for objective reasons. Therefore, we will try to accomodate students who have only taken 6.046, and we will not rely on 6.854 material. Nonetheless, in order to use this option, you must have an excellent understanding of algorithms at the undergraduate level; such a level of understanding can be reached through an A+ in 6.046, relevant UROP, involvement in computer competitions etc.


There are three requirements (other than attending lectures):

LaTeX Help

Homework solutions, scribe notes and final projects must be typeset in LaTeX. If you are not familiar with LaTeX, there is no need to worry. A good introduction can be found here. You need to know very little to start writing problem sets in LaTeX: just skim through the mathematics section in the introduction, and download this template. In Athena, you can compile with latex and view the resulting DVI files with xdvi (this will refresh automatically when you recompile). When you're ready to submit, compile with pdflatex and send us the PDF.

Past and Future

The class is in the process of entering the MIT standard curriculum, and is expected to be offered once every two years. You can get a feeling for the course by looking at the website from Spring 2003. Note however, that that was the first offering of the course, and we plan to change several aspects of it based on past experience.