Computer Science 226 |
Instructors: | Robert Sedgewick, CS Bldg. 319, 258-4345, rs@cs. |
Kevin Wayne, CS Bldg. 207, 258-4455, wayne@cs. |
Description: This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric and graph algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications.
Course Secretary: Mitra Kelly, CS Bldg. 323, 258-4562, mkelly@cs.
Lectures: MW 11-11:50, McCosh 46. Attendance at lectures is expected.
Precepts: Precepts meet on Monday for 50 minutes. The first precept is 2/11. At precepts, we return and discuss the program and written assignment that were handed in the previous week, and give details and answer questions about the new assignment. You should come prepared to participate in the discussion, not just ask questions.
# | Time | Room | Preceptor | Office | Hours | |
1 | M 12:30 | CS 102 | Bo Brinkman | Cafe Vivian | W 12:00 (noon) | brinkman@cs |
2 | M 1:30 | CS 103 | Bob Sedgewick | CS 319 | T 12-1 | rs@cs |
5 | M 1:30 | Friend 110 | Kevin Wayne | CS 207 | Mon 3:30pm | wayne@cs |
3 | M 2:30 | Friend 204 | Kevin Wayne | CS 207 | Wed 3pm | wayne@cs |
4 | M 3:30 | CS 102 | Lujo Bauer | CS 418a | Wed 5pm | lbauer@cs |
Web Site:
The COS 226 course website is
http://www.cs.princeton.edu/courses/cs226.
It contains copies of the lecture notes, programming assignments,
and exercises.
Textbooks: The course textbooks are:
Prerequisites: Students in the course should have an understanding of the basic principles of computer science and computer architecture, significant programming experience with a working knowledge of C and Unix (or some similar programming environment) and familiarity with elementary data structures such as arrays, stacks, queues, and trees. Most students registered for the course have this background; those who do not may have to work harder at the beginning.
The course will cover algorithms from a variety of applications areas, and several mathematical topics will be discussed. The course is intended to be self-contained with respect to such topics, but students are likely to find any mathematical experience helpful.
Grades: Your grade for the course will be based on the following components:
There will also be weekly exercises. These will be due at precept on Mondays. These will consist of short questions on the material in the lectures, notes, and programs. Many of these questions will reappear on the exams, but with different input data.
There will be an in-class midterm exam on the Wednesday before break, which will cover all material up to and including the lecture on the previous Wednesday. The final exam is comprehensive, although it will stress material covered since the midterm. Unless prior arrangements are made, a grade of zero will be recorded for missed exams. Exams are closed book. You may bring a 8.5-by-11 sheet with handwritten notes to the exam. No calculators or other computational devices.
Computers: You may develop your programs on any machine that you like: we encourage you to use your own equipment. However, your finished programs must run on any ANSI C89 compliant system. We provide instructions for setting up such a C programming environment on Windows, OS X, and arizona machines.