CPS 130 Algorithms Lectures | | 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 30 |
Overview of the course: Introduction to Algorithms (SS) analyzing algorithms [PS] |
[CLRS 1] |
Thurs, Sep 1 |
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, 6 |
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 8 |
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 13 |
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 15 | Quiz over Asymptotic Notation and Recurrences |   |
Tues, Sep 20 |
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 22 |
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 27 |
Overview of Randomized and Average-Case Analysis: (EU) Probabilistic Algorithms [PS] Auxiliary notes: (JR) Probability Theory [PDF] [PS] |
|
Thurs, Sep 29 |
(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 4 |
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 6 | Quiz on Deterministic Sorting & Searching | |
Thurs, Oct 13 |
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 18 |
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 20 |
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 25 |
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 27 |
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, Nov 1 |
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 3 |
(JR)
Flow Algorithms
[PS]
[PDF]
|
[CLRS 26.2-26.3] |
Tues, Nov 8 | Review Lecture on Graph Algorithms | |
Thurs, Nov 10 | Exam on Graph Algorithm topics | |
Tues, Nov 15 |
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 17 |
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 22 |
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] |
Tues, Nov 29 |
Number Theory: (JR) Number Theory Algorithms [PDF] [PS] |
[CLRS 31] |
Thurs, Dec 1 |
Cryptography: (EU) Cryptography [PS] |
  |
Tues, Dec 6 |
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 8 | Exam on Dynamic Programming and Algebraic Algorithms |   |
Thurs, May 3 7:00 pm - 10:00 pm | Final Exam |