CSC 160
Computer Programming for Non-Majors

Spring, 2013

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 Mondays and Wednesdays from 2:25-3:40 PM in Swirbul 101. The last time I taught this course was Spring 2012.

Getting Help

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

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 a tutor 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 a voluntary donation.

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 an educational dialect 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 get a fairly old printed copy of the textbook, Chapter 1 will describe an installation procedure for the picturing-programs teachpack; in fact, you don't need to install anything beyond DrRacket itself; just put the line

(require picturing-programs)
at the start of all your programs.

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, see the PSP page at Carnegie-Mellon or read Watts Humphrey's Introduction to the Personal Software Process.)

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, CMIS, and Math majors are allowed to take the course, and will almost certainly learn something, but this course doesn't count towards the CS, CMIS, or Math major. This course does count as a "Formal Science" and "Quantitative Reasoning" course towards your general-education requirements.

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