|
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) |
| Wed, Jan 7 |
Overview of the course by TA Reif on travel |
[CLRS 1] |
| Fri, Jan 9 |
Introduction to Algorithms: (SS) analyzing algorithms [PS] Auxiliary notes: (LA) Introduction to Algorithms [PS] Optional notes: (SS) Algorithm Design [PS] (JR) Computing Fibonacci Numbers [PS] (JR) Models of Computation [PS] |
[CLRS 1, 2] Optional: [GKP 1.1-1.2] |
| Mon, Jan 12 |
Asymptotic Analysis: (SS) asymptotic notation [PS] Auxiliary notes: (LA) Growth of functions, summations [PS] Optional notes: (JR) Asymptotics and Recurrence Equations [PS] |
[CLRS Appendix A] Optional: [GKP 2.5] |
| Wed, Jan 14 |
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] |
| Fri, Jan 16 |
Overview of Randomized and Average-Case Analysis: (EU) Probabilistic Algorithms [PS] Auxiliary notes: (JR) Probability Theory [PS] |
|
| Mon, Jan 19 | No class: Martin Luther King Holiday | [CLRS Appendix C.2-C.3] |
| Wed, Jan 21 |
Sorting: (SS) Introduction to Quicksort [PS] (SS) Applications of Sorting [PS] Optional notes: (LA) Quicksort [PS] (JR) Randomized Algorithms for Selection and Sorting [PS] (SS) Examples of Quicksort Analysis [PS] (SS) Selection Sort [PS] |
[CLRS 7, 8] Optional: [MR] |
| Fri, Jan 23 |
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] |
| Mon, Jan 26 | No Class - Snow Day | |
| Wed, Jan 28 |
Selection and Radix Sort: (SS) Linear Sorting [PS] (LA) Linear time selection, median lower bound [PS] (JR) Deterministic Selection and Sorting [PS] Optional Notes: (EU) Median and Order Statistics [PS] |
[CLRS 9] Optional: [Baase, 3.4] |
| Mon, Feb 2 |
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 [PS] |
[CLRS 10, 12.0-12.3, 13] Optional: [CLRS 13, 14] [deBerg, 10.1] |
| Wed, Feb 4 | No Class (class made up Jan 9) | |
| Fri, Feb 6 |
Searching: (SS) Introduction to Hash Tables [PS] (LA) Hashing, skip lists [PS] Optional notes: (EU) Universal Hashing [PS] (SS) Elementary data structures [PS] (JR) Universal Hash Functions [PS] (JR) Hashing Polynomials [PS] |
[CLRS 5.0-5.2, 5.4.1] Optional: [CLRS 8.4, 11] [GT 7.5] |
| Mon, Feb 9 |
Amortized analysis, Part I: (EU) Amortized Analysis [PS] (LA) Aggregate analysis, potential method, binary counter, dynamic table [PS] Optional notes: (DS) Amortized Analysis Amortized analysis, Part II: (LA) Splay trees [PS] (DS) Analysis of Splay Trees |
[CLRS 17] Optional: [Kozen, 12] |
| Wed, Feb 11 | Exam review | |
| Mon, Feb 16 | Exam on Sorting, Searching, Asymptotic Analysis, and Amortized Analysis | |
| Wed, Feb 18 |
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] |
| Fri, Feb 20 |
Graph algorithms (Depth First Search): (JR) Graph Algorithms using Depth First Search [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] |
| Mon, Feb 23 |
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] |
| Wed, Feb 25 |
Graph algorithms (Data Structures for Disjoint-Union): (EU) Data Structures for Disjoint Sets [PS] (LA) Minimum spanning trees, Union-Find [PS] |
[CLRS 23, 21.0-21.3] |
| Fri, Feb 27 |
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] |
| Mon, Mar 1 |
Graph algorithms: (EU) Matching [PS] Optional notes: (JR) Breadth-First Search of Graphs [PS] |
[CLRS 26.2-26.3] |
| Wed, Mar 3 | No Class (class made up Feb 20) | |
| Mar 5-14 | No Class - Spring Break! | |
| Mon, Mar 15 | No Class (class made up Feb 27) | |
| Wed, Mar 17 | Review Lecture by Reif on Graph Algorithms | |
| Mon, Mar 22 | Overview Lecture by TA on Graph Algorithms | |
| Wed, Mar 24 | No class (Reif on travel to a conference - class made up Apr 2) | |
| Fri, Mar 26 |
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] |
| Mon, Mar 29 | Exam on all Graph Algorithm topics covered to date | |
| Wed, Mar 31 |
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] |
| Fri, Apr 2 |
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] |
| Mon, Apr 5 |
Design paradigms: (LA) Greedy algorithms, huffman codes, activity selection [PS] (EU) Huffman Compression [PS] |
[CLRS 16.0-16.3] |
| Wed, Apr 7 |
Fast Fourier Transform: (EU) Polynomials and the Fast Fourier Transform [PS] Auxiliary Notes: (JR) FFT and Multiplication [PS] (JR) Polynomial Computation [PS] |
[CLRS 30] |
| Fri, Apr 9 |
Number Theory and Cryptography: (JR) Number Theory Algorithms [PS] (EU) Cryptography [PS] |
[CLRS 31] |
| Mon, Apr 12 | Exam 3 Review with TA | |
| Wed, Apr 14 | No class - class made up on Fri, Apr 16 | |
| Fri, Apr 16 | Quiz on external memory algorithms, Dynamic Programming, Greedy Algorithms, Algebraic and Number Theory Algorithms | |
| Mon, Apr 19 |
Approximation Algorithms: (LA) Approximation Algorithms [PS] (EU) Approximately Correct Algorithms [PS] Auxiliary Notes: (SS) Approximation Algorithms and Cook's Theorem [PS] |
[CLRS 35] |
| Wed, Apr 21 | Overview of Final Exam Topics | |
| May 1 (?) | Final Exam |