ES 242 | Aug-Nov 2022
ES242. Data Structures and Algorithms I.
August — November 2022
Note: contents being actively updated at the time of this writing. Enroled students will find all materials in the Google classroom for this course. Items marked are coming soon!
| Date | Lecture | Slides | Notes | Video |
| 02 Aug, 2022 |
1.
Introduction to Data Structures
Data Structures - philosophy and examples • Representing games |
|||
| 03 Aug, 2022 |
2.
Introduction to Data Structures
Representing Sequential Data • Arrays • Lists |
|||
| 09 Aug, 2022 |
Institute Holiday
|
|||
| 10 Aug, 2022 |
Quiz 0 (Ungraded)
|
|||
| 16 Aug, 2022 |
3.
Representing Graphs
Adjacency Lists • Adjacency Matrices • Edge Lists |
|||
| 17 Aug, 2022 |
4.
Representing Graphs (contd.)
Adjacency Lists • Adjacency Matrices • Edge Lists |
|||
| 23 Aug, 2022 |
5.
Dequeues
Introducing the cardstack data structure • The Gilbreath Shuffle |
|||
| 24 Aug, 2022 |
6.
Dequeues
Queues and Stacks as special cases of Dequeues |
|||
| 30 Aug, 2022 |
7.
Euler Tours
Euler Tour Demonstration • Card trick • de Bruijn sequences • Constructing de Bruijn sequences using Euler Tours |
|||
| 31 Aug, 2022 |
8.
Euler Tours
Computing Euler Tours • Hierholzer's algorithm |
|||
| 06 Sep, 2022 |
9.
Stable Marriages
The Stable Marriage Problem • Gale-Shapley Algorithm |
|||
| 07 Sep, 2022 |
10.
Stable Marriages
Proof of Termination • Bounding the number of proposals • Proving the stability of the output |
|||
| 13 Sep, 2022 |
11.
Recap Lecture
Review of arrays, linked lists, stacks, queues, and graphs |
|||
| 14 Sep, 2022 |
Theory Quiz 01
|
|||
| 20 Sep, 2022 |
12.
Navigating Graphs
An introduction to navigating graphs |
|||
| 21 Sep, 2022 |
13.
Navigating Graphs (BFS)
Breadth-First Search • Correctness • Analysis of Running Time |
|||
| 11 Oct, 2022 |
14.
Navigating Graphs (DFS)
Depth-First Search • Pre-Post Intervals |
|||
| 12 Oct, 2022 |
15.
Navigating Graphs (DFS)
Depth-First Search • DFS-based classification of vertices • DFS-based classificaton of edges • Cycles and backedges |
|||
| 18 Oct, 2022 |
16.
DFS Applications
Topological Sort (Algorithm) |
|||
| 19 Oct, 2022 |
17.
DFS Applications
Postorder • Preorder • Topological Sort (Analysis) |
|||
| 25 Oct, 2022 |
18.
Shortest Paths
A teaser the challenges in extending BFS to weighted graphs • Pseudopolynomial running time |
|||
| 26 Oct, 2022 |
19.
Heaps
Selection Sort • Supporting only Insert and FindMin • The challenge of ExtractMin |
|||
| 01 Nov, 2022 |
20.
Heaps
The Heap Property • Insert • FindMin • ExtractMin |
|||
| 02 Nov, 2022 |
21.
Heaps
Representing Heaps with Arrays |
|||
| 08 Nov, 2022 |
Institute Holiday
|
|||
| 09 Nov, 2022 |
Theory Quiz 02
|
|||
| 15 Nov, 2022 |
22.
Heaps Revisited
Analysis • Heapify is Linear Time |
|||
| 16 Nov, 2022 |
23.
Balanced Binary Search Trees
(2,3)-Trees • Insertion • Deletion |
|||
| 22 Nov, 2022 |
24.
Balanced Binary Search Trees
(2,3)-Trees Height Analysis |
|||
| 23 Nov, 2022 |
25.
Recap
Review of BFS, DFS, Heaps, and Balanced BSTs |
These questions are integrated into the lectures and may not make sense standalone. Please check the slides and/or notes for additional context.
| Issued | Assessment | Problems | Solutions | Due |
| 02 Aug, 2022 |
Introduction to Data Structures Data Structures - philosophy and examples • Representing games |
|||
| 03 Aug, 2022 |
Introduction to Data Structures Representing Sequential Data • Arrays • Lists |
|||
| 16 Aug, 2022 |
Representing Graphs Adjacency Lists • Adjacency Matrices • Edge Lists |
|||
| 17 Aug, 2022 |
Representing Graphs (contd.) Adjacency Lists • Adjacency Matrices • Edge Lists |
|||
| 23 Aug, 2022 |
Dequeues Introducing the cardstack data structure • The Gilbreath Shuffle |
|||
| 24 Aug, 2022 |
Dequeues Queues and Stacks as special cases of Dequeues |
|||
| 30 Aug, 2022 |
Euler Tours Euler Tour Demonstration • Card trick • de Bruijn sequences • Constructing de Bruijn sequences using Euler Tours |
|||
| 31 Aug, 2022 |
Euler Tours Computing Euler Tours • Hierholzer's algorithm |
|||
| 06 Sep, 2022 |
Stable Marriages The Stable Marriage Problem • Gale-Shapley Algorithm |
|||
| 07 Sep, 2022 |
Stable Marriages Proof of Termination • Bounding the number of proposals • Proving the stability of the output |
|||
| 13 Sep, 2022 |
Recap Lecture Review of arrays, linked lists, stacks, queues, and graphs |
|||
| 20 Sep, 2022 |
Navigating Graphs An introduction to navigating graphs |
|||
| 21 Sep, 2022 |
Navigating Graphs (BFS) Breadth-First Search • Correctness • Analysis of Running Time |
|||
| 11 Oct, 2022 |
Navigating Graphs (DFS) Depth-First Search • Pre-Post Intervals |
|||
| 12 Oct, 2022 |
Navigating Graphs (DFS) Depth-First Search • DFS-based classification of vertices • DFS-based classificaton of edges • Cycles and backedges |
|||
| 18 Oct, 2022 |
DFS Applications Topological Sort (Algorithm) |
|||
| 19 Oct, 2022 |
DFS Applications Postorder • Preorder • Topological Sort (Analysis) |
|||
| 25 Oct, 2022 |
Shortest Paths A teaser the challenges in extending BFS to weighted graphs • Pseudopolynomial running time |
|||
| 26 Oct, 2022 |
Heaps Selection Sort • Supporting only Insert and FindMin • The challenge of ExtractMin |
|||
| 01 Nov, 2022 |
Heaps The Heap Property • Insert • FindMin • ExtractMin |
|||
| 02 Nov, 2022 |
Heaps Representing Heaps with Arrays |
|||
| 15 Nov, 2022 |
Heaps Revisited Analysis • Heapify is Linear Time |
|||
| 16 Nov, 2022 |
Balanced Binary Search Trees (2,3)-Trees • Insertion • Deletion |
|||
| 22 Nov, 2022 |
Balanced Binary Search Trees (2,3)-Trees Height Analysis |
|||
| 23 Nov, 2022 |
Recap Review of BFS, DFS, Heaps, and Balanced BSTs |
| Issued | Assessment | Problems | Solutions | Due |