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 spring 2011.
My office hours (in Post 203; if I'm not there, look in the computer lab in Post 102) are MTWTh 3:00-4:00 and W 9:30-1:00.
Student tutor Nick Miceli can help with this course. Nick is available for help in Post 102 on Thursdays from 2:00-3:00 PM (immediately after our class) and on Fridays from 1:15-1:45 PM.
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
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.