# Lecture Schedule and Notes

Current homework is available from the homework page.

 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

## Course textbook:

• [CLRS] Cormen, Leiserson, Rivest, and Stein. Introduction to Algorithms, McGraw Hill, second edition, 2001. Be sure to get the second edition!