CSC 160
Computer Programming for Non-Majors

Spring, 2012

syllabus calendar homework PSP Piazza HtDP2e textbook daily survey recipes
Syllabus Calendar Textbook
(including pictures
and worked exercises)
Homework PSP Moodle Piazza Supplementary
Daily Survey Design recipes

Course meeting

This course meets on Tuesdays and Thursdays from 12:15-1:30 PM in Science 227. (There's another section of it on Mondays and Wednesdays from 4:15-5:30, taught by a former student of mine.) The last time I taught this course was Fall 2011.

Getting Help

My office hours (in Post 203; if I'm not there, look in the computer lab in Post 102) are MWF 11:00-12:00 and T 10:00-4:00.

Student tutor Nick Miceli can help with this course. Office hours M 12:00-1:00, T 4:30-6:00, Th 4:30-5:30 in Post 102.

When you have questions about the class, I encourage you to post them on Piazza (anonymously if you wish), and perhaps one of your classmates will answer the question before Nick or I even see it. If we see an answer that's clearly wrong, we'll correct it; if we see an answer that we like, we'll mark it as such.


The main textbook for this class is Picturing Programs: an Introduction to Computer Programming. It's available in the bookstore, fairly inexpensively, but it's also available on-line for free

In past semesters, I've used How to Design Programs, by Felleisen, Fisler, Flatt, and Krishnamurthi, published by MIT Press. The second edition of the book isn't finished, but enough of it is posted on the Web to keep you busy this semester.

We'll be programming in a version of the Scheme programming language. Why Scheme rather than C++ or Java?

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 DrRacket, which is available for free download for Windows, Mac, and Unix. You are encouraged to install it on your home computer. It's also installed in all the computer labs on campus. If you download the latest version, you may get one slightly more up-to-date than what's in the on-campus labs, but I don't expect that'll cause any problems.

If you're using a recent version of DrRacket, you don't need the installation procedure described in Chapter 1 of the textbook, and you can just say

(require picturing-programs)
instead of
(require installed-teachpacks/picturing-programs)

Research Study

Some of the authors of DrRacket are doing a research study aimed at improving the error messages in the program. To do this, they collect data on mistakes students make, what error messages they get, and how they respond to those error messages. The DrRacket installation in our lab has been set up to collect those data if you agree to let it. (If you don't, your data will not be collected; in either case, it has no effect on your grade in this class.) The consent form, with more information about the study, is here; if you consent, they'd like you to also fill out a brief survey at the beginning of the semester.

If you'd like to participate in the study on your home computer, you can install the logging tool there too:

  1. start DrRacket on your home computer
  2. From the "File" menu, choose "Install .plt file..."
  3. Click the "Web" tab and type in the URL

Reading List

Who should take this course?

This course is intended primarily for people who have not previously studied computer programming, primarily non-majors. CS and CMIS majors are allowed to take the course, and will almost certainly learn something, but this course isn't part of the CS or CMIS major. For math majors, this course no longer counts as your programming requirement (although you'll learn a lot from it anyway). For non-majors, this course counts towards your math/science distribution requirement.

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