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:
- Review of the fundamentals of programming in C# and an overview of object-oriented programming with C#. (Appendix
). [4 lecture hours].
- Models of the computer, algorithm analysis, and asymptotic notation (Chapters
and
). [4 lecture hours].
- Foundational data structures, abstraction, and abstract data types (Chapters
and
). [4 lecture hours].
- Stacks, queues, ordered lists, and sorted lists (Chapters
and
). [3 lecture hours].
- Hashing, hash tables, and scatter tables (Chapter
). [3 lecture hours].
- Trees and search trees (Chapters
and
). [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 C# 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 .