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)
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]

[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]

[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]

[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]

[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]

[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]

[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]

[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]

[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]

[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]

[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]
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  

Color codes and initials for credits for lecture notes:

Course textbook:

Other references made available:

Last Modified: Thursday, 27-Oct-2005 13:24:02 EDT