Computer Science 226
Data Structures and Algorithms
Fall 2003

Course Information | Home Page | Assignments | Lectures | Announcements


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: 105 CS Building

Professor: Bernard Chazelle - 404 CS Building - 258-5380

Undergraduate Coordinator: Tina McCoy - 410 CS Building - 258-1746

Teaching Assistant: Nir Ailon - 316 CS Building - 258-5386
Precepts:   Precepts meet on Monday for 50 minutes. The first precept is 9/22. 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 1:30 Friend 205 Nir Ailon
 2  M 3:30 Friend 205 Nir Ailon

Office Hours: Nir will have office hours on Wednesdays (starting 9/17) at 15:00-16:00 in his office (316 CS Building). To get the most out of office hours, it is recommended to email Nir in advance.

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.