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) 
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.11.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.04.2, 4.34.4] Optional: [CLRS 28.128.2] 
Fri, Jan 16 
Overview of Randomized and AverageCase Analysis: (EU) Probabilistic Algorithms [PS] Auxiliary notes: (JR) Probability Theory [PS] 

Mon, Jan 19  No class: Martin Luther King Holiday  [CLRS Appendix C.2C.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) RedBlack trees [PS] (SS) RedBlack tree Rotation, Insertion, Deletion [PS] (LA) Search trees, redblack trees [PS] Optional notes: (SS) Example RedBlack tree problem [PS] (SS) Example Data Structure Problem [PS] (LA) Augmented search trees, interval trees [PS] (JR) Search Algorithms [PS] 
[CLRS 10, 12.012.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.05.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.4B.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.4B.5] 
Mon, Feb 23 
Graph algorithms (Spanning Trees): (LA) Minimum spanning trees, UnionFind [PS] (EU) Minimum Weights Spanning Tree [PS] (EU) Data Structures for Disjoint Sets [PS] Optional notes: (SS) Minimum Spanning Trees [PS] 
[CLRS 23, 21.021.3] 
Wed, Feb 25 
Graph algorithms (Data Structures for DisjointUnion): (EU) Data Structures for Disjoint Sets [PS] (LA) Minimum spanning trees, UnionFind [PS] 
[CLRS 23, 21.021.3] 
Fri, Feb 27 
Graph algorithms (Shortest Paths): (LA) Shortest paths [PS] (SS) Shortest path algorthms [PS] (EU) Shortest Paths Problems [PS] (EU) BellmanFord Algorithm [PS] (EU) Allpairs Shortest Paths [PS] 
[CLRS 24.024.3, 25.2] 
Mon, Mar 1 
Graph algorithms: (EU) Matching [PS] Optional notes: (JR) BreadthFirst Search of Graphs [PS] 
[CLRS 26.226.3] 
Wed, Mar 3  No Class (class made up Feb 20)  
Mar 514  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, Btree [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) ExternalMemory Algorithms 
[CLRS 15.015.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, Btree [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) ExternalMemory Algorithms 
[CLRS 15.015.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.016.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 