Cover Data Structures and Algorithms with Object-Oriented Design Patterns in Java
next up previous contents index

Suggested Course Outline

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:

  1. Review of the fundamentals of programming in Java and an overview of object-oriented programming with Java. (Appendix gif). [4 lecture hours].
  2. Models of the computer, algorithm analysis and asymptotic notation (Chapter gif and Chapter gif). [4 lecture hours].
  3. Foundational data structures, abstraction and abstract data types (Chapter gif and Chapter gif). [4 lecture hours].
  4. Stacks, queues, ordered lists and sorted lists (Chapter gif and Chapter gif). [3 lecture hours].
  5. Hashing, hash tables and scatter tables (Chapter gif). [3 lecture hours].
  6. Trees and search trees (Chapter gif and Chapter gif). [6 lecture hours].
  7. Heaps and priority queues (Chapter gif). [3 lecture hours].
  8. Algorithm design techniques (Chapter gif). [3 lecture hours].
  9. Sorting algorithms and sorters (Chapter gif). [3 lecture hours].
  10. Graphs and graph algorithms (Chapter gif). [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 gif.


next up previous contents index

Bruno Copyright © 1998 by Bruno R. Preiss, P.Eng. All rights reserved.