Resources
Summary: Lists
resources (both text and software) for a variety of course-related
topics.
Contents:
If you find other useful resources, please let me know and I
will add them to this page.
Textbooks
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
0-596-00867-8.
- 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
0-321-27865-8.
- Our primary textbook for the second half of the course.
A
classic text on the Extreme Programming software development
methodology.
- [PPR] Lutz. Python
Pocket Reference, 3rd ed. O'Reilly, 2005. ISBN
0-596-00940-2.
- Widely acclaimed reference for the Python programming
language.
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.
- OPTIONAL.
We'll just touch on design patterns during the
semester.
I
hope that you will have enjoyed OOA&D so much that you'll pick
this
book up over winter break. Design patterns are really useful, and this is the most concrete, most fun
book
on design patterns I've seen. Everyone seems to like it.
Python
- Kuhlman. Python
101 -- An Introduction to Python. Release 1.01, July 2006.
- We'll read this to get oriented to the Python programming
language.
- 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.
- Python
2.4.4 documentation.
October 18, 2006.
- An index of the official documentation for Python 2.4.4.
- General
Python FAQ.
- Read this to learn why Python is the way it is and whether
you have to like Monty
Python.
- Programming
FAQ.
- A useful resource if you have questions about how
to do something in particular in Python.
- Python
Cookbook.
- 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
enumerated type.
- Korpela. Regular
Expressions in Perl.
- A handy reference with examples for Perl-style regular
expressions, which are also used in Python.
HTML and CSS
- W3Schools
online web tutorials.
- Nice tutorial material on HTML,
XHTML,
and CSS,
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.
- CSS2
Reference.
- A handy quick reference, if you are already familar with
CSS. Lists all properties in alphabetical order.
- XHTML
1.0: The Extensible HyperText Markup Language (Second Edition).
August 1, 2002.
- The latest official XHTML specification.
- Cascading
Style Sheets Level 2 Revision 1 (CSS 2.1) Specification.
July 19, 2007.
- The latest official CSS specification.
TurboGears
- TurboGears.
- The official TurboGears web site.
- TurboGears
1.0 Documentation.
- What it says. Includes tutorials, recipes, and reference
material.
Subversion
- Collins-Sussman, Fitzpatrick, Pilato. Version Control with Subversion
for Subversion 1.4. 2007.
- The book on Subversion. A handy reverence manual.
Also,
remember you can always do
svn help!
- Subversion
FAQ.
- Just what it sounds like. Useful stuff here.
Editors
- vimtutor.
- On the MathLAN, type the command "
vimtutor",
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
Beginner's HOWTO.
- A tutorial on the Emacs text editor (the other most popular
editor for UNIX).
- GEdit
Keyboard Shortcuts.
- GEdit
is a graphical text editor included with GNOME and, therefore,
installed on the MathLAN. Using keyboard shortcuts can greatly increase
your efficiency.
- KompoZer.
- 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
it if
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.
- A
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.
Janet
Davis (davisjan@cs.grinnell.edu)
Created July 23, 2007
Last revised August 30, 2007