to provide an introduction to the
mathematical language, reasoning and methods; to introduce
material used directly in later Computer Science courses;
and, importantly, to explain how to reason mathematically.
Most of the material covered comes Weiss
in particular Chapters~2--4 and~7, with other material as time
permits. I shall also cover material from Chapters 12, 13, 19, and 20
of Deitel and Deitel.
Algorithm analysis and asymptotic complexity (2 weeks).
Loop variants, loop invariants, and recursive
programming (1 week).
Templates, the Standard Template Library,
containers, iterators, and generic programming in C++.
Sorting algorithms (2 weeks).
Error handling and exceptions (1 week).
List classes (1 week).
List based classes: stacks, queues, and deques (1 week).
Tree classes (1 week).
Times are approximate.
The list of topics may not be exactly as shown above.