Data Structures and Algorithms
with Object-Oriented Design Patterns in C#
|
|
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 .
Copyright © 2001 by Bruno R. Preiss, P.Eng. All rights reserved.