Spring 2010
[Main Page] [Assignments]
Topics |
Date(s) |
Reading |
Review of big-O notation Algorithms for basic arithmetic (addition, multiplication, division) Modular arithmetic, substitution rule Algorithms for modular arithmetic (addition, multiplication) |
Monday, January 11 |
[DPV] Chapters 1.1 and 1.2.1 |
Modular exponentation Multiplicative inverses Extended Euclid algorithm |
Wednesday January 13 |
[DPV] Chapters 1.2.2-1.2.5 |
Extended Euclid algorithm analysis Fermat's little theorem Primality testing Generating random primes |
Friday January 15 |
[DPV] Chapters 1.2.4 and 1.3 |
Proof of
Fermat's little theorem
Euclid's theorem Start of RSA cryptosystem |
Wednesday January 20
|
[DPV] Chapters 1.3 and 1.4 |
RSA cryptosystem
Proof of correctness of RSA |
Friday January 22
|
[DPV] Chapter 1.4 |
Miller-Rabin primality test
Chinese Remainder Theorem |
Monday January 25
|
The Miller-Rabin primality test is discussed on page 28 of [DPV]. The Wikipedia has a nice description of the Miller-Rabin algorithm and also the Chinese Remainder Theorem. |
Divide and conquer: |
Friday January 29
|
[DPV] Chapter 2.1 and 2.5 |
Solving recurrences and
the Master theorem
Matrix Multiplication |
Monday February 1
|
[DPV] Chapter 2.2 and 2.5 |
Fast Fourier Transform (FFT) |
Wednesday February 3
and Friday February 5 |
[DPV] Chapter 2.6 |
Median in linear time: |
Monday February 8
|
Randomized algorithm is in [DPV] Chapter 2.4 |
Exam 1: RSA and divide-and-conquer |
Wednesday February 10
|
|
DFS: |
Friday February 12
|
[DPV] Chapter 3.1-3.3 |
DFS: |
Monday February 15
|
[DPV] Chapter 3.4 |
BFS
Dijkstra's algorithm for shortest paths |
Wednesday February 17
|
[DPV] Chapters 4.1-4.4 |
Priority queue (min-heap) implementation
|
Friday February 19
|
[DPV] Chapter 4.5 |
Shortest paths with negative length edges:
|
Monday February 22
|
[DPV] Chapter 4.6 |
Minimum spanning trees:
|
Wednesday February 24
|
[DPV] Chapters 5.1.5 and 5.1.2 |
Minimum spanning trees:
|
Friday February 26
|
[DPV] Chapter 5.1 |
Analysis of union-find data structure
|
Monday March 1
|
[DPV] Chapter 5.1 |
Exam 2: Graph algorithms |
Wednesday March 3
|
|
Dynamic Programming:
|
Friday March 5
|
[DPV] Chapters 6.1-6.2 |
Dynamic Programming:
|
Monday March 8
|
[DPV] Chapter 6.4 |
Dynamic Programming:
|
Wednesday March 10
|
[DPV] Chapters 6.3 and 6.5 |
Dynamic Programming:
|
Friday March 12
|
For Floyd-Warshall, see:
|
Review of Dynamic Programming for the exam |
Monday March 15
|
|
Exam 3: Dynamic programming |
Wednesday March 17
|
|
Guest lecture by
Milena Mihail
on
Prof. Mihail will be teaching Advanced Algorithms in the fall, sign up! |
Friday March 19
|
[DPV] Chapter 9.2.4 |
Linear programming:
Duality Simplex algorithm Max flow Max-flow=min-cut Bipartite matching |
Monday March 29
to Friday April 2 |
[DPV] Chapter 7 |
NP-completeness |
Monday April 5
to Friday April 9 |
[DPV] Chapter 8 |
NP-completeness of SAT
Undecidability of the halting problem |
Monday April 12
|
[DPV] End of Chapter 8.3 |
Approximation algorithms:
|
Wednesday April 14
|
See [DPV] Chapter 9.2 for vertex cover approx alg. |
Bloom filters |
Friday April 16
|
See Wikipedia |
Review for Exam 4 |
Monday April 19
|
|
Exam 4: NP-completeness, linear programming, and max-flow |
Wednesday April 21
|
|
Markov chains |
Friday April 23
|
|
Quantum computing guest lecture
by Ken Brown |
Monday April 26
|
|
PageRank |
Wednesday April 28
|
|
Review for Final Exam |
Friday April 30
|
|