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.11.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.04.2, 4.34.4] Optional: [CLRS 28.128.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) 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 [PDF] [PS] 
[CLRS 10, 12.012.3, 13] Optional: [CLRS 13, 14] [deBerg, 10.1] 
Tues, Sep 27 
Overview of Randomized and AverageCase 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.4B.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.4B.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.4B.5] 
Tues, Oct 25 
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] 
Thurs, Oct 27 
Graph algorithms (BreadthFirst search): (JR) BreadthFirst Search of Graphs [PDF] [PS] Optional notes: (EU) Matching [PS] 
[CLRS 23, 21.021.3] 
Tues, Nov 1 
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] 
Thurs, Nov 3 
(JR)
Flow Algorithms
[PS]
[PDF]

[CLRS 26.226.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, 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] 
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 