Syllabus | Calendar | Homework | PSP | Textbook | Examples | Design recipes | Daily Survey |
This course meets on Mondays, Tuesdays, Wednesdays, and Thursdays from 10:40 AM to 12:40 PM in Science 227. The last time I taught this course was Spring 2005.
I've put on the Web a glossary of the most important terms and ideas in this course; please read these and think about them.
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?
We use the software package DrScheme, which is available for free download for Windows, Mac, and Unix.
If you've got DrScheme version 207 or later, there are some built-in
image-manipulation functions. But not as many as I'd like: save this file into the "teachpack" folder inside your
DrScheme installation (this is probably C:\Program
Files\PLT\teachpack
on Windows, or /Applications/PLT Scheme v207/teachpack
on a
Macintosh), and you'll have access to an additional teachpack providing
functions image-above
, image-beside
,
reflect-horiz
, reflect-vert
,
reflect-main-diag
, reflect-other-diag
,
rotate-cw
, rotate-ccw
, and
rotate-180
.
You can play with them using this picture.
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.)
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.