Interview-School

Stanford Algorithms Specialization

Specialization homepage https://www.coursera.org/specializations/algorithms

Courses

  1. Divide and Conquer, Sorting and Searching, and Randomized Algorithms
    1. Week 1 - Introduction; “big-oh” notation and asymptotic analysis.
    2. Week 2 - Divide-and-conquer basics; the master method for analyzing divide and conquer algorithms.
    3. Week 3 - The QuickSort algorithm and its analysis; probability review.
    4. Week 4 - Linear-time selection; graphs, cuts, and the contraction algorithm.
  2. Graph Search, Shortest Paths, and Data Structures
    1. Week 1 - Breadth-first and depth-first search; computing strong components; applications.
    2. Week 2 - Dijkstra’s shortest-path algorithm.
    3. Week 3 - Heaps; balanced binary search trees.
    4. Week 4 - Hashing; bloom filters.
  3. Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
    1. Week 1 - Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim’s MST algorithm.
    2. Week 2 - Kruskal’s MST algorithm and applications to clustering; advanced union-find (optional).
    3. Week 3 - Huffman codes; introduction to dynamic programming.
    4. Week 4 - Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.
  4. Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
    1. Week 1 - The Bellman-Ford algorithm; all-pairs shortest paths.
    2. Week 2 - NP-complete problems and exact algorithms for them.
    3. Week 3 - Approximation algorithms for NP-complete problems.
    4. Week 4 - Local search algorithms for NP-complete problems; the wider world of algorithms.