Instructor: Doug Lea
Class: TR 8am
Office/Lab hours. Normally M-F 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
Subject to minor change:
- One final exam (15%)
- Practice exam
- About 5 10-minute quizes (25%)
- Some may be unannounced. They are intended to motivate you
to keep up with schedules.
- 4 programming assignments (60%)
- 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.
- Assignment 1
- Assignment 2
- Assignment 3
- Assignment 4
- Optional (worth 8 days assignment lateness points)
- Read Drepper's
What Every Programmer Should Know About Memory
and write a two-page report about how memory
systems influence the choice of and design of
There is no required text. Background on most data structures and
algorithms is easily found on the web. 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
Introduction to Algorithms (Second Edition) 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.