MIT 6.006 - Introduction to Algorithms

Taught by Prof. Erik Demaine, Prof. Srini Devadas in Fall, 2011

Course Description

This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.

Course website
Lecture Videos (YouTube)

Lectures

  1. Algorithmic Thinking, Peak Finding
  2. Models of Computation, Document Distance
  3. Insertion Sort, Merge Sort
  4. Heaps and Heap Sort
  5. Binary Search Trees, BST Sort
  6. AVL Trees, AVL Sort
  7. Counting Sort, Radix Sort, Lower Bounds for Sorting
  8. Hashing with Chaining
  9. Table Doubling, Karp Rabin
  10. Open Addressing, Cryptographic Hashing
  11. Dijkstra
  12. Bellman-Ford
  13. Speeding up Dijkstra
  14. Dynamic Programming 1: Fibonacci, Shortest Paths