Lecture Schedule and Notes

Duke Computer Science

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)
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.1-1.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.0-4.2, 4.3-4.4]

Optional:
[CLRS 28.1-28.2]
Fri, Jan 16 Overview of Randomized and Average-Case Analysis:
(EU) Probabilistic Algorithms [PS]

Auxiliary notes:
(JR) Probability Theory [PS]
 
Mon, Jan 19 No class: Martin Luther King Holiday [CLRS Appendix C.2-C.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) 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]
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.0-5.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.4-B.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.4-B.5]
Mon, Feb 23 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]
Wed, Feb 25 Graph algorithms (Data Structures for Disjoint-Union):
(EU) Data Structures for Disjoint Sets [PS]
(LA) Minimum spanning trees, Union-Find [PS]
[CLRS 23, 21.0-21.3]
Fri, Feb 27 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]
Mon, Mar 1 Graph algorithms:
(EU) Matching [PS]

Optional notes:
(JR) Breadth-First Search of Graphs [PS]
[CLRS 26.2-26.3]
Wed, Mar 3 No Class (class made up Feb 20)  
Mar 5-14 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, 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]
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, 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]
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.0-16.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  

Color codes and initials for credits for lecture notes:


Course textbook:


Other references made available:



Last Modified: Monday, 12-Apr-2004 21:22:12 EDT