Introduction to the Python Programming Language

Please Note!

This was a one-time-only course; these pages are a historical record. I have no plans to offer the course again. Also, many of the individual class pages are just outlines that I used in class, and don't have any actual content. However, a few of them -- Class 5 in particular -- do.

Course Availability

This course is being offered internally to U. of C. Library Systems staff and invited guests only.

Course Schedule and Location

July 1998
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
There will be eight classes, Tuesday-Thursday from 1:30 to 3:00, from 7 July 1998 to 30 July 1998, with the exception that the class for Thursday the 16th will be held on Friday 17th. All classes will be held in JRL-A4.

Course Prerequisites

Previous experience with an imperative programming language is assumed.


The course syllabus ought to be finished by the time the course is over...

Texts and Documentation

Required Reading

There is no required reading.

Recommended Reading

I recommend you go through the official Python Tutorial, at your own pace.

You'll also want to browse the Library Reference, so you can see what kind of handy modules are available; if you do any Python coding at all, you'll refer to this constantly.

Once you've played with Python and feel comfortable with the basics, you should scan the entire Language Reference. Don't worry about understanding every detail right away: there are a lot of subtleties. But if you get serious about Python, you should refer back to this periodically; even when you think you really know the language, you'll find things in the Language Reference that you never knew about or had forgotten.

If you get to the point where you want to extend Python (i.e., give it new primitives written in C or C++) or embed it (i.e., make the whole Python language available from within another application so that Python can be used to extend it), you'll want to study the Extending and Embedding manual and the Python/C API.

All the above documents are written by Guido van Rossum, Python's inventor, and I think they're completely sufficient to learn Python and then progress to becoming a Python expert. However, if you want more to read, there are currently two commercial Python books (in English).

Internet Programming with Python, by Aaron Watters, Guido van Rossum, and Jim Ahlstrom (470 pages) is a good introduction with an emphasis on the Web. I learned quite a bit about object-oriented programming from this book.

Programming Python by Mark Lutz (900 pages) goes into more depth, but I found it hard to use by dipping into selectively; it looks like a good book if you're willing to read it straight through -- you'd learn a lot.

If you want to buy either of the two books above, you might consider buying them from via the PSA Bookstore. The PSA (Python Software Activity) supports the continued, free existence of Python, and if you buy a book from their web page, they get a kickback from; remember, they get nothing if you go directly to -- you have to go in through the PSA Bookstore page.


The official Python web site is loaded with valuable information, documentation and code. In particular, this is where to go to get Python itself, either as source code or as binary executables for various operating systems.

There are several excellent Python FAQs, created using the amazing Python FAQ Wizard software: