Instructor: Doug Lea
Class: 8am T-Th
Office/Lab hours. Normally every day 11-12
Course home page:


Review and extension of arrays, lists, tables, trees.
Balanced trees
Indexing, BTrees, Hashing
Sequential / IO
Serialization, Pipes, Sorting, Text searching, etc.
Algorithms for traversal, connectivity, paths, flow
Algorithm design and analysis
Design strategies, complexity analysis


Subject to minor change:
Two exams (one during final exam week) (25%)
Practice exam
3 programming assignments (one has multiple parts) (75%)
Programs may not be submitted unless they successfully run according to specification. You must demo your program to me within 2 days of submitting it. Five percent credit is taken off per day late.
  1. Assignment 1
  2. Assignment 2
  3. Assignment 3


There is no required text. Background on most data structures and algorithms is easily found on the web; useful resources on particular topics are mentioned in class. However, I recommend that you buy the following book that will be referred to as a basic source on most topics, and that you might want to keep around as a good reference: Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein. MIT Press / McGraw-Hill.

You will also be expected to work through several online tutorials and related readings.

Doug Lea