About the structure PackageI developed the Java structure package two years ago in an attempt to provide
a stable foundation for studying data structures in CS2. In the process of writing
the software, the book Java Structures was written. Today, the result is
a software class tested over four semesters at a number of institutions. In addition,
a number of students have used the package for supporting development of applications
and applets for their own use.
The package contains approximately 80 fully and consistently developed
classes supporting the full range of data structures studied in a modern CS2
course. The package makes reasonable use of inheritance and interface design.
None of the structures have been declared final, making it possible for students
and faculty to extend on the stable platform of structures. Since none of the
structures makes significant use of rapidly moving packages at Sun (including
the AWT), it is unlikely that significant changes in the design of the Java
environment will have lasting impact on the design of the structures package
itself. In particular, many of the design decisions made in the structures
package have been paralleled in the Java environment. The code is annotated with pre- and post-conditions that help the user
understand the conditions required before the method may be expected to work,
and the conditions that are likely to be achieved when the method is executed.
Using Sun's javadoc, the code is fully documented, but the (ugly and
distracting) javadoc commentary has been removed from sources to focus attention
on the (same) comments incorporated into each method. All the software,
including updates can be found on the web (see http://www.cs.williams.edu/~bailey/JavaStructures or http://www.mhhe.com/javastructures).
Most importantly, my wish is that the structures package be a contribution
to the educational community. As a result, while McGraw-Hill holds a copyright
on the software, they have agreed to free distribution of the software. Generally,
you make whatever educational use of the software you wish, as long as you don't
directly make any money (see our Distribution Policy).
I hope you enjoy this package. I encourage, of course, your comments on the
package and details of how you have found it useful (or not...). Enjoy! bailey@cs.williams.edu |