resources (both text and software) for a variety of course-related
If you find other useful resources, please let me know and I
will add them to this page.
All of our textbooks are available through the Grinnell College
Bookstore, the Safari
online subscription service, and your
favorite online booksellers.
- [OOA&D] McLaughlin, Pollice, and West. Head First Object-Oriented
Design and Analysis. O'Reilly, 2007. ISBN
- Our primary textbook for the first half of the course. This
book is a lot of fun.
- [XP] Beck and Andres. Extreme
Programming Explained, 2nd ed. Addison-Wesley, 2005. ISBN
- Our primary textbook for the second half of the course.
classic text on the Extreme Programming software development
- [PPR] Lutz. Python
Pocket Reference, 3rd ed. O'Reilly, 2005. ISBN
- Widely acclaimed reference for the Python programming
This should be the first thing you reach for when you have a question
about syntax or the standard library. It's cheap ($9.95) and it really
does fit in your pocket.
- [HFDP] Freeman, Freeman, Sierra, and Bates. Head First Design Patterns.
O'Reilly, 2004. ISBN 0-596-00712-4.
We'll just touch on design patterns during the
hope that you will have enjoyed OOA&D so much that you'll pick
book up over winter break. Design patterns are really useful, and this is the most concrete, most fun
on design patterns I've seen. Everyone seems to like it.
- Kuhlman. Python
101 -- An Introduction to Python. Release 1.01, July 2006.
- We'll read this to get oriented to the Python programming
- Van Rossum. Python
Tutorial. Release 2.4.4, October 2006.
- This is the official tutorial by the creator of Python,
Guido van Rossum. This is a lengthier but more comprehensive
introduction than Python 101.
October 18, 2006.
- An index of the official documentation for Python 2.4.4.
- Read this to learn why Python is the way it is and whether
you have to like Monty
- A useful resource if you have questions about how
to do something in particular in Python.
- Also a good place to learn how to do things in Python. A
programming language "cookbook" gives code for accomplishing
common tasks such as rolling virtual dice or defining an
- Korpela. Regular
Expressions in Perl.
- A handy reference with examples for Perl-style regular
expressions, which are also used in Python.
HTML and CSS
online web tutorials.
- Nice tutorial material on HTML,
with many interactive examples. A good place to start.
- HTML 4.01 / XHTML 1.0 Reference.
- A handy quick reference, if you are already familiar with
HTML. Lists all tags in alphabetical order.
- A handy quick reference, if you are already familar with
CSS. Lists all properties in alphabetical order.
1.0: The Extensible HyperText Markup Language (Second Edition).
August 1, 2002.
- The latest official XHTML specification.
Style Sheets Level 2 Revision 1 (CSS 2.1) Specification.
July 19, 2007.
- The latest official CSS specification.
- The official TurboGears web site.
- What it says. Includes tutorials, recipes, and reference
- Collins-Sussman, Fitzpatrick, Pilato. Version Control with Subversion
for Subversion 1.4. 2007.
- The book on Subversion. A handy reverence manual.
remember you can always do
- Just what it sounds like. Useful stuff here.
- On the MathLAN, type the command "
and you will receive a helpful tutorial on Vim, my favorite text editor
(and one of the two most popular text editors for UNIX).
- Zawodnuy. Emacs
- A tutorial on the Emacs text editor (the other most popular
editor for UNIX).
is a graphical text editor included with GNOME and, therefore,
installed on the MathLAN. Using keyboard shortcuts can greatly increase
- KompoZer is a WYSIWIG web page editing tool, comparable to
DreamWeaver. It can be a bit quirky (i.e., buggy), but I find it
useful. It is (hopefully) installed on the MathLAN.
- Zadrozny. Getting
Started with PyDev. 2006-2007.
- PyDev is an Eclipse plug-in for Python. You may wish to use
you are very comfortable using Eclipse, but you aren't required (or
even particularly encouraged) to do so.
- Williams, Ho, Smith. Using Subclipse (the Subversion Plug-in for
Eclipse) for Configuration Management.
tutorial on installing and using Subclipse, which lets you manage a
Subversion repository from within Eclipse. If you use Eclipse in this
course, you should use the Subclipse plug-in.
Created July 23, 2007
Last revised August 30, 2007