CSC 172
Introduction to Algorithms and Data Structures

Dr. Stephen Bloch

Spring, 2002

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 be programming this semester in C++. I don't particularly care what compiler or development environment you use. Microsoft's Visual C++ 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....) I'm also having the computing center install Borland's C++ compiler and a development environment named jGRASP, both of which can be downloaded legally for free. The jGRASP package is written in Java (in fact, it can be used to program in Java and Ada as well as C++), so it requires that you first install Java. If you just want to use jGRASP in C++, you can get away with downloading only the Java run-time environment; if you plan to try your hand at Java as well, and you have disk space to spare, you might as well download the whole development kit.

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: Tutor Chane Kampanatsanyakorn's office hours (in Alumnae 112 or 118) are Wednesday 11:00 AM-12:00 noon, Thursday 3:00-5:00 PM, and Friday 1:00-2:00 PM.
Various computer science tutors in the Learning Center (Earle Hall, lower level) are on duty Monday through Friday from 9:00-11:30 AM.

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 /