CSC 172
Introduction to Algorithms and Data Structures

Dr. Stephen Bloch

Fall, 2001

The syllabus

is available in HTML, LaTeX, and DVI forms.


An updated schedule contains the latest updates to homework due dates, lecture topics, etc. Please check the schedule regularly and keep up on the assigned reading!

Homework Assignments

What's this course about?

Software support

I've set up some forms for entering and viewing PSP data.
Please use these forms to record defect and time information. To use the forms successfully, make sure your browser accepts JavaScript and cookies. (For those with a moral opposition to cookies, I assure you that they're all "temporary" -- they disappear as soon as you quit the browser.) Not all of the forms are working yet, but I'll install the rest as I get them debugged. (For more information about PSP, see the PSP page at Carnegie-Mellon.)

We'll do most of our programming this semester using Microsoft's Visual C++ development environment, which is installed on many of the microcomputers on campus (Windows only; apparently Microsoft doesn't want Macintosh or Linux users to buy its software. Or maybe Microsoft doesn't know there are Macintosh and Linux users in the world....)

Getting Help

My office hours (in Alumnae Hall 114; if I'm not there, look around the corner in 118) are

We also have several tutors capable of helping with this course.

Reading Assignments


I've set up a folder for programming examples. Please read and understand these. (I'll try to keep the same files on the lab's N: drive too, but things have a habit of disappearing from the N: drive.)


Our primary textbook will be Carrano & Pritchard's Data Abstraction and Problem Solving with C++: Walls and Mirrors, third edition. (The second edition contains most of the same material, but in a slightly different order, and without mentioning UML.) We'll start with Appendix A, to review the basics of the C++ language and fill in some gaps that you may not have seen last semester, and then go through approximately the first ten chapters. It's available from for $76, for $80, for $76 (even though Fatbrain is owned by Barnes & Noble!), and for $72.

For supplementary material on the C++ language, I've ordered Bjarne Stroustrup's The C++ Programming Language, third edition. This is not a textbook, but rather a reference for programmers who already know one or two other languages, but don't know C++. A "Special Edition" came out in 2000, but if you have the third (1997) edition, you can use that instead. The Special Edition is available from,, or for $60, or from for $47.50.

As another supplementary text, we'll use Watts Humphrey's Introduction to the Personal Software Process. This book treats not ``how to program'' but rather ``how to be a programmer''; exercises in this book will help you study your own skills and abilities, discover your own strong and weak points, improve your time-management skills (especially, though not exclusively, in relation to programming), and become more efficient. It's available from,, or for $25, or from for $20.

For further reading...

You are visitor number to this page since September 23, 1998.
Last modified:
Stephen Bloch /