MIT OpenCourseWare
Introduction to Algorithms
Art: not stated, Fletcher's Combined Block Telegraph Apparatus and Bell, 1889 · Public domain
- Instructors
- Prof. Erik Demaine, Prof. Ronald Rivest, Prof. Srini Devadas
- Term
- Spring 2008
- Level
- Undergraduate
- What's inside
- 19 problem sets · 2 exams · 3 solutions · 1 lecture note · 1 reading · 65 other files · 6 web pages
- Materials open
- MIT OCW
Other versions of this course
- 6.006 · Spring 2020 · Study here
- 6.006 · Fall 2011 · Study here
- 6.006 · Spring 2008 · Study here (this version)
About this course
Source: MIT OpenCourseWare 6.006 Introduction to Algorithms, Spring 2008, Prof. Erik Demaine, Prof. Ronald Rivest, Prof. Srini Devadas — original course page on ocw.mit.edu ↗. License: CC BY-NC-SA 4.0. Study order: none is claimed; materials are grouped by MIT's own sections. Taken from MIT's published course files, downloaded from ocw.mit.edu on September 23, 2026. How RedLectern is built.
Materials are grouped the way MIT organized them. A verified, course-wide order has not been established here.
Has MIT solutions
Before you start
Prerequisites are not listed here. Check MIT's own syllabus for this course.
How this course was organized
What's here, and what isn't
- MIT lists a session calendar for this course, but it could not be verified well enough to build a sequence from it — materials are grouped by section instead.
Not included here
16 items from the source could not be safely included:
- MIT's page format for this item wasn't recognized clearly enough to place it safely. (15 items)
- Referenced in a table, but without MIT's own verified order, so it isn't used to claim a sequence.
Materials by section
Grouped by section, as MIT organized them. Not sequenced or ordered.
Lecture Notes
27 files
- Lecture 1: Introduction and the Document Distance Problem Download
- Lecture 2: More on the Document Distance Problem Download
- Lecture 3: Scheduling and Binary Search Trees Download
- Lecture 4: Balanced Binary Search Trees Download
- Lecture 5: Hashing I: Chaining, Hash Functions Download
- Lecture 6: Hashing II: Table Doubling, Karp-Rabin Download
- Lecture 7: Hashing III: Open Addressing Download
- Lecture 8: Sorting I: Heaps Download
- Lecture 9: Sorting II: Heaps Download
- Lecture 10: Sorting III: Linear Bounds Linear-Time Sorting Download
- Lecture 11: Sorting IV: Stable Sorting, Radix Sort Download
- Lecture 12: Searching I: Graph Search and Representations Download
- Lecture 13: Searching II: Breadth-First Search and Depth-First Search Download
- Lecture 14: Searching III: Toplogical Sort and NP-completeness Download
- Lecture 15: Shortest Paths I: Intro Download
- Lecture 16: Shortest Paths II: Bellman-Ford Download
- Lecture 17: Shortest Paths III -Dijkstra and Special Cases Download
- Lecture 18: Shortest Paths IV - Speeding up Dijkstra Download
- Lecture 19: Dynamic Programming I: Memoization, Fibonacci, Crazy Eights, Guessing Download
- Lecture 20: Dynamic Programming II: Longest Common Subsequence, Parent Pointers Download
- Lecture 21: Dynamic Programming III: Text Justication, Parenthesization, Knapsack, Pseudopolynomial Time, Tetris Training Download
- Lecture 22: Dynamic Programming IV: Piano Fingering, Structural DP (Trees), Vertex Cover, Dominating Set, Beyond Download
- Lecture 23: Numerics I Download
- Lecture 24: Numerics II Download
- Lecture 25: Beyond 6.006: Follow-on Classes, Geometric Folding Algorithms Download
- Simple Python code for graphs Download
- Numerics Demo Download
Recitations
26 files
- Matrix chain multiplication Download
- Longest zig-zag subsequence Download
- Zipped data (numbers) Download
- Recitation 1 Download
- Recitation 2 Download
- Recitation 3 Download
- Recitation 4 Download
- Recitation 5 Download
- Recitation 6 Download
- Recitation 7 Download
- Recitation 8 Download
- Recitation 9 Download
- Recitation 11 Download
- Recitation 12 Download
- Recitation 14 Download
- Recitation 16 Download
- Recitation 17 Download
- Recitation 18 Download
- Recitation 23 Download
- Code for binary search trees Download
- Code for AVL trees Download
- Mutable dictionary keys Download
- Rolling hash code Download
- Open addressing code Download
- Code for breadth-first search Download
- Code for depth-first search Download
Assignments
30 files
- Code for Problem set 6 Download
- Problem set 1 Download
- Problem set 1 LaTeX file Download
- Problem set 1 template Download
- Problem set 2 Download
- Problem set 2 LaTeX file Download
- Problem set 2 template Download
- Problem set 3 Download
- Problem set 3 LaTeX file Download
- Problem set 3 template Download
- Problem set 4 Download
- Problem set 4 LaTex file Download
- Problem set 4 template Download
- Problem set 5 Download
- Problem set 5 LaTeX file Download
- Problem set 5 template Download
- Problem set 6 Download
- Problem set 6 LaTeX file Download
- Problem set 6 template Download
- Document distance code Download
- Binary search trees code Download
- Substring code Download
- Gas simulation code Download
- Heap code Download
- Rubik's Cube code Download
- Dijkstra code Download
- Change code Download
- Fibonacci code Download
- Image resizing code Download
- Progress code Download
Exams
MIT OpenCourseWare, Prof. Erik Demaine, Prof. Ronald Rivest, Prof. Srini Devadas, 6.006 Introduction to Algorithms, Spring 2008.
License: CC BY-NC-SA 4.0 · Edition: Spring 2008 · Open the original course on OCW ↗
Organized by RedLectern, independent of MIT and not endorsed by MIT.
Per-resource rights are recorded on each resource; All-Rights-Reserved items are link-only, never mirrored.
