Computer Science 282
Design and Analysis of Efficient Algorithms
Fall 2009
Instructor:
Daniel Stefankovic
Class: Tuesday, Thursday 11:05am-12:20pm, CSB 601.
Instructor office hours (CSB 620): Mon 4:00pm-5:00pm, and by appointment.
TA:
Tivadar Papai
TA office hours: Wed 4:15pm-5:15pm, and by appointment.
Textbooks:
-
Algorithms, S. Dasgupta, C. Papadimitriou, U. Vazirani (a
draft is available online), 2006.
-
Introduction to Algorithms (2nd edition), T. Cormen, C. Leiserson, R. Rivest, and C. Stein, 2001.
Other resources/recommended reading:
-
Algorithm Design, J. Kleinberg and E. Tardos, 2005.
-
The Design and Analysis of Algorithms, D. Kozen, 1991.
-
The Design and Analysis of Computer Algorithms,
A. Aho, J. Hopcroft, J. Ulman, 1974.
-
Probability and Computing: Randomized Algorithms and Probabilistic Analysis,
M. Mitzenmacher, E. Upfal, 2005.
-
Randomized Algorithms,
R. Motwani, P. Raghavan, 1995.
-
Approximation Algorithms,
V. Vazirani, 2004.
Prerequisites: MTH150 Discrete Mathematics and CSC172 Data Structures.
Schedule
TOPIC: Number Theory/Cryptography
Sep. 1 Tu - Why is number theory interesting (RSA)? Basic operations (addition, multiplication, division)
Sep. 3 Th - GCD. Euclid's algorithm. Modular arithmetic. Extended Euclid's algorithm.
Sep. 8 Tu - Primality testing.
Sep. 10 Th - QUIZ #1
TOPIC: Divide and Conquer Algorithms
Sep. 15 Tu - recurrences, Karatsuba-Offman
Sep. 17 Th - deterministic linear-time k-select algorithm
Sep. 22 Tu - randomized k-select
Sep. 24 Th - Fast fourier transform
Sep. 29 Tu - QUIZ #2
TOPIC: Graph algorithms
Oct. 1 Th - Finding connected components, DFS, testing whether graph is strongly connected.
Oct. 6 Tu - Linearization (topological sorting). Strongly connected components.
Oct. 8 Th - BFS, Shortest paths - Dijkstra.
Oct. 13 Tu - Dealing with negative edge weights(Bellman Ford). Floyd-Warshal.
Oct. 15 Th - Minimum spanning trees.
Oct. 20 Tu - Matchings.
Oct. 22 Th - QUIZ #3
TOPIC: Greedy algorithms/Dynamic programming
Oct. 27 Tu - When does greedy algorithm for the coin change problem work?
Oct. 29 Th - Dynamic programming for the coin change problem. Knapsack (integer weights).
Nov. 3 Tu - Knapsack revisited (integer values). Longest increasing subsequence.
Nov. 5 Th - Edit distance. Chain matrix multiplication.
Nov. 10 Tu - QUIZ #4
TOPIC: Linear programming
Nov. 12 Th - Solving systems of equations, Rank of a matrix, Gaussian elimination.
Nov. 17 Tu - Linear programming, duality, zero-sum games.
Nov. 19 Th - Solving linear programs - simplex algorithm.
Nov. 24 Tu - QUIZ #5
Nov. 26 Th (thanksgiving)
TOPIC: Hardness/Coping with hardness
Dec. 1 Tu - NP completness, reductions.
Dec. 3 Th - Approximation algorithms: vertex cover, clustering.
Dec. 8 Tu - Approximation algorithms: metric TSP, knapsack.
Dec. 10 Th - QUIZ #6
Comprehensive final exam
Dec. 19 Saturday FINAL EXAM (4:00pm, CSB 601)
Grading
- Homeworks: 15%.
- Quizzes: 60%.
- Final: 25%.
Homework Rules
-
Homework is collected on the due date, before class.
-
No late homework will be accepted without instructor's permission
(a permission must be requested at least 24 hours before the due date).
-
In the final evaluation everybody's one lowest homework score will be dropped.
-
You may work with other people on the homework, but you must each write up your
solutions separately (without any written aid). If you work with other people,
indicate who you worked with on your solution.
Test Rules
- All tests are closed book. No text or notes, no scratch paper allowed.
- There will be 6 quizzes. There will be no make-up quizzes.
- In the final evaluation everybody's one lowest quiz score will be dropped.
This course follows
The University Policy on Academic Honesty .