Semester Schedule

It is recommended that students take careful notes from recordings and during class meetings. Before class meetings, it is helpful to review relevant chapters in course notes. Slides and annotated notes will be available on the course Piazza only under the Resources tab.

Chapter numbers under the textbook column refer to the textbook, while the chapter numbers under "notes" refer to the posted lecture notes.

Exams

Exam Time Location Material
1 Midterm 1 Thursday, February 25 Quiz section
2 Midterm 2 Thursday, April 1 (No fooling!) Quiz section
3 Final Wednesday, May 5 at 8 AM PST Online

Lectures

Topics Chapters Notes Recordings
1
  • Course overview
  • Motivation for Data Structures
  • Recursion
  • Runtime
  • Chapter 1.1-1.5
  • Chapter 2
1-Introduction.pptx Lecture 1
2
  • Recursion
  • Linked Lists
  • Chapter 1.3
  • Chapter 2
  • Chapter 3.3-3.5
2-Recursion.pptx Lecture 2
3
  • Recursion
  • Copy Semantics
  • Chapter 1.3, 1.5
  • Chapter 2
3-Copy Constructors.pptx Lecture 3
4
  • Inheritance
  • Polymorphism
  • Chapter 1.5
4-Inheritance.pptx Lecture 4
5
  • Inheritance
  • Polymorphism
  • Chapter 1.5
5-Polymorphism.pptx Lecture 5
6
  • Polymorphism
  • Exceptions
  • ADTs
  • Chapter 3.1-3.2
6-Exceptions.pptx Lecture 6
7
  • Standard template library
  • Containers
  • Chapter 1.6
7-STL.pptx 8-ADTs.pptx Lecture 7
8
  • Stacks
  • Queues
  • Chapter 3.6-3.7
9-Stacks and Queues.pptx Lecture 8
9
  • Graphs
  • Trees
  • Chapter 4.1-4.2
  • Chapter 9.1
10-Templates.pptx 11-Graphs.pptx Lecture 9
10
  • Priority Queues
  • Heaps
  • Chapter 6.1-6.5
12-Heaps.pptx Lecture 10
11
  • Heaps
  • Dijkstra's Algorithm
  • Chapter 6.1-6.5
  • Chapter 9.3
13-Graph Algorithms.pptx Lecture 11
12
  • A* Search
  • Binary Search Trees
  • Chapter 4.3
14-AVL Trees.pptx Lecture 12
13
  • Binary Search Trees
  • AVL Trees
  • Chapter 4.3-4.4
Lecture 13
14
  • AVL Trees
  • Balanced Binary Search Trees
  • Chapter 4.4, 4.7
  • Chapter 12.2
Lecture 14
15
  • Splay Trees
  • Chapter 4.5
15-Splay Trees.pptx Lecture 15
16
  • Hash Table introduction
  • Counting
  • Chapter 5.1-5.3
  • Lewis & Zax Chapter 22
16-Hash Tables.pptx 17-Counting.pptx Lecture 16
17
  • Counting
  • Lewis & Zax Chapter 23
Lecture 17
18
  • Probability
  • Lewis & Zax Chapter 26
18-Probability.pptx Lecture 18
19
  • Probability
  • Lewis & Zax Chapter 27
Lecture 19
20
  • Probability
  • Lewis & Zax Chapter 28
  • Lewis & Zax Chapter 29
Lecture 20
21
  • Number Theory
  • Lewis & Zax Chapter 30
19-Number Theory.pptx Lecture 21
22
  • Number Theory
  • Lewis & Zax Chapter 31
Lecture 22
23
  • Hash Tables
  • Chapter 5
20-Hash Functions.pptx Lecture 23
24
  • Bloom Filters
  • Chapter 5
Lecture 24
25
  • Amortized Analysis
  • Chapters 11.1,11.5
Lecture 25
26
  • Tries
  • Chapter 12.4
21-Amortized Analysis.pptx 22-Merge Trees.pptx Lecture 26
27
  • Extra Topics
  • Chapter 6.8
28
  • Extra Topics
  • Chapter 11.2