Computer Science 282
Design and Analysis of Efficient Algorithms
Fall 2008
Instructor: Daniel Stefankovic
Class: Tuesday, Thursday 11:05am12:20pm, CSB 601.
Instructor office hours: after class (Tuesday, Thursday 12:30pm1:30pm, CSB 620).
Problem session: Monday 8pm9pm, CSB 601.
TA: Tivadar Papai
TA office hours: Monday, Wednesday 5pm6pm, CSB 725.
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
Sep. 2 Tu  QUIZ #0
TOPIC: Number Theory/Cryptography
Sep. 4 Th  Why is number theory interesting (RSA)? Basic operations (addition, multiplication, division)
Sep. 9 Tu  GCD. Euclid's algorithm. Modular arithmetic. Extended Euclid's algorithm.
Sep. 11 Th  Primality testing.
Sep. 16 Tu  QUIZ #1
TOPIC: Divide and Conquer Algorithms
Sep. 18 Th  recurrences, KaratsubaOffman
Sep. 23 Tu  deterministic lineartime kselect algorithm, basics of probability
Sep. 25 Th  Basics of probability, randomized kselect
Sep. 30 Tu  Fourier transform
Oct. 2 Th  QUIZ #2
TOPIC: Graph algorithms
Oct. 7 Tu  Finding connected components, DFS, testing whether graph is strongly connected.
Oct. 9 Th  Linearization (topological sorting). Strongly connected components.
Oct. 14 Tu  BFS, Shortest paths  Dijkstra.
Oct. 16 Th  Dealing with negative edge weights(Bellman Ford). FloydWarshal.
Oct. 21 Tu  Minimum spanning trees.
Oct. 23 Th  QUIZ #3
TOPIC: Greedy algorithms/Dynamic programming
Oct. 28 Tu  When does greedy algorithm for the coin change problem work?
Oct. 30 Th  Dynamic programming for the coin change problem. Knapsack (integer weights).
Nov. 4 Tu  Knapsack revisited (integer values). Longest increasing subsequence.
Nov. 6 Th  Edit distance. Chain matrix multiplication.
Nov. 11 Tu  QUIZ #4
TOPIC: Linear programming
Nov. 13 Th  Solving systems of equations, Rank of a matrix, Gaussian elimination.
Nov. 18 Tu  Linear programming, duality, zerosum games.
Nov. 20 Th  Solving linear programs  simplex algorithm.
Nov. 25 Tu  QUIZ #5
Nov. 27 Th (thanksgiving)
TOPIC: Hardness/Coping with hardness
reading: DPV Chapters 8,9,
Dec. 2 Tu  NP completness, reductions.
Dec. 4 Th  Approximation algorithms: vertex cover, clustering.
Dec. 9 Tu  Approximation algorithms: metric TSP, knapsack.
Dec. 11 Th  QUIZ #6
Comprehensive final exam
Dec. 19 Friday 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.

Each problem must be written on a separate
lettersize paper.

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 makeup quizzes.
 In the final evaluation everybody's one lowest quiz score will be dropped.
This course follows
The University Policy on Academic Honesty .