Data Structures and Algorithms
with Object-Oriented Design Patterns in Java
This text may be used in either a one semester or a two semester course.
The course which I teach at Waterloo is a one-semester course that
comprises 36 lecture hours on the following topics:
-
Review of the fundamentals of programming in Java and
an overview of object-oriented programming with Java.
(Appendix ). [4 lecture hours].
-
Models of the computer, algorithm analysis and asymptotic notation
(Chapter and Chapter ). [4 lecture hours].
-
Foundational data structures, abstraction and abstract data types
(Chapter and Chapter ). [4 lecture hours].
-
Stacks, queues, ordered lists and sorted lists
(Chapter and Chapter ). [3 lecture hours].
-
Hashing, hash tables and scatter tables
(Chapter ). [3 lecture hours].
-
Trees and search trees
(Chapter and Chapter ). [6 lecture hours].
-
Heaps and priority queues
(Chapter ). [3 lecture hours].
-
Algorithm design techniques
(Chapter ). [3 lecture hours].
-
Sorting algorithms and sorters
(Chapter ). [3 lecture hours].
-
Graphs and graph algorithms
(Chapter ). [3 lecture hours].
Depending on the background of students,
a course instructor may find it necessary to review
features of the Java language.
For example,
an understanding of inner classes is required
for the implementation of enumerations.
Similarly, students need to understand
the workings of classes, interfaces and inheritance
in order to understand
the unifying class hierarchy discussed in Chapter .
Copyright © 1998 by Bruno R. Preiss, P.Eng. All rights reserved.