|
CPS 130 Algorithms
|
| Homework - Handouts - Teaching Assistants - Resources |
Lecture Schedule and Notes |
|
| Date |
Topics and Lecture Notes (See below for color codes for credits for lecture notes) |
Required Readings (from [CLRS] unless otherwise noted) | |
| Tues, Aug 29 |
Overview of the course: Introduction to Algorithms (SS) analyzing algorithms [PS] |
[CLRS 1] | |
| Thurs, Aug 31 |
Introduction to Algorithms (JR) Models of Computation [PDF] [PS] (JR) Computing Fibonacci Numbers [PDF] [PS] Auxiliary notes: (LA) Introduction to Algorithms [PS] Optional notes: (SS) Algorithm Design [PS] |
[CLRS 1, 2] Optional: [GKP 1.1-1.2] |
|
| Tues, Sep 5 |
Asymptotic Analysis: (SS) asymptotic notation [PS] Auxiliary notes: (LA) Growth of functions, summations [PS] Optional notes: (JR) Asymptotics and Recurrence Equations [PDF] [PS] |
[CLRS Appendix A] Optional: [GKP 2.5] |
|
| Thurs, Sep 7 |
Recurrence Equations: (SS) recurrence relations [PS] Auxiliary notes: (LA) Strassen's algorithm, Master method for recurrence [PS] Optional notes: (SS) Example Problems [PS] (SS) More Example Problems [PS] |
[CLRS 4.0-4.2, 4.3-4.4] Optional: [CLRS 28.1-28.2] |
|
| Tues, Sep 12 |
Lower Bounds on Sorting: (LA) Lower bound in decision tree model, bucket and radix sort [PS] Priority Queues: (SS) Heapsort [PS] (SS) Example heap problems [PS] Optional notes: (SS) Examples of Sorting Lower Bounds [PS] (LA) Heaps and heapsort [PS] |
[CLRS 6, 9] Optional: [Baase, 3.4] |
|
| Thurs, Sep 14 | Quiz over Asymptotic Notation and Recurrences |   | |
| Tues, Sep 19 |
Selection and Radix Sort: (SS) Linear Sorting [PS] (LA) Linear time selection, median lower bound [PS] (JR) Deterministic Selection and Sorting [PDF] [PS] Optional Notes: (EU) Median and Order Statistics [PS] |
[CLRS 9] Optional: [Baase, 3.4] |
|
| Thurs, Sep 21 |
Searching: (SS) Binary Search trees [PS] (SS) Red-Black trees [PS] (SS) Red-Black tree Rotation, Insertion, Deletion [PS] (LA) Search trees, red-black trees [PS] Optional notes: (SS) Example Red-Black tree problem [PS] (SS) Example Data Structure Problem [PS] (LA) Augmented search trees, interval trees [PS] (JR) Search Algorithms [PDF] [PS] |
[CLRS 10, 12.0-12.3, 13] Optional: [CLRS 13, 14] [deBerg, 10.1] |
|
| Tues, Sep 26 |
Overview of Randomized and Average-Case Analysis: (EU) Probabilistic Algorithms [PS] Auxiliary notes: (JR) Probability Theory [PDF] [PS] |
||
| Thurs, Sep 28 |
(LA)
Quicksort
[PS] (SS) Introduction to Quicksort [PS] (SS) Applications of Sorting [PS] Auxiliary Notes: (Littman) Sorting [PS] (Littman) Analysis of Quicksort [PS] (JR) Randomized Algorithms for Selection and Sorting [PDF] [PS] (SS) Selection Sort [PS] (SS) Examples of Quicksort Analysis [PS] Old notes for this day: Amortized analysis, Part II: (LA) Hashing, Skip Lists [PS] Treaps, Skip Lists, Shortest Paths [PS] |
[CLRS 17] Optional: [Kozen, 12] |
|
| Tues, Oct 3 |
Amortized analysis, Part I: (EU) Amortized Analysis [PS] (LA) Aggregate analysis, potential method, binary counter, dynamic table [PS] Optional notes: (DS) Amortized Analysis |
  | |
| Thurs, Oct 5 | Quiz on Sorting and Searching and randomized analysis | ||
| Tues, Oct 10 | FALL BREAK | ||
| Thurs, Oct 12 |
Graph algorithms (Graph Definitions): (EU) Graph Definitions [PS] (SS) Data structures for graphs [PS] (SS) DFS and BFS [PS] |
[CLRS 22] Optional: [CLRS Appendix B.4-B.5] |
|
| Tues, Oct 17 |
Graph algorithms (Depth First Search I): (JR) Graph Algorithms using Depth First Search [PDF] [PS] (LA) Model, basic algorithms, DFS, BFS, topological sort, strongly connected components [PS] (SS) DFS and BFS [PS] |
[CLRS 22] Optional: [CLRS Appendix B.4-B.5] |
|
| Thurs, Oct 19 |
Graph algorithms (Depth First Search II): (JR) Graph Algorithms using Depth First Search [PDF] [PS] (LA) Model, basic algorithms, DFS, BFS, topological sort, strongly connected components [PS] (SS) DFS and BFS [PS] |
[CLRS 22] Optional: [CLRS Appendix B.4-B.5] |
|
| Tues, Oct 24 |
Graph algorithms (Spanning Trees): (LA) Minimum spanning trees, Union-Find [PS] (EU) Minimum Weights Spanning Tree [PS] (EU) Data Structures for Disjoint Sets [PS] Optional notes: (SS) Minimum Spanning Trees [PS] |
[CLRS 23, 21.0-21.3] | |
| Thurs, Oct 26 |
Graph algorithms (Breadth-First search): (JR) Breadth-First Search of Graphs [PDF] [PS] Optional notes: (EU) Matching [PS] |
[CLRS 23, 21.0-21.3] | |
| Tues, Oct 31 |
Graph algorithms (Shortest Paths): (LA) Shortest paths [PS] (SS) Shortest path algorthms [PS] (EU) Shortest Paths Problems [PS] (EU) Bellman-Ford Algorithm [PS] (EU) All-pairs Shortest Paths [PS] |
[CLRS 24.0-24.3, 25.2] | |
| Thurs, Nov 2 |
(JR)
Flow Algorithms
[PS]
[PDF]
|
[CLRS 26.2-26.3] | |
| Tues, Nov 7 | Review Lecture on Graph Algorithms | ||
| Thurs, Nov 9 | Exam on Amortized analysis and Graph Algorithm topics | ||
| Tues, Nov 14 |
External memory algorithms: (LA) Model, basic upper and lower bounds, sorting, B-tree [PS] Auxiliary Notes: (JV) The Input/Output Complexity of Sorting and Related Problems (JV) External Memory Algorithms and Data Structures: Dealing with MASSIVE Data [PS] (LA) Lower bound on external sorting (LA) External-Memory Algorithms |
[CLRS 15.0-15.2] | |
| Thurs, Nov 16 |
Design Paradigms: (LA) Dynamic Programming, Matrix chain multiplication [PS] (SS) Introduction to Dynamic Programming [PS] (SS) Dynamic Programming applications [PS] (EU) Dynamic Programming [PS] Auxiliary Notes: (SS) Example dynamic programming problem [PS] |
[CLRS] | |
| Tues, Nov 21 |
Fast Fourier Transform and Algebraic Algorithms (EU) Polynomials and the Fast Fourier Transform [PS] Auxiliary Notes: (JR) FFT and Multiplication [PDF] [PS] (JR) Polynomial Computation [PDF] [PS] |
[CLRS 30] | |
| Thurs, Nov 23 | THANKSGIVING BREAK | ||
| Tues, Nov 28 |
Number Theory: (JR) Number Theory Algorithms [PDF] [PS] |
[CLRS 31] | |
| Thurs, Nov 30 |
Cryptography: (EU) Cryptography [PS] |
  | |
| Tues, Dec 5 |
Approximation Algorithms: (LA) Approximation Algorithms [PS] (EU) Approximately Correct Algorithms [PS] Auxiliary Notes: (SS) Approximation Algorithms and Cook's Theorem [PS] |
[CLRS 35] | |
| Thurs, Dec 7 | Exam on Network flows, Dynamic Programming and Algebraic Algorithms |   | |
| Sunday, Dec 17, 2:00 pm - 5:00 pm | PLEASE DOUBLE-CHECK THE EXAM DATE AND TIME WITH REGISTRAR | Final Exam |