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 {{< bi alarm color="indianred" >}} 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 |