CS 3510 -- Design and Analysis of Algorithms

Spring 2007

[Main Page] [Assignments]


 
Topics
Date(s)
Reading
Number Theoretic Algorithms and Cryptography:
Algorithms for multiplication & division
Modular arithmetic & efficient algorithms
GCD and Euclid's Algorithm
Inverses
Fermat's Little Theorem
Randomized primality testing
Public-key cryptographic systems
RSA Cryptosystem

Mon, Jan 8
to
Mon, Jan 22

[DPV] Chapter 1
Quiz 1
Friday, January 26
It will cover the number theoretic algorithms and cryptography.
Recurrences & divide and conquer:
Big-Oh notation, writing & solving recurrences
Divide and Conquer
MergeSort
Simultaneous Min & Max,
Strassen's algorithm for mutliplying large n bit numbers
Deterministic median
Randomized median
Wed, Jan 24,
Mon, Jan 29 to
Mon, Feb 5

[DPV] Chapter 2
Quiz 2
Wednesday, February 7
It will cover solving recurrences and divide and conquer algorithms.
Intro to Graphs:
Adjacency list and adjacency matrix representations
Depth First Search (DFS)
Connectivity in undirected graphs
Directed graphs and DFS on directed graphs
Topologically sorting Directed Acyclic Graphs (DAGs)
Strongly connected components in directed graphs
Fri, Feb 9
to
Fri, Feb 16

[DPV] Chapter 3
Quiz 3
Wednesday, February 21
It will cover intro to graphs.
Breadth First Search, Shortest paths, Minimum Spanning Trees:
Breadth First Search (BFS)
Dijkstra's Algorithm
Heaps
Floyd-Warshall algorithm
Detecting Negative Weight Cycles
Minimum Spanning Trees (MST)
Mon, Feb 26
to
Fri, Mar 2

[DPV] Chapter 4 and 5.1
Quiz 4
Wednesday, March 7
It will cover BFS, shortest paths, MST.
2-SAT and Davis-Putnam for 3-SAT
and
Turing Machines, Complexity, NP-completeness
Mon, Mar 5 to Fri, Mar 16,
and
Mon, Mar 26 to Fri, Mar 30

[DPV] Chapter 8
Quiz 5
Wednesday, April 4
It will cover Turing machines, complexity, and NP-completeness.
Linear Programming
and
Dynamic programming
Mon Apr 2 to Apr 13

[DPV] Chapters 6 and 7
Quiz 6
Wednesday, April 18
It will cover Dynamic Programming and Linear Programming.
Hashing and advanced topics (TBD)
Mon, Apr 16 to Fri, Apr 27
Lecture Notes from Michael Mitzenmacher's course at Harvard
Lecture 10 & Lecture 11