Course Schedule

Unit 1: Fundamental Concepts, Graphs & Trees

Week Topics Text Assignments
1/27 Course Introduction
Basic ADTs and Data Structures
[Arrays & Lists]
[Stacks & Queues]
[In-class Activity Solution]
3.1–3.4
5.1–5.3
(1/27) Project 0 Assigned
(1/27) HW 1 Assigned
2/3 Introduction to Graphs
Asymptotic Analysis
[Asymptotic Analysis]
13.1–13.2 (2/3) Project 1 Assigned
(2/4) Project 0 Due
(2/6) HW 1 Due
2/10 Asymptotic Analysis, Part 2
Amortized Analysis
[Asymptotic Analysis, Part 2]
[Amortized Analysis]
Ch. 4 (2/10) HW 2 Assigned
2/17 Trees, Maps & BSTs
[Intro to Trees]
[Binary Tree Traversals]
Ch. 7
9.1, 10.1
(2/17) Project 2 Assigned
(2/18) Project 1 Due
(2/20) HW 2 Due
2/24 AVL Trees
[Ordered Maps and BSTs]
[AVL Trees]
10.2 (2/24) HW 3 Assigned
3/2 Catch-up / Project Day
Midterm Exam Review
[Exam 1 Study Guide]
[Exam 1 from Fall 2019]
(3/3) Project 2 Due
(3/5) HW 3 Due

Midterm Exam #1: Monday, March 9

Unit 2: Balanced Trees, Heaps, & Hashing

Week Topics Text Assignments
3/9 Midterm Exam #1
[Exam 1 Solutions]
Treaps
[Notes, Video]
14.1, 14.2
3/16 SPRING BREAK!
3/23 Multiway Trees
[Notes, Video]
B-Trees
[Notes, Video]
10.4, 10.5 (3/23) Project 3 Assigned
3/30 Red-Black Trees
[Excercise, Notes, Video]
Heaps & Skew Heaps
[Notes, Video]
8.1–8.3 (3/30) HW 4 Assigned
4/6 Hash Functions
Hash Tables
[Notes, Video]
[Notebook 1: PDF,ipynb]
[Notebook 2: PDF, ipynb]
9.2 (4/7) Project 3 Due (extended to 4/13)
(4/9) HW 4 Due (extended to 4/13)
4/13 Graphs, DFS, BFS
[Notes, Video]
Dijkstra and A*
[Notes, Video]
13.3–13.5 (4/13) Project 4 Assigned
(4/13) HW 5 Assigned
4/20 Skip Lists
[Notes, Video]
Induction
[Notes, Video]
9.4
(4/23) HW 5 Due
4/27 More Induction!
[Notes, Video]
Midterm Exam Review
[Notes, Video]
(4/27) HW 6 Assigned
(4/28) Project 4 Due

Midterm Exam #2: Monday, May 4

Unit 3: Advanced Topics

Week Topics Text Assignments
5/4 Midterm Exam #2
Advanced Topics
5/11 Final Exam Review (5/11) HW 6 Due

Final Exam: Monday, May 18, 10:30–12:30