Tentative outline for algorithm curriculum (currently based on lectures from last course offering)
Course: Stanford's Algorithm: Design and Analysis, Part 1 by Tim Roughgarden
Book: The Algorithm Design Manual
- The tilde ~ means something is optional, but for the purposes of this group you should probably read/complete it.
- Exercises from the book would probably be good practice but can be considered optional; course exercises take precedence.
Asymptotic Analysis, Divide-and-conquer, Merge Sort
-
Week 1 - Introduction
-
Week 1 - Asymptotic Analysis
-
Week 1 - Divide & Conquer Algorithms
-
1 - Introduction to Algorithm Design ~
-
2 - Algorithm Analysis
-
4 - Sorting and Searching
-
Sections
-
1 - Applications of Sorting
-
2 - Pragmatics of Sorting
-
5 - Merge Sort
-
10 - Divide-and-Conquer
-
-
Master Method, QuickSort
-
Week 2 - The Master Method
-
Week 2 - Quicksort - Algorithm
-
Week 2 - Quicksort - Analysis
-
Week 2 - Probability Review ~
-
4 - Sorting and Searching
-
Sections
6 - Quicksort: Sorting by Randomization
-
Linear-Time Selection, Graphs
-
Week 3 - Linear-Time Selection
-
Week 3 - Graphs And The Contraction Algorithm
-
4 - Sorting and Searching
-
Sections
6 - Quicksort: Sorting by Randomization, again
-
-
5 - Graph Traversal
-
Sections
1 - Flavors of Graphs
2 - Data Structures for Graphs
3 - War Story: I was a Victim of Moore's Law
4 - War Story: Getting the Graph
-
Graphs
- Week 4 - Graph Search And Connectivity
- 5 - Graph Traversal
- 6 - Weighted Graph Algorithms
Graph Traversal, Heaps, Trees
-
Week 5 - Dijkstra's Shortest-Path Algorithm
-
Week 5 - Heaps
-
Week 5 - Balanced Binary Search Trees
-
5 - Graph Traversal
-
3 - Data Structures
Hashing, Bloom Filters
-
Week 6 - Hashing: The Basics
-
Week 6 - Universal Hashing
-
Week 6 - Bloom Filters
-
3 - Data Structures
-
Sections
7 - Hashing and Strings
-
-
12 - Data Structures
-
Sections
5 - Set Data Structures
-