| January 5 | Course overview | --- |
| January 7 | Introduction | Chapter 1 |
| January 12 | Asymptotic notation | Section 2.1 |
| January 14 | Recurrences | Chapter 4 |
| January 19 | Heap-Sort | Chapter 7 |
| January 21
|
Heap-Sort
Quick-Sort |
Chapter 8 |
| January 26 | Quick-Sort | |
| January 28
|
Lower bound for sorting
Counting-Sort |
Section 9.1
Section 9.2 |
| February 2
|
Radix-Sort
Stacks and queues |
Section 9.3
Section 11.1 |
| February 4
|
Stacks and queues
Binary search trees |
Sections 13.1-13.3 |
| February 9 | Binary search trees | |
| February 11 | EXAM #1 | --- |
| February 16 | Disjoint sets | Sections 22.1-22.3 |
| February 18 | Disjoint sets | |
| February 23
|
Representing graphs
Breadth-fist search |
Section 23.1
Section 23.2 |
| February 25
|
Breadth-first search
Depth-first search |
Section 23.3 |
| March 2
|
Topological sort
Spanning trees |
Section 23.4
Chapter 24 |
| March 4 | Spanning trees | |
| March 16
|
Dijkstra's shortest paths
Shortest paths in DAG |
Section 25.2
Section 25.4 |
| March 18
|
Shortest paths in DAG
Matrix chains |
Section 16.1 |
| March 23
|
Matrix chains
Common subsequence |
Section 16.3 |
| March 25 | EXAM #2 | --- |
| March 30 | Common subsequence | |
| April 1
|
Greedy algorithms
Huffman codes |
Sections 17.1 and 17.2
Section 17.3 |
| April 6
|
Huffman codes
Naive string matching Rabin-Karp matching |
Section 34.1 Section 34.2 |
| April 8 | Rabin-Karp matching | |
| April 13 | Finite-automata matching | Section 34.3 |
| April 15 | Finite-automata matching | |
| April 20 | NP problems | Section 36.2 |
| April 22
|
NP problems
Examples of NP NP-completeness |
Section 36.5 Section 36.3 |