6.046J / 18.410J Introduction to Algorithms, Fall 2001
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
6.046J is the header course for the department's "Theoretical Computer Science" concentration. This course has virtually all of its course materials online, including complete sets of
lecture notes and
problem sets. The course textbook,
Introduction to Algorithms, Second Edition, is co-written by Professor Charles Leiserson.
6.046J is taught concurrently at MIT in the United States and as part of the Singapore-MIT Alliance (SMA) program in Singapore. All aspects of the course- lectures, recitations, problem sets, and exams- are essentially the same in the two countries.
» Participate in the online discussion group for this course.
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.