CSC365

Instructor: Doug Lea
Class: TR 8am
Office/Lab hours. Normally M-F 11-12
Course home page: http://gee.cs.oswego.edu/dl/csc365

Topics

Collections
Review and extension of arrays, lists, tables, trees.
Balanced trees
Persistence
Indexing, BTrees, Hashing
Sequential IO
Serialization, Pipes, Sorting, Text searching, etc.
Graphs
Algorithms for traversal, connectivity, paths, flow

Requirements

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.
  1. Assignment 1
  2. Assignment 2
  3. Assignment 3
  4. 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 data structures.

Readings

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 reference: 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.

Useful Links


Doug Lea