CSC 171
Introduction to Computer Programming

Fall, 2002



Homework Assignments


Downloadable Examples

Getting Help

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

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


Due to circumstances beyond our control, the instructor and textbook for this course have changed at the last minute. Do not buy the old textbook C++ How to Program, by Deitel & Deitel. Instead, we'll use The Object of Java (BlueJ edition), by David D. Riley.

An optional supplementary text is Introduction to the Personal Software Process, by Watts Humphrey. This book isn't about how to program in C++, or how to program in Java, but rather how to be a programmer: how to study your own capabilities, productivity, strengths and weaknesses in programming, in order to produce better results more quickly, without staying up until dawn the night before the program is due.

Recipes and Syntax Rules

You'll get through this course a lot more easily if you follow the design recipes! Here are the recipes and syntax rules we've seen so far.

Software support

To do programming assignments on your home computer, you'll need to download and install the Java Software Development Kit (SDK, not JRE!), and then download and install BlueJ.

I've set up some forms for entering and viewing PSP data. You may 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.) (For more information about PSP, read Watts Humphrey's Introduction to the Personal Software Process.)

The version of aLibrary on the CD in the textbook was compatible with Java version 1.3, but not with Java version 1.4 (which we have installed). And the version we downloaded in mid-September has a null-pointer problem with BlueJ and Windows/NT. So rather than using either of them, please use the following:

Note that the DrawingTool class in some of the examples (e.g. c2_Draw1) relies on aLibrary, so it will have to be re-compiled; if you have a project that contains DrawingTool, just choose "Rebuild Package" from the Tools menu.

Reading List

Who should take this course?

This course assumes that you have either done a little bit of computer programming (say, half a year with decent grades) or have a strong mathematical background. (The course doesn't require that you know a lot of math, but it uses "mathematical thinking".) It is open to CS/CIS majors, minors, and people who just want to learn a little more about programming. For non-majors, this course counts towards your math/science distribution requirement. If you have never written a program before, and don't have "a strong math background", you may be better off in CSC 160, "A First Course in Computer Programming"; consult with the instructor.

You are visitor number to this page since June 4, 2001.
Last modified:
Stephen Bloch /