CS 311 - Design and Analysis of Algorithms
Fall Semester, 2001-2002
Go straight to the course syllabus.
An algorithm can be loosely defined as a finite sequence of steps which
produces the solution to a problem. Algorithms are the heart of computer
science. In fact, computer science is properly defined as the study of
algorithms.
A computer program is an implementation of an algorithm on a computer
using a particular programming language. It is for this reason that
computer scientists are interested in computers because computers are
machines that can be programmed to carry out algorithms quickly and
accurately. Perhaps a better name for our discipline is "computing
science" because our focus is not so much on computers as it is on
computing and algorithms.
Our goal in this course is to learn the principles and techniques for
developing good algorithms and data structures. We will do this by
ignoring programming details and concentrating on the essence of the
algorithms themselves. Nevertheless, an ability to program is necessary
in order to implement the results on an actual computer.
CLASS INFORMATION:
- Meeting time: MWF 1:10-2:00
- Meeting room: Glatfelter 107
OFFICE AND OFFICE HOURS:
- Office: Glatfelter 211
- Office hours: MWF 8:00-9:50, MWF 11:00-11:50, and by appointment
TELEPHONE NUMBER AND E-MAIL:
- Telephone: 337-6630
- E-mail: jfink@gettysburg.edu
- WWW page: http://cs.gettysburg.edu/~jfink/courses/cs311.html
EXAM DATES:
- Exam 1: Friday, September 28
- Exam 2: Friday, November 2
- Final Exam: Sunday, December 9, 1:30-4:30 PM
PREREQUISITES:
- CS 216 - Data Structures (C grade or better)
- Math 208 - Discrete Structures (C grade or better)
TEXTBOOK:
- Computer Algorithms, Introduction to Design and Analysis,
third edition, by Sara Baase and Allen Van Gelder
GRADING POLICY:
- Your grade will be determined by your scores on the following:
- homework (25%);
- programming assignments (15%);
- two exams (12.5% each);
- final exam (25%);
- class attendance and participation; attendance at three or more
department colloquia and other designated special events (10%).
- ***There will be no make-up exams, and late work will not be accepted.***
READINGS:
- Assigned readings should be done before class, and you should also
attempt a problem or two from the textbook.
- Working problems is essential for an understanding of the material, and
there are plenty of problems in the textbook.
HOMEWORK:
- Homework will be assigned, collected, and graded.
- Assignments may include material that will not be discussed in class.
You are expected to learn this material on your own and to make use of the
resources available to you to complete the assignments.
- Grading will be based on both the content and the quality of your
write-up. NEATNESS COUNTS! Show all work necessary to justify your
solutions. Answers alone are not sufficient.
- You may work with other students on the homework; in fact, I encourage
that. However, your write-up should be your own.
PROGRAMMING ASSIGNMENTS:
- In addition to the written homework, there will be several programming
assignments.
- Grading of programs will be based on design, documentation, and style
as well as on correctness.
- The programming assignments are designed for individual or small group
work. If you need help, you may discuss the assignments with your instructor
or other groups to a limited extent. Interpret this to mean that discussions
with other groups may involve only pencil and paper work of a general nature.
You may not look at other groups' program files or the specifics of other
groups' solutions.
ADDITIONAL REFERENCES:
- Introduction to Algorithms, second edition, by Thomas H. Cormen,
Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- Introduction to Algorithms, A Creative Approach by Udi Manber