University of Washington

Summer 2004

Syllabus (6/21/2004)


Teaching Assistant:

Class Times:

Mailing List:

Text Book:

Course Goals and Contents

The objective of this class is to study the fundamental data structures and algorithms used in computer science. Students will study advanced programming techniques and will learn to analyze the algorithms to determine their time and space requirements.  By the end of the course, students should have the skills necessary for selecting between existing data structures and algorithms, and for designing their own.  Students will also have gained some familiarity with using the Linux (UNIX) operating system.

Major topics will include: mathematical tools for describing algorithmic complexity; lists, stacks, and queues; general trees; binary trees; binary search trees; balanced binary trees; heaps and priority queues; hashing; graphs; B-trees (time permitting); union-find algorithms (time permitting).  The implementation of these data structures and algorithms in Java will be studied and practiced.

In addition to the listed topics, a goal of the course is to improve your ability to solve interesting problems through programming, by recognizing when and how standard data structures can be used, and how new data structures can be created for novel situations.

For a more detailed list of topics and dates, please see the Lectures and Schedule page.

Assignments Overview 

During the quarter you will have assignments of three types
There will generally be something due every Wednesday evening (electronically) and/or Thursday morning (on paper).  For longer assignments there could be multiple parts dues.  Each assignment will carry instructions about the requirements for its execution and turn-in.

Late assignments will not be accepted unless there is prior approval (which will not be easy to get!)

Many assignments can be done with a partner or small, which will sometimes be assigned; other times the choice will be up to you.  You should try to arrange your schedule to be able to meet with fellow students on campus.

Tentative Grading Weights: