Lectures

This table contains links to the lecture slides.
# DATE SLIDES SECTION DEMOS
1 Tuesday
9/3
 Introduction  
 Union–Find  
1.5
Quick-union
Weighted quick-union
2 Thursday
9/5
 Analysis of Algorithms  
1.4
3 Tuesday
9/10
 Stacks and Queues  
1.3
Function-call stack
Resizing-array queue
4 Thursday
9/12
 Advanced Java  

5 Tuesday
9/17
 Elementary Sorts  
2.1
Selection sort
Insertion sort
Binary search
6 Thursday
9/19
 Mergesort  
2.2
Merging
7 Tuesday
9/24
 Quicksort  
2.3
Quicksort
2-way partitioning
3-way partitioning
Quickselect
8 Thursday
9/26
 Priority Queues  
2.4
Heap operations
9 Tuesday
10/1
 Elementary Symbol Tables  
 BSTs  
3.1
3.2
BST operations
10 Thursday
10/3
 Balanced Search Trees  
3.3
2–3 trees
Red–black BSTs
11 Tuesday
10/8
 Midterm 

12 Thursday
10/10
 Guest Lecture 

13 Tuesday
10/22
 Geometric Applications of BSTs  

Line segment intersection
K-d trees
14 Thursday
10/24
 Hash Tables  
3.4
Linear probing
15 Tuesday
10/29
 Graphs and Digraphs I  
4.1
4.2
Directed DFS
Directed paths
Undirected DFS
16 Thursday
10/31
 Graphs and Digraphs II  
4.1
4.2
Directed BFS
Topological sort
17 Tuesday
11/5
 Minimum Spanning Trees  
4.3
Kruskal
Prim
18 Thursday
11/7
 Shortest Paths  
4.4
Bellman–Ford
Dijkstra
19 Tuesday
11/12
 Dynamic Programming  

IntroCS
20 Thursday
11/14
 Maxflows and Mincuts  
6.4
Ford–Fulkerson
21 Tuesday
11/19
 Multiplicative Weights  

22 Thursday
11/21
 Randomness  

Karger's Algorithm
23 Tuesday
12/3
 Intractability  

24 Thursday
12/5
 Algorithm Design  

Readings. All readings refer to Algorithms, 4th edition by R. Sedgewick and K. Wayne unless otherwise specified.

Advice. In general, slides are intended for the lecture presentations and do not provide thorough descriptions of the material alone; for reference, read the corresponding sections from Algorithms, 4th edition. An effective strategy is to skim the textbook before the lecture, read it thoroughly soon afterwards, and complete the corresponding PrairieLearn quiz.

iClickers. To make the lectures more interactive, we will be using iClickers. To earn participation credit, you must attend lecture and participate in the iClicker polls. You must also register your mobile/web app:

Using a classmate’s iClicker (or allowing someone else to use your iClicker) during lecture is prohibited.