CSC 160
A First Course in Computer Programming

Fall, 2003

Syllabus Calendar Homework PSP Textbook Examples Design recipes

This course meets on Mondays and Wednesdays from 2:25-3:40 PM in Science 227. The last time I taught this course was Spring 2003.

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:

Faith Barclay
office hours MW 1:00-2:30 PM in Alumnae 112
Arvind Budhram
office hours TBA in Alumnae 112
Sasha Pogornets
in class, and office hours Thursday from 10:30 AM through the afternoon (depending on how many students show up), also in Alumnae 112
Steven Jones
office hours M after class in SCI 227; Fridays 10 AM-noon in ALU 112.


The main textbook for this class is How to Design Programs, by Felleisen, Fisler, Flatt, and Krishnamurthi, published by MIT Press. The text of the book is available on-line, but I've also ordered the printed version through the bookstore; you are encouraged, but not required to buy the printed version.
This textbook uses the Scheme programming language. Why Scheme?

Partners for upcoming assignments

If you need a partner for the next homework, please e-mail me immediately and I'll try to match you up with someone.

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, and you can also read about the spelling, grammar, vocabulary, and idioms of Scheme.

Software support

We use the software package DrScheme, which is available for free download for Windows, Mac, and Unix.

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

I've also set up an experimental "handin" facility, which will allow you to hand in assignments automatically from within DrScheme. To install it, follow these steps:

  1. Make sure you have DrScheme version 205 installed. If not, update your copy at
  2. For Windows,...
    1. Start a web browser (I've had better luck doing this with MSIE than with Netscape), download and install OpenSSL for Windows. It should open automatically using the "Setup PLT.exe" program that came with your DrScheme installation. If it doesn't, save it to disk and double-click it or drag-and-drop it onto "Setup PLT.exe". This will install the "OpenSSL" package (which enables Scheme to use secure Net connections).
    2. Then download and install AU-160-Bloch.plt in the same way.
  3. For Mac OSX...
    1. Download and install OpenSSL for Mac OS X.
    2. Then download and install AU-160-Bloch.plt in the same way.
  • In either case, quit DrScheme and start it again, and you should see a "Handin" button with a picture of a hand. If you don't, something has gone wrong with the installation procedure.
  • When you've written a program in DrScheme that you're prepared to turn in for grading, click the "Handin" button, type in your userid and password, select the appropriate assignment from the drop-down list, and click the "Handin" button in the dialogue box.
  • To check that it worked, point any Web browser at the status server, log in with the same userid and password, and you should see a list of every assignment you've turned in, with the most recent date and a grade, if any.
  • Reading List

    Who should take this course?

    This course is intended primarily for people who have not previously studied computer programming, both CS majors and non-majors. For non-majors, this course counts towards your math/science distribution requirement. Students who have passed at least a semester (half a year) of computer programming with a "B" or better may skip this course and go straight to CSC 171, or they may take this course anyway; some of the concepts will be familiar, but they'll probably still learn a lot.

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