The primary topics in this part of the specialization are: greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, optimal search trees).
Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm.
Kruskal's MST algorithm and applications to clustering; advanced union-find (optional).
Huffman codes; introduction to dynamic programming.
Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.