Computer Science 226
Data Structures and Algorithms
Fall 2002


Course Information | Home Page | Assignments | Exercises | Lectures | Errata

COURSE INFORMATION

Course Summary

The study of fundamental data structures such as lists, queues, stacks, trees, heaps, hash tables, and their variations. The implementation and analysis of important algorithms for sorting, searching, string processing, geometric applications, graph manipulation, and matrix operations. Introduction to advanced algorithms and techniques. Prerequisite: COS 126.


Administrative Information

Lectures: TTh 11:00-11:50, Room: TBA

Professor: Bernard Chazelle - 404 CS Building - 258-5380 chazelle@cs.princeton.edu

Undergraduate Coordinator: Tina McCoy - 410 CS Building - 258-1746 tmmccoy@cs.princeton.edu

Teaching Assistant: Lisa Worthington - 206 CS Building - 258-2211 lworthin@cs.princeton.edu
Precepts:   Precepts meet on Monday for 50 minutes. The first precept is 9/23. 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
 1  M 12:30 CS 102 Lisa Worthington
 2  M 1:30 Friend 202 Lisa Worthington
 3  M 3:00 Friend 203 Lisa Worthington


Office Hours: Lisa will have office hours in room CS 206 Monday evenings from 7:00 to 9:00 and by appointment Tuesday and Thursday afternoons from 2:00 to 4:00.


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:

  • Algorithms in C, Third Edition, Parts 1-4 by Robert Sedgewick, Addison-Wesley, 1998.
  • Algorithms in C, Third Edition, Part 5 by Robert Sedgewick, Addison-Wesley, 2002.
  • 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.

    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.


    COS 226 Home Page
    rs@cs.princeton.edu
    Last modified: September 17, 2002