CSCI 256
Design and analysis of algorithms

Spring, 2001


This course is concerned with the design and analysis of efficient computer algorithms. What constitutes efficiency and how it is measured are two of the topics which will be discussed early in the semester. After that we will approach the subject by investigating some of the most well-known and effective non-numeric algorithms and the methods of design that they illustrate. While efficient solutions to many important computational problems will be presented, the goal is not to be encyclopedic but rather to learn how one attempts to apply general principles in order to create effective programs. Of course an algorithm is not of much use unless we are certain that it solves the problem for which it was designed. Thus verifying the correctness of the algorithms we investigate will be of central importance in the course. Then, after each algorithm is designed and 'debugged' (that is, proven correct), we will be interested in measuring its efficiency.

Prerequisites: CSCI 136, Data Structures and Advanced Programming, and Math 251, Discrete Mathematics.


Course Information

  • Instructor: Kim Bruce, kim@cs.williams.edu, 305 Bronfman, X2273

  • Office Hours: MWTh 2:00-3:00, T 4:00-5:00, F 1:00-2:00, and by appointment

  • TA: Grayson Myers is the CS256 TA. He will mainly be helping grade homework.

  • Text: "Introduction to Algorithms"; MIT Press, 1991, Cormen, Leiserson, and Rivest. A list of typos is available in both postscript and pdf formats (though the postscript is clearer if you can read it), and should be checked for each section of the text covered.

  • Syllabus and Grading

  • Lecture and Reading Schedule

  • Homework

  • Supplementary material


  • Back to:

  • Kim Bruce's home page
  • CS Department home page
  • kim@cs.williams.edu