Week 1 (May 5-11)
Topics
- Introduction
- Merge Sort
- Asymptotic Notation
- Guiding Principles of Algorithm Analysis
- Divide & Conquer Algorithms
|
Homework
-
Due May 18:
- Problem Set #1: Divide & Conquer / Asymptotic Analysis
- Programming Assignment #1: Counting Inversions!
|
Suggested Readings:
- CLRS: Chapter 2, 3, and 4 (through Section 4.2), and Sections 28.1 and 33.4
- DPV: Sections 0.3, 2.1, 2.3, 2.5
- KT: Sections 2.1, 2.2, 2.4, 5.1, and 5.3-5.5
- SW: Sections 1.4 and 2.2
|
Week 2 (May 12-18)
Topics
|
Homework
-
Due May 25:
- Problem Set #2: QuickSort and the Master Method
- Programming Assignment #2: Counting Comparisons in QuickSort
|
Suggested Readings:
- CLRS Chapter 4 (Sections 4-6) and Chapter 7
- DPV Section 2.2
- KT Sections 5.2 and 13.5
- SW Section 2.3
|
Week 3 (May 19-25)
Topics
- Final Thoughts on Sorting & Searching
- Introduction to Graph Algorithms : Graph Representations & Mininum Cuts in Graphs
|
Homework
- Due June 1
- Problem Set #3: Randomized Selection & Minimum Cuts in Graphs
- Programming Assignment #3: Karger's Minimum Cut Algorithm
|
Suggested Readings:
- CLRS Chapter 9, 22 (Only 22.1)
- DPV Chapter 3 (only 3.1)
- KT Chapter 13, Sections 13.2,13.5
- SW Chapter 4, Section 4.1
|
Week 4 (May 26-June 1)
Topics
- Graph Search: Breadth-First Search, Depth-First Search
- Applications: Topological Sort, Connected Components
|
Homework
- Due June 8
- Problem Set #4: Graphs, BFS, DFS, Topological Sort
- Programming Assignment #4: Computing SCCs
|
Suggested Readings:
- CLRS Chapter 22
- DPV Chapter 3
- KT Chapter 3, Section 3.5, 3.6
- SW Chapter 4, Section 4.1,4.2
|
Week 5 (June 2-June 8)
Topics
-
Dijkstra's Shortest-Path Algorithm
- Data structures and how to use them
- Heaps
- Binary Search Trees
- Balanced BSTs
|
Homework
- Due June 15
- Problem Set #5: Dijkstra, Heaps, Search Trees
- Programming Assignment #5: Dijkstra's Algorithm
|
Suggested Readings:
- CLRS Chapter 6,11,12,13 24 (Sections 3,4)
-
DPV Section 1.5
- KT Section 4.4
- SW Section 3.3, 3.4, 4.4
|
Week 6 (June 9-15)
Topics
-
Hash Tables: Applications and Implementation
- Bloom Filters
|
Homework
- Due June 22
- Problem Set #6: Hashing, Bloom Filters
- Programming Assignment #6: Data Structure Applications
|
Suggested Readings:
- CLRS Chapter 11
- KT Chapter 13 (Section 13.6)
- SW Section 3.5
|
Final Exam (June 16-29)
|