MIT OpenCourseWare
  • OCW home
  • Course List
  • about OCW
  • Help
  • Feedback
  • Support MIT OCW

6.046J Introduction to Algorithms (SMA 5503), Fall 2004

Cover of textbook, Introduction to Algorithms.
Cover of 6.046J textbook, Introduction to Algorithms, Second Edition, by Cormen, Leiserson, Rivest, and Stein. (Image courtesy of MIT Press.)

Highlights of this Course

This course features homework assignments with solutions as well as a complete set of lecture notes. In addition an extensive bibliography of assigned and recommended readings is provided in the readings section. This course features an online textbook in the readings section. The text was co-written by Prof. Leiserson.

Course Description

This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.

This course was also taught as part of the Singapore-MIT Alliance (SMA) programme as course number SMA 5503 (Analysis and Design of Algorithms).



Prof. Charles Leiserson
Prof. Piotr Indyk

Course Meeting Times

Two sessions / week
1.5 hours / session

One session / week
1 hour / session




Send feedback about OCW or this course.