Data Structures and Algorithms
with Object-Oriented Design Patterns in Python
|
|
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 Python and
an overview of object-oriented programming with Python.
(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 Python language.
For example,
students need to understand how the Python for
statement makes use of programmer-defined iterators.
Similarly,
an understanding of the workings of Python new-style classes,
inheritance,
and descriptors such as property and staticmethod,
is required in order to understand
the unifying class hierarchy discussed in Chapter
.
Copyright © 2003, 2004 by Bruno R. Preiss, P.Eng. All rights reserved.