Syllabus | Calendar | Textbook (including pictures and worked exercises) |
Homework | PSP | Moodle | Piazza | Supplementary Textbook |
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 Hall 203; if I'm not there, look downstairs in the computer lab, Post 102) are To Be Announced.
Student tutor Nick Miceli can help with this course. He has office hours in the Learning Center, also To Be Announced. The Learning Center encourages students to make appointments using their on-line appointment calendar, but if you can't make an appointment, just walk in during those hours.
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, and you're encouraged to read parts of that book too. There's also an incomplete second edition of the book.
We'll be programming in 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
(require installed-teachpacks/picturing-programs)
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.