Parallel and Sequential Data Structures and Algorithms


We are moving all the content for this course to Diderot. The syllabus and library tabs above might be out of date. Instead you should go to the Diderot versions.

The main course page is only accessible to students in the class, but there is also a public version with a subset of the material available on the main page and accessible to all.

Course Calendar


15-210 aims to teach methods for designing, analyzing, and programming sequential and parallel algorithms and data structures. The emphasis is on teaching fundamental concepts applicable across a wide variety of problem domains, and transferable across a reasonably broad set of programming languages and computer architectures. This course also includes a significant programming component in which students will program concrete examples from domains such as engineering, scientific computing, graphics, data mining, and information retrieval (web search).

Unlike a traditional introduction to algorithms and data structures, this course puts an emphasis on parallel thinking — i.e., thinking about how algorithms can do multiple things at once instead of one at a time. The course follows up on material learned in 15-122 and 15-150 but goes into significantly more depth on algorithmic issues. Concepts covered in this class include: