CS 3510 -- Design and Analysis of Algorithms

Spring 2005

[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 10
to
Mon, Jan 24
Berkeley notes,
[CLRS] Chapter 31,
or Harvard Lecture 13 & Lecture 14,
Quiz 1
Friday, Jan 28
It will cover the number theoretic algorithms and cryptography.
Programming Assignment 1 will be to implement RSA.
Due Friday, Feb 4
 
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 26,
Mon, Jan 31 to
Mon, Feb 7
Berkeley notes,
Harvard Lecture 2 & Lecture 8,
or [CLRS] Chapter 3,4,9
Quiz 2
Friday, Feb 11
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
Wed, Feb 9,
Mon, Feb 14 to
Fri, Feb 18
CLRS Chapter 22,
Berkeley notes,
Harvard Lecture 3
Quiz 3
Friday, Feb 25
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)
Union-Find data structure
Mon Feb 21, Wed Feb 23 and
Mon, Feb 28 to Mon, Mar 7
CLRS Chapters 22-25 (and Chapter 6.1-6.3 for Heaps)
Berkeley notes BFS/Shortest Paths & MSTs
Harvard Lecture 4 & Lecture 5
Programming Assignment 2 will be to analyze Web graphs.
Due Friday, Mar 4
 
Quiz 4
Friday, Mar 11
It will cover BFS, shortest paths, MST.
Turing Machines, Undecidability, Complexity, NP-completeness:
Turing machines and the Church-Turing thesis
Halting problem, undecidability, & reductions
Complexity classes, P, NP, NP-completeness, efficient verification
Circuit-Sat is NP-complete
NP-complete reductions
NP-complete problems
Web Mar 9,
Mon, Mar 14 to Fri, Mar 18, and
Mon, Mar 28 to Wed, Apr 6
Our Computability notes
CLRS Chapters 34
Berkeley notes I & II
Harvard Lecture 18
Quiz 5
Friday, Apr 8
It will cover Turing machines, undecidability, complexity, and NP-completeness.
Dynamic programming:
Knapsack
Parenthesizing
Edit distance
Mon Apr 11 to Wed Apr 20

CLRS Chapters 34, 15
Dynamic Programming Notes:
Berkeley Version 1, or 2a & 2b
Harvard Lecture 9
Programming Assignment 3 will be on SAT solving.
Due Friday, Apr 15
 
Quiz 6
Friday, Apr 22
It will cover Dynamic Programming.
Hashing and advanced topics :
Hash functions
Open address hash tables
Bloom filters
Advanced topics (to be determined).
Mon, Apr 25 to Fri, Apr 29
CLRS Chapters 34, 15
Harvard Lecture 10 & Lecture 11
Final Exams:
Section A (1pm lecture): Wednesday, May 4, 2:50-5:40 pm, CoC 17
Section B (11am lecture): Monday, May 2, 2:50-5:40 pm, IC 213