6.5060 | Spring 2023 | Graduate

Algorithm Engineering

Course Description

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 …
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.
Learning Resource Types
Readings
Lecture Notes
Multiple graphs. First graph is algorithm families discovered by decade. Second is percentage of families improved per decade. Third is percentage of algorithms by time complexity. Fourth is diagram showing yearly probability of algorithm changing complexity.
Graphs like these explore algorithm discovery and improvement such as the number of new algorithm families discovered by decade, improvements to algorithm families, and complexity classes of discovered algorithms. (Image courtesy of Sherry and Thompson. License: CC BY.)