6.886 Algorithm Engineering


Graduate Level
Units: 3-0-9
Prerequisites: 6.046, 6.172
Instructor:  Prof. Julian Shun (jshun@mit.edu)
Schedule: Lectures TR2:30-4, room 1-150
This subject counts as a Computer Systems concentration subject.
This is a research-oriented course on algorithm engineering, which will cover both the theory and practice of algorithms and data structures. Students will learn about models of computation, algorithm design and analysis, and performance engineering of algorithm implementations. We will study the design and implementation of sequential, parallel, cache-efficient, external-memory, and write-efficient algorithms for fundamental problems in computing. Many of the principles of algorithm engineering will be illustrated in the context of parallel algorithms and graph problems. Students will read and present research papers, complete assignments that involve both theory and implementation, and also complete a research project. Class time will consist of lectures, student presentations, and group project meetings. This course is suitable for graduate students or advanced undergraduates who have taken 6.046 and 6.172. Mathematical maturity and familiarity with performance engineering will be assumed.