Week 1
- Welcome and procedural stuff
- Hashing: Bucket Sorting and Hashing
- Hashing: Collision resolution techniques
- Recitation 1: Grading and Testing your Code
- Complexity of algorithms
- No class -- Independence Day (July 4 - 1)
Week 2
- DP: Dynamic Programming and Memoization -- Introduction
- DP: Classic problems: Knapsack, chain multiplication, LCS, string reconstruction
- DP: Continued
- Reinforcement/Slack
- Exam #1
Week 3
- Sorting: Quadratic sorts, Quicksort
- Sorting: Binary Heaps and Heap sort, Binomial Heaps
- Sorting: Radix sort, Search Trees
- Sorting: AVL and Splay Trees
- Sorting: B-Trees, Tries, Extensible Hashing
Week 4
- Compression: Huffman coding
- Compression: String compression, LZW compression
- Finite Automaton
- Reinforcement/Slack
- Exam #2
Week 5
- String Matching: Knuth-Morris-Prat
- String Matching: Aho-Corasick, Rabin-Karp
- Graphs: Representation and Traversals
- Graphs: Greedy Algorithms and Shortest Path
- Graphs: Spanning Trees, Minimum Spanning Trees
Week 6
- Graphs: Cycle Detection with Union-Find, more Minimum Spanning Trees
- Graphs: Bellman-Ford, Floyd-Warshall
- Computability
- Slack/Review/Spare
- Exam #3
|