Spring Semester 2007

January 22, 2007 – April 27, 2007

Resources

All kinds of resources useful for the course, from physical books to virtual websites. If you find something good out there, please tell us about it so we can add it here.

Books

First the required text for the course, a recently updated and very comprehensive classic. I'll make frequent reference to chapters in this one as we go along.

Next two additional Unix books: The first is a direct competitor to the recommended text above, the second provides lots of interesting background on Unix and its philosophy.

If you need to catch up on your C programming skills, just go with the classic introduction by the designers of the language. Okay, you won't find the latest C99 stuff in here, but it's still the gold standard of introductory C books.

While C started out pretty simple, there's by now quite a lot of stuff to remember. And that's what reference manuals are for, here's the best one for C (include C99 and all that).

Next some additional books on C. The first is a helpful "advanced" text, written in a particularly entertaining style; the interviewing tips are priceless as well. The second addresses software development strategies and provides (somewhat) higher-level abstractions for C. The third covers a variety of errors that C programmers tend to make again and again.

Trying to write efficient code? Don't pass this classic by, it's a true gem (and quite entertaining as well):

Here are two somewhat more general books on programming, both well worth their money and the time it takes to work them through; in fact, I used to teach a course a while ago that used these as text books:

This list is hardly exhaustive. Feel free to email me suggestions if you find a good book on any of the topics we deal with in the course. :-)

Pocket Books

I like small books, and in that spirit I'd like to recommend a few really small books that can be very helpful in the course. Here they are:

Standards

Notes

Let's start with an excellent set of notes (and the course they come from) that supplement the C text by Kernighan and Ritchie chapter-by-chapter:

This looks promising:

Two great sets of notes from Stanford University's Department of Computer Science:

Exams

Here are some old exams for practice. On average I like my questions quite a bit, so I tend to ask them again and again. But every now and then I add a new twist, so be prepared!

Miscellaneous

Tools

Previous Offerings

Related Courses