Syllabus | Calendar | Textbook (including pictures and worked exercises) |
Homework | PSP | Moodle | Piazza | Supplementary Textbook |
Daily Survey | Design recipes |
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.
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?
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.)
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.