|
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) |
| Thurs, Jan 13 |
Overview of the course: Introduction to Algorithms (SS) analyzing algorithms [PS] |
[CLRS 1] |
| Tues, Jan 18 |
Introduction to Algorithms (JR) Models of Computation [PS] (JR) Computing Fibonacci Numbers [PS] Auxiliary notes: (LA) Introduction to Algorithms [PS] Optional notes: (SS) Algorithm Design [PS] |
[CLRS 1, 2] Optional: [GKP 1.1-1.2] |
| Thurs, Jan 20 |
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] |
| Tues, Jan 25 |
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] |
| Thurs, Jan 27 |
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] |
| Tues, Feb 1 | Quiz over Asymptotic Notation and Recurrences |   |
| Thurs, Feb 3 |
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] |
| Tues, Feb 8 |
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] |
| Thurs, Feb 10 |
Overview of Randomized and Average-Case Analysis: (EU) Probabilistic Algorithms [PS] Auxiliary notes: (JR) Probability Theory [PS] |
|
| Tues, Feb 15 | Quiz on Deterministic Sorting & Searching | |
| Thurs, Feb 17 |
Amortized analysis, Part I: (EU) Amortized Analysis [PS] (LA) Aggregate analysis, potential method, binary counter, dynamic table [PS] Optional notes: (DS) Amortized Analysis |
  |
| Tues, Feb 22 |
(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 [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] |
| Thurs, Feb 24 |
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, Mar 1 |
Graph algorithms (Depth First Search I): (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] |
| Thurs, Mar 3 |
Graph algorithms (Depth First Search I): (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] |
| Tues, Mar 8 |
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, Mar 10 |
Graph algorithms (Breadth-First search): (JR) Breadth-First Search of Graphs [PS] |
[CLRS 23, 21.0-21.3] |
| Mar 12-20 | No Class - Spring Break! | |
| Tues, Mar 22 |
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, Mar 24 |
Graph algorithms: (EU) Matching [PS] |
[CLRS 26.2-26.3] |
| Tues, Mar 29 | Review Lecture on Graph Algorithms | |
| Thurs, Mar 31 | Exam on Graph Algorithm topics | |
| Tues, April 5 |
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, Apr 7 |
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, Apr 12 |
Fast Fourier Transform and Algebraic Algorithms (EU) Polynomials and the Fast Fourier Transform [PS] Auxiliary Notes: (JR) FFT and Multiplication [PS] (JR) Polynomial Computation [PS] |
[CLRS 30] |
| Thurs, Apr 14 |
Number Theory: (JR) Number Theory Algorithms [PS] |
[CLRS 31] |
| Tues, Apr 19 |
Cryptography: (EU) Cryptography [PS] |
  |
| Thurs, Apr 21 |
Approximation Algorithms: (LA) Approximation Algorithms [PS] (EU) Approximately Correct Algorithms [PS] Auxiliary Notes: (SS) Approximation Algorithms and Cook's Theorem [PS] |
[CLRS 35] |
| Tues, Apr 26 | Exam on Dynamic Programming and Algebraic Algorithms |   |
| Tues, May 3 7:00 pm - 10:00 pm | Final Exam |