CS 256: Design and Analysis of Algorithms

Syllabus - Spring 1996


Instructor:


Office Hours:


Texts


Course Objectives:

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—and a refresher on solving problems by induction—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.

Exams:

There will be one mid-term exam and a final exam. Each of these exams will be 24-hour take-home exams. The mid-term is scheduled for the week of March 11-15.

Grades:

Your grade will be computed (roughly) as follows:

Programs:

There will be two or three programming assignments given during the course of the semester. The programs are to be implemented on the department's Sun or Macintosh computers. You will each be given an account on our Sun network at the beginning of the semester. I will expect you all to read your e-mail there regularly. If you prefer to read e-mail from a different network, please set up your mail to forward properly. You may write your programs in either C or Pascal (including object-oriented variants). Any other language must be approved by me). Reading & Homework: It will be well worth your while to skim over the day's lecture material before class and then read it carefully after class. I will not be covering all of the material in the sections assigned during class time. You will be responsible for learning the extra material on your own.

Reading and Homework:

It will be well worth your while to skim over the day's lecture material before class and then read it carefully after class. I will not be covering all of the material in the sections assigned during class time. You will be responsible for learning the extra material on your own.

The best way to learn this type of material is by doing, and consequently, most of the work for this course will consist of working through the problems assigned for homework. Your homework grades will be an important part of your final grade for the course. Problems will be assigned and collected daily (with some exceptions). Of the problems assigned each day, all should be worked but only a few will be designated as problems to be handed in.

Homework will be due two class periods after it is assigned. Homework must be turned in at the beginning of class on the day it is due. After this time, the work will not be accepted (or graded). As an acknowledgment that the unexpected does occasionally happen, the two or three lowest homework grades of each student will be dropped when computing the final grade. Any student who turns in too few homework assignments during the course of the semester will be asked to withdraw from the course.

Honor Code:

Some students find it helpful to work together on problems. If you work on a problem with other students, you must indicate those students with whom you have worked. Be careful: if you depend too much on working with other students, you will likely find yourself at a disadvantage when taking the exams!

Uncredited collaborations will be considered a violation of the honor code and will be handled appropriately.

kim@cs.williams.edu