Spring 2006
CS 336: Design and Analysis of Algorithms
9:30--10:45 Tuesday and Thursday

Tech A110
Department of Electrical Engineering and Computer Science
Northwestern University

class web page: http://www.cs.northwestern.edu/~kao/cs336-algorithms

Copyright (c) 1989--2006, Ming-Yang Kao
(last updated 3/18/2006)

 

*** Important Announcements. Please Check Daily. ***

Synopsis:

This course will discuss fundamental concepts and techniques for designing efficient algorithms and analyzing their performance. Topics include recurrences; sorting and order statistics; dynamic programming; greedy strategies; amortized analysis; advanced data structures; linear programming; efficient reductions and computational hardness.

 
Instructor:  

Ming-Yang Kao
Office: Tech M324
Phone: 847-563-0426
Email: kao@cs.northwestern.edu
URL: www.cs.northwestern.edu/~kao
Office Hours: 11:00--12:00 Tuesday and Wednesday or by appointment

 

Teaching Assistant:  

Robbie Schweller (4th-year Graduate Student)

Office: Ford 2-206
Phone: 847-467-4971

Email: schwellerr@cs.northwestern.edu

URL: www.cs.northwestern.edu/~schwellerr

Office Hours: 1:00--2:00 Monday and Wednesday or by appointment

 

Prerequisites:
  • CS 310 Mathematical Foundations of Computer Science

  • CS 311 Data Structures and Data Management

Course Work and Grading Policy:

Your grade will be based on weekly reading assignments (0%), eight weekly problem sets (7.5% each, 60% in total), one midterm examination (15%), and one final examination (25%).

  • Weekly Reading Assignments: Reading assignments will be posted on the class web page. You are responsible for the materials that are assigned but are not covered in detail or at all in class. Some of such materials are covered in the prerequisite or even earlier courses.

  • Weekly Problems Sets: Starting the second week, a problem set will be posted on the class web page each Thursday and will be due at the start of class on the following Thursday. You will have one week to work on each problem set. A total of 8 problem sets will be assigned.

  • Midterm Examination: The midterm examination will be held in class on Tuesday, 5/2/2006.

  • Final Examination: The final examination will be held  as scheduled by the University.

Without a Dean's excuse, no late problem set will be accepted, nor will early or make-up examinations be given. 

Textbooks:
  • Required: T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. 2nd Edition, 2001, MIT Press.

  • Recommended: J. Kleinberg and E. Tardos. Algorithm Design. 2005, Addison Wesley.

Supplemental Course Materials:
Tentative Schedule:

This schedule is subject to modification. More details will be added as they become available.

  • Topic 0 (1 meeting): Introduction (Syllabus).

  • Topic 1 (1 meeting): Examples of Efficient Algorithms and Performance Analysis (Chapters 1--3).

  • Topic 2 (2 meetings): Recurrences (Chapter 4).

  • Topic 3 (2 meetings): Sorting and Order Statistics (Chapters 7, 8 and 9).

  • Topic 4 (2 meetings): Dynamic Programming (Chapter 15).

  • Topic 5 (2 meetings): Greedy Strategies (Chapter 16).

  • Midterm Examination (1 meeting): Tuesday, 5/2/2005.

  • Topic 6 (3 meetings): Amortized Analysis (Chapter 17).

  • Topic 7 (2 meetings): Advanced Data Structures (Chapters 19 and 21).

  • Topic 8 (2 meetings): Linear Programming (Chapter 29).

  • Topic 9 (2 meetings): Efficient Reductions and Computational Hardness (Chapter 34).

  • Final Examination: 12:00--2:00, Friday, 6/9/2006, Tech Room A110.

Weekly Reading Assignments and Problem Sets:

  • Week 1.

    • Reading Assignment: Chapters 1, 2, and 3 for Thursday's discussion.

    • There is no weekly problem set for this Thursday. The first problem set will be assigned next week.

  • Week 2.

    • Reading Assignment: Section 4.3 for Tuesday's discussion; Sections 4.1 and 4.2 for Thursday's.

    • Weekly Problem Set #1: posted 21:35 PM, 4/5/2006.

  • Week 3.

    • Reading Assignment: Chapters 7 and 8 for Tuesday's discussion; Chapter 9 for Thursday's.

    • Weekly Problem Set #2: posted 20:55 PM, 4/12/2006.

  • Week 4.

  • Week 5.

  • Week 6.

    • Reading Assignment: the midterm examination on Tuesday; Sections 17.1 through 17.3 for Thursday's discussion.

    • Weekly Problem Set #5: posted 23:00 PM, 5/3/2006.

  • Week 7.

  • Week 8.

    • Reading Assignment: Chapter 19 for Tuesday's discussion; Chapter 21 for Thursday's.

    • Weekly Problem Set #7: posted 22:02 PM, 5/17/2006.

  • Week 9.

  • Week 10.

    • Reading Assignment: Chapter 34.

  • Week 11. Final Examination Week. The final examination will be held 12:00--2:00, Friday, 6/9/2006, Tech Room A110.