Lectures

Date

Topic

Readings

Notes

Homeworks

Sep 3
Introduction, Class overview,
RAM model, Worst-case complexity,
Insertion sort, and Asymptotics
Chapter 1, Section 2.1, 2.2 and 3.1
Note 1
Zoom Note
Sep 8
Asymptotics, Induction,
Divide and conquer, Merge sort,
Recurrence, Recursion tree
Section 2.3 and 3.2
Sort with dance
Sorting algorithms in six minutes
Note 2
Zoom Note
Sep 10
Binary search, Powering, Matrix
multiplication, Strassen's algorithm
Master theorem
Section 4.2, 4.3 and 4.5
Note 3
Zoom Note
Sep 15
Randomized algorithms
Quicksort and its analysis
Chapter 5, Section 7.1 and 7.2
Appendix C for basics of probability
Note 4
Sep 17
Randomized Quicksort
Sectioin 7.3 and 7.4
Note 5
Sep 22
Selection in linear time, and
Lower bound on comparison sorts
Section 9.2, 9.3 and 8.1
Note 6

Sep 24
Counting sort and Radix sort
Hash tables and hash functions
Section 8.2 and 8.3
Section 11.1 and 11.2
Note 7.1
Note 7.2
Sep 29
Universal hashing
Section 11.3.3
Note 8
Oct 1
Perfect hashing and
Binary search trees
Section 11.5 and Chapter 12
Note 9.1
Note 9.2
Oct 6
Red-Black trees
Chapter 13
Note 10

Oct 8
Augmenting data structures
Order statistics, Interval trees
Chapter 14
Note 11
Oct 13
Greedy algorithms
Activity selection
Section 16.1 and 16.2
Note 12
Oct 15
Greedy: Huffman trees,
Dynamic programming: Rod cutting
Section 16.3 and 15.1
Note 13
Oct 20
Midterm evaluation
Oct 22
Dynamic programming: Longest
common subsequence
Section 15.3 and 15.4
See Note 13
Oct 27
Dynamic programming: Optimal
binary search tree
Section 15.5
Note 14

Oct 29
Amortized analysis
Chapter 17
Note 15
Nov 3
Academic Holiday
Nov 5
Graphs and Breadth-first search
Section 22.1 and 22.2
Note 16
Nov 10
Breadth-first search and its correctness
Section 22.2
See Note 16
Nov 12
Depth-first search and Topological sort
Section 22.3 and 22.4
Note 17

Nov 17
Strongly connected components Minimum spanning tree: the generic method
Section 22.5 and Section 23.1
Note 18
Nov 19
Minimum spanning trees:
Kruskal and Prim
Chapter 23 and Section 21.1-2
Note 19
Nov 24
Academic Holiday
Nov 26
Single-source shortest path:
Bellman-Ford and Dijkstra
Chapter 24
Note 20
Dec 1
All-pairs shortest paths
Chapter 25
Note 21

Dec 3
Maximum Flow: Ford-Fulkerson
Section 26.1 and 26.2
Note 22
Dec 8
Edmonds-Karp, and
Maximum bipartite matching
Section 26.2 and 26.3
Note 23

NP-completeness
Chapter 34
Note 24

NP-completeness
Chapter 34
Note 25

Final evaluation