SAINT MARY'S UNIVERSITY
Department of Mathematics and Computing Science

CSC 2341—Algorithmic Foundations of Computing Science—CSC 2341
CSC 2342—Data Structures and Algorithms—CSC 2342

Lecture and Lab-Recitation Overview

Overview of Lectures

The lectures in this course may be viewed as consisting of two "streams": a "theory stream" and a "practice stream".

The "theory stream" will present the various algorithms and data structures we discuss, as well as any required-but-not-assumed mathematical background that may be needed for a better understanding of how these algorithms work, how efficient they are, which one might be better than another in a given situation, and so on.

The "practice stream" will present new topics in C++ (and our local programming environment in particular), new topics in program development in general, and implementation issues.

Needless to say, it would be nearly impossible to make these two streams totally disjoint, and probably not a good idea even if possible to achieve. So, topics from each stream will be intermingled in the lecture material. We shall, however, try to keep things in context by pointing out, as we go, where and how each topic fits into the conceptual "stream infrastructure".

Overview of Lab-Recitation Sessions

Performing the hands-on lab-related programming activities is the critical part of any computing science course having a major programming component. This course is no exception.

In addition to dealing with new topics in C++ and the programming environment, what you do in the lab will involve working with sample programs that illustrate the topics discussed in class. You will either modify those programs in prescribed ways, or write new ones to perform the same task in a different way, or to perform new, related tasks. In the beginning you may also need to devote some time to a review and consolidation of previous C++ knowledge. Sometimes what you are working on may carry over from one week to the next, but more often sample programs will tend to be independent of one another and illustrate a topic in isolation. In a given week, the lab-recitation topic might, or might not, relate to the current "major assignment", since there are topics that might not relate directly to the current major-assignment-in-progress, yet deserve some hands-on time in the lab.

For what should be obvious reasons, attending labs and keeping up with the lab work will be critical to your success in the course. There will, in fact, be direct credit assigned to some of the work actually done in the lab, or based on lab activities and completed outside the lab, possibly for submission as all or part of an assignment. The indirect benefit accruing from performing and understanding the lab activities is, of course, incalculable.

What students can expect and what your instructor will expect