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)
Thurs, Jan 13 Overview of the course: Introduction to Algorithms
(SS) analyzing algorithms [PS]

[CLRS 1]
Tues, Jan 18 Introduction to Algorithms
(JR) Models of Computation [PS]
(JR) Computing Fibonacci Numbers [PS]

Auxiliary notes:
(LA) Introduction to Algorithms [PS]

Optional notes:
(SS) Algorithm Design [PS]
[CLRS 1, 2]

Optional:
[GKP 1.1-1.2]
Thurs, Jan 20 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]
Tues, Jan 25 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]
Thurs, Jan 27 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]
Tues, Feb 1 Quiz over Asymptotic Notation and Recurrences  
Thurs, Feb 3 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]
Tues, Feb 8 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]
Thurs, Feb 10 Overview of Randomized and Average-Case Analysis:
(EU) Probabilistic Algorithms [PS]

Auxiliary notes:
(JR) Probability Theory [PS]
 
Tues, Feb 15 Quiz on Deterministic Sorting & Searching  
Thurs, Feb 17 Amortized analysis, Part I:
(EU) Amortized Analysis [PS]
(LA) Aggregate analysis, potential method, binary counter, dynamic table [PS]

Optional notes:
(DS) Amortized Analysis

 
Tues, Feb 22 (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 [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]
Thurs, Feb 24 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, Mar 1 Graph algorithms (Depth First Search I):
(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]
Thurs, Mar 3 Graph algorithms (Depth First Search I):
(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]
Tues, Mar 8 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, Mar 10 Graph algorithms (Breadth-First search):
(JR) Breadth-First Search of Graphs [PS]
[CLRS 23, 21.0-21.3]
Mar 12-20 No Class - Spring Break!  
Tues, Mar 22 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, Mar 24 Graph algorithms:
(EU) Matching [PS]

[CLRS 26.2-26.3]
Tues, Mar 29 Review Lecture on Graph Algorithms  
Thurs, Mar 31 Exam on Graph Algorithm topics  
Tues, April 5 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, Apr 7 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, Apr 12 Fast Fourier Transform and Algebraic Algorithms
(EU) Polynomials and the Fast Fourier Transform [PS]

Auxiliary Notes:
(JR) FFT and Multiplication [PS]
(JR) Polynomial Computation [PS]
[CLRS 30]
Thurs, Apr 14 Number Theory:
(JR) Number Theory Algorithms [PS]
[CLRS 31]
Tues, Apr 19 Cryptography:
(EU) Cryptography [PS]
 
Thurs, Apr 21 Approximation Algorithms:
(LA) Approximation Algorithms [PS]
(EU) Approximately Correct Algorithms [PS]

Auxiliary Notes:
(SS) Approximation Algorithms and Cook's Theorem [PS]
[CLRS 35]
Tues, Apr 26 Exam on Dynamic Programming and Algebraic Algorithms  
Tues, May 3 7:00 pm - 10:00 pm Final Exam  

Color codes and initials for credits for lecture notes:


Course textbook:


Other references made available:



Last Modified: Tuesday, 12-Apr-2005 16:26:47 EDT