Logo Data Structures and Algorithms with Object-Oriented Design Patterns in C++
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 C++ and an overview of object-oriented programming with C++. (Appendix gif). [4 lecture hours].
  2. Models of the computer, algorithm analysis and asymptotic notation (Chapters gif and gif). [4 lecture hours].
  3. Foundational data structures, abstraction and abstract data types (Chapters gif and gif). [4 lecture hours].
  4. Stacks, queues, ordered lists and sorted lists (Chapters gif and gif). [3 lecture hours].
  5. Hashing, hash tables and scatter tables (Chapter gif). [3 lecture hours].
  6. Trees and search trees (Chapters gif and 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 C++ language. For example, an understanding of templates is required for the foundational data structures discussed in Chapter gif. Similarly, students need to understand the workings of classes and inheritance in order to understand the unifying class hierarchy discussed in Chapter gif.


next up previous contents index

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