UW Logo

CS 466/666, Spring 2006

Advanced Algorithms

(link to CS466/666, Fall 2005)


Instructor:

Timothy Chan (DC2107, x6941, tmchan "at" cs, office hrs: Tues 2:30-3:30 and Thurs 3:30-4:30 (or by appointment))

Meeting Time/Place:

RCH 306, TTh 1:00-2:20

TAs:

David Pal (DC3549B, x5672, dpal "at" cs, office hrs: Wed 2:00-3:00)
Michael Spriggs (DC2305B, x5350, mjspriggs "at" cs, office hrs: Mon 1:00-2:00)

References:

There is no required textbook for this course. The following references have been placed on reserve in DC (for 3 hour loan), if they are of any assistance.

Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (2nd ed.), MIT Press, 2001 (QA76.6 .C662) [CLRS]
Motwani and Raghavan, Randomized Algorithms, Cambridge University Press, 1995 (QA274.M68) [MR]
Vazirani, Approximation Algorithms, Springer-Verlag, 2001 (QA76.9.A43 V39) [V]
Borodin and El-Yaniv, Online Computation and Competitive Analysis, Cambridge University Press, 1998 (QA76.9.A43 B67) [BE]

Course Work:

General Policies
A1 (out May 11; due May 25 Thurs noon)
A2 (out May 25; due June 8 Thurs noon)
Midterm (June 15 Thurs 1:00-2:25, in room MC1085)
A3 (out June 15; due June 29 Thurs noon)
A4 (out June 29; due July 13 Thurs noon)
A5 (out July 13; due July 26 Wed noon)
Final exam (July 31 Mon 9:00am-11:30am, in room RCH 307)
Project for CS666 students (due August 15 Tue noon)

Announcements:

(Important announcements will be posted here.)

Midterm solutions are now available on reserve (UWD 1713) in the DC library.

Small typo in A3: in Q3c, the hint should read: "part (b) is meant to help".

Note: CS666 project guidelines are now available (see the link above).

Solutions to A5 are available electronically.

Newsgroup:

news:uw.cs.cs466 (for additional info, questions and replies from TAs, etc.)

Lecture Topics:

The lectures are organized around problems instead of techniques, to motivate things better. Most of the lectures will begin with a specific problem and then explore different ideas on how to come up with an efficient algorithm. Along the way, we will indeed encounter new design techniques and variations on the analysis model (themes like amortization, randomization, approximation, online computation, etc., as promised in the handbook description), but the main emphasis is how to think about problems...

[You are of course responsible only for materials covered in the lectures (summarized below), but I have included below some extra references to papers and book chapters, mainly to introduce research issues to grad students (undergrad students: please ignore them, unless you have developed an intense passion for one of the problems). Note that these references are generally harder to read or go beyond the lecture materials.]

Problem of May 2: Finding triangles in graphs

Problem of May 4, 9: Convex hulls in 2D

Problem of May 11,16: Minimum (dynamically!)

Problem of May 18, 23: Range searching in 2D

Problem of May 23, 25: "Incremental" graph connectivity---or, in disguise, the union-find problem

Problem of May 30: Primality testing

Problem of June 1: String matching

Problem of June 6: AND/OR tree evaluation

Problem of June 8: Median

Problem of June 13: Smallest enclosing circle

Problem of June 20: Satisfiability

Problem of June 22: Vertex cover

Problem of July 27: Traveling salesman (metric case)

Problem of June 29: Disjoint unit squares

Problem of July 4, 6: Bin packing

Problem of July 11: MAX-SAT

Problem of July 13: "Lost cow"

Problem of July 18, 20: Paging

July 25: No class


(Maintained by Timothy Chan)