Introduction to Algorithms
MIT's foundational course on designing and analyzing efficient algorithms, taught as part of MIT's Electrical Engineering and Computer Science curriculum and cross-listed with the Singapore-MIT Alliance as SMA 5503. Lectures cover sorting, search trees, heaps, and hashing, divide-and-conquer methods, dynamic programming, amortized analysis, graph algorithms, shortest paths, and network flow, plus computational geometry, number-theoretic algorithms, polynomial and matrix calculations, caching, and parallel computing. Materials on MIT OpenCourseWare include full video lectures, problem sets, and exams with solutions, letting learners work through the same assignments given to MIT students. No enrollment or certificate is offered, but the complete set of course materials is free to use. The course builds from basic complexity analysis toward advanced graph and optimization techniques used throughout computer science and engineering practice.