and worked exercises)
|Daily Survey||Design recipes|
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.
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?
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
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:
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.