|
Date
|
Topics and Lecture Notes
(See below for color codes for credits for lecture notes)
|
Required Readings (from [CLRS] unless otherwise noted)
|
|
Tues, Aug 28
|
Overview of the course: Introduction to Algorithms
(SS) analyzing
algorithms [PS]
|
[CLRS 1]
|
|
Thurs, Aug 30
|
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, Sep 4
|
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 6
|
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 11
|
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]
|
|
Thursday, Sep 13
|
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]
|
|
Tuesday, Sep 18
|
Quiz over
Asymptotic Notation and Recurrences
|
|
|
Thurs, Sep 20
|
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 25
|
Overview of
Randomized and Average-Case Analysis:
(EU) Probabilistic
Algorithms [PS]
Auxiliary notes:
(JR) Probability
Theory [PDF]
[PS]
|
|
|
Thurs, Sep 27
|
(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 2
|
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 4
|
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 9
|
FALL BREAK
|
|
|
Thursday, Oct 11
|
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]
|
|
Tuesday, Oct 16
|
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]
|
|
Thurs, Oct 18
|
Quiz on Sorting and Searching, Randomized Analysis and Amortized Analysis
|
|
|
Tues, Oct 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]
|
|
Thurs, Oct 25
|
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, Oct 30
|
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 1
|
(JR) Flow
Algorithms [PS]
[PDF]
|
[CLRS 26.2-26.3]
|
|
Tues, Nov 6
|
Review Lecture on
Graph Algorithms
|
|
|
Thurs, Nov 8
|
Exam on Amortized
analysis and Graph Algorithm topics
|
|
|
Tues, Nov 13
|
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 15
|
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 20
|
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]
|
|
Thurs, Nov 22
|
THANKSGIVING
BREAK
|
|
|
Tues, Nov 27
|
Number Theory:
(JR) Number
Theory Algorithms [PDF]
[PS]
|
[CLRS 31]
|
|
Thurs, Nov 29
|
Cryptography:
(EU) Cryptography
[PS]
|
|
|
Tues, Dec 4
|
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 6
|
Exam on Network
flows, Dynamic Programming and Algebraic Algorithms
|
|
|
Time to be
determined
|
PLEASE
DOUBLE-CHECK THE EXAM DATE AND TIME WITH REGISTRAR
|
Final Exam
|
|