General Lecture Information
- For the first three weeks, lectures will be held live on Zoom. The Zoom links can be found on Canvas. For the rest of the quarter, lectures will be held in person in the NVIDIA Auditorium.
- Lectures will be recorded and the recordings can be accessed on Canvas.
Lectures
Lecture 1: Why are you here?
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
Recording
- Video: [Canvas]
Lecture 2: Asymptotics, Worst-Case Analysis, and MergeSort
Pre-lecture resources
Lecture resources
- Lecture notes: [PDF]
- Handout: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions on asymptotics: [Interactive SVG] [Solved PDF]
- Concept check questions on sorting: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 2.3, 3
Recording
- Video: [Canvas]
Lecture 3: Solving Recurrences and the Master Theorem
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 4.3, 4.4, 4.5
Recording
- Video: [Canvas]
Lecture 4: Median and Selection
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 9
Recording
- Video: [Canvas]
Lecture 5: Randomized Algorithms and QuickSort
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 5.1, 5.2, 5.3, 7
Recording
- Video: [Canvas]
Lecture 6: BucketSort and Lower Bounds for Sorting
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 8.1, 8.2, [Avrim Blum’s notes on sorting lower bounds]
Recording
- Video: [Canvas]
Lecture 7: Binary Search Trees and Red-Black Trees
Pre-lecture resources
- Pre-lecture exercise: [PDF] [PDF with Solutions]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 12.1, 12.2, 12.3, 13
Recording
- Video: [Canvas]
Lecture 8: Hashing
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 11
Recording
- Video: [Canvas]
Lecture 9: Graphs and BFS and DFS
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 22.1, 22.2, 22.3, 22.4
Recording
- Video: [Canvas]
Lecture 10: Strongly Connected Components
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 22.5
Recording
- Video: [Canvas]
Lecture 11: Dijkstra and Bellman-Ford
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 24.1, 24.3
Recording
- Video: [Canvas]
Lecture 12: Dynamic Programming: Bellman-Ford and Floyd-Warshall
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 25.2, 15.1
Recording
- Video: [Canvas]
Lecture 13: More Dynamic Programming: LCS, Knapsack, Independent Set
Pre-lecture resources
- Pre-lecture exercise: None this time!
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 15.4
Recording
- Video: [Canvas]
Lecture 14: Greedy Algorithms
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 16.1, 16.2, 16.3
Recording
- Video: [Canvas]
Lecture 15: Minimum Spanning Trees
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources (coming)
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Python notebook: [Colab] [Zip]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 23
Recording
- Video: [Canvas]
Lecture 16: Max-Flow and the Ford-Fulkerson Algorithm
Pre-lecture resources
- Pre-lecture exercise: [PDF]
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: CLRS 26.1, 26.2, 26.3, Alexander Schrijver’s paper: On the history of the transportation and maximum flow problem
Recording
Lecture 17: Stable Matchings and Gale-Shapley
Pre-lecture resources
- Pre-lecture exercise: None this time!
Lecture resources
- Lecture notes: [PDF]
- Slides: [PDF] [PowerPoint]
- Concept check questions: [Interactive SVG] [Solved PDF]
- Additional reading: Lecture notes by Tim Roughgarden.
Recording
- Video: [Canvas]
Lecture 18: What's next?
Pre-lecture resources
- Pre-lecture exercise: None this time!
Lecture resources
- Slides: [PDF] [PowerPoint]
Recording
- Video: [Canvas]