Computer Sciences Dept.

CS 577 Honors - Introduction to Algorithms

Spring 2011
Picture of Kleinberg-Tardos cover

Course Description

This course provides an undergraduate-level introduction to the design and analysis of algorithms. The main focus lies on techniques for constructing correct efficient algorithms and on tools to reason about them. Design paradigms include greed, divide-and-conquer, dynamic programming, reductions, and the use of randomness. A second focus point is computational intractability. NP-complete problems are covered, as well as ways to deal with them.

The course forms a foundation for all areas of computer science. The particular computational problems discussed have applications in artificial intelligence, computational biology, compiler construction, hardware and network protocols, and optimization.

Text

Jon Kleinberg and Eva Tardos, Algorithm Design, Addison-Wesley, 2006.

Prerequisites

CS 240 (Discrete Mathematics), and CS 367 (Data Structures) are essential prerequisites.

A self-calibration homework will be handed out in the first lecture.

Course Work

  • Homework (50%). There will be an assignment every other week. Given that this is an honors section, expect the problems to be challenging. Some of them will come from the ACM International Collegiate Programming Contest. You are allowed to discuss the problems in group but you should write out the solutions on your own and give credit to your collaborators. No sources other than the instructor, the TA, and your fellow students in the course are allowed. Model solutions will be handed out during the lecture in which the homework is due, so no late assignments can be accepted.

  • Exams: Midterm (20%) on T 3/22 and R 3/24 in class. Final (30%) on N 5/8, 7:45-9:45am. Both exams are closed book and closed notes.

References

The following book is on reserve in Wendt library:

  • T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Introduction to Algorithms, 3rd edition, 2009.

 
Computer Sciences | UW Home