Time:  MWF 99:50 AM 
Place:  OLS 011 
Instructor:  David Luebke Office hours: Mondays & Thursdays 1011 AM Location: Olsson #219 
Assistants:  Pavel Sorokin, ps7k@cs.virginia.edu
Office hours: Mondays 24 PM, Fridays 35 PM (+ 56 PM if necessary). Location: CS Library, Olsson #236 
Assignments: 
Homework 1: Due Monday, January 28 Homework 2: Due Wednesday, February 6 Homework 3: Due Wednesday, February 13 Homework 4: Due Friday, March 9 (Some sample code) Homework 5: Due Friday, April 12 Homework 6: Due Monday, April 22 Homework 7: Due Thursday, May 2 Change in grading policy: I will drop the lowest homework grade 
Grade Book:  Check your grades on toolkit. 
Feedback:  Send us anonymous feedback on toolkit. 
Format:  Three lectures per week, with several homework assignments and two or three tests. 
Prerequisites:  Grades of C or better in CS 216, CS 202. CS 302 is recommended but not required. 
Description:  This course will provide a rigorous introduction to the design and analysis of algorithms. We will discuss classic problems (e.g., sorting, traveling salesman problem), classic algorithm design strategies (e.g., divideandconquer, greedy approaches), and classic algorithms and data structures (e.g., hash tables, Dijkstra's algorithm). We will also analyze algorithm complexity throughout, and touch on issues of tractibility such as "NPCompleteness". 
Texts: 
Required:
Introduction to Algorithms (Second Edition) by Cormen, Leiserson,
Rivest, and Stein, McGrawHill (2001).
This book is similar to the first edition, so you could probably get by with only the first edition. However, all homework problems assigned from the book will be referenced from the second edition; it is your responsibility to find a way to look them up. I strongly recommend that you buy the text rather than borrow it; this is one of only two text books that I still use on a regular basis. It is an indispensable reference. 
Lectures:  A tentative schedule of lecture topics is given below. The "CULTURE" topics
represent interesting but nonessential material from fields such as computational geometry and
computer graphics; they add some variety to the schedule but also give us some
slack if we get behind schedule. If we cover a "culture" topic
in class, you will be tested on it. 
Grading:  The final grade will be calculated as a weighted average:

Late Assignments:  Assignments are always due at the beginning of class on the due date, or at 11:59 PM on the due date if there is no class that day. Assignments one day late subtract 10%; two days late loses 30%. After 2 days the assignment will be considered a zero. 
Honor Code:  The honor code applies to all work turned in for this course.
Regarding homework: assignments are designed to facilitate your learning of the concepts; it is important that you understand the solutions to all problems, and the best way to gain an understanding is to work them out and write them up by yourself. However, there are occasions when outside help can be beneficial. Hence the policy: you are free to talk to others about problems at your discretion (though we strongly suggest you do this only when completely stuck), but you may not leave a meeting with any type of record of or notes pertaining to the discussion. (If you can recall the solution from memory, you probably understand it.) The actual writeup must be done entirely by yourself. 