CSC 172
Introduction to Algorithms and Data Structures

Dr. Stephen Bloch

Spring, 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

May 9, 2001: I've graded homework 6, and handed it back with comments on paper. If you haven't received a grade on homework 6, it probably means I didn't receive your homework 6 at all.

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.)

For most of the semester, we'll use a package named BlueJ. It is available for free download, and version 1.1.2 is installed (locally) on all the lab computers on campus.
Note: version 1.1.3 was released in late March. You can get it from, but I've got a local copy; point to the following link and choose "Save Link As..." (don't just click on it). Download BlueJ 1.1.3. If the file size isn't 1,117,150 bytes, something's wrong.

If you want to install it on your home computer, you'll need to first download and install the Java Development Kit.
Follow the above link, choose your platform (e.g. Windows), ignore the stuff about IDEs, and click on the "Continue" button near the bottom of the screen. (If you're using Linux, there will be two "Continue" buttons; I'll trust you to figure out which is which.)
If you have trouble installing BlueJ on your home computer, please see the Frequently Asked Questions to see if your problem is a common one with an easy fix.

When writing in Java, you'll frequently need to look up some detail of the language or its libraries. All of this information is on the Web; the pages you'll probably need most often are

Getting Help

My office hours (in Alumnae Hall 114; if I'm not there, look around the corner in 118) are I'm frequently available in my office on Wednesdays, Thursdays, and Fridays too, but less predictably.

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 Goodrich & Tamassia's Data Structures and Algorithms in Java, which starts with two chapters on the Java language and object-oriented programming. The remainder of the book treats a series of different data structures that are widely used in real programming. It's available from for $80, Barnes & Noble for $75, Bookpool for $68, for $79, and WebBooks for $64.

For supplementary material on the Java language, I've ordered David Flanagan's Java in a Nutshell. This is not a textbook in the usual sense: it's written for an audience of programmers who already know one or two other languages, but don't know Java. It is, however, a very well-written reference book. It's available from for $24, Barnes & Noble for $24, Bookpool for $18, and for $24.

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 for $25, Barnes & Noble for $25, Bookpool for $20, and for $25.

For further reading...

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