6.046J/18.410J Introduction to Algorithms (SMA 5503, MIT OCW). This consists of 25 video lectures given by Professor
Charles Leiserson and Professor Erik Demaine, introducing the analysis and design of computer algorithms.
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.
(from ocw.mit.edu)