Monday, October 06, 2008

There is Always a Book

For my computer science class, the instructor put on the web page, "we will not have any text book this semester." On the first day of class he explained that he was disgusted with textbook prices. He recommended an out-of-print C++ reference for the programming side of things and using the "algorithms" part of the "data structures and algorithms" text that was required in the data structures class (the class before this one in the sequence).

Adapting his advice, I searched through my extensive book collection and found the textbook from the data structures course I took at Dartmouth during the Winter quarter of 1994. I also found the K&R that one of my internet-friends of the time (who is now one of my facebook friends!) sent me, also in 1994 because I needed to figure out C for my summer job. I had a few C++ books around my office because several years ago David Eck gave them to me when I was looking for a C++ book because I was going to try to fake my way through a job interview for a small software company in Ithaca, NY.

But this piecemeal approach just wasn't working for me. I couldn't really see how things fit together. I didn't really understand the relationships between the ideas we were covering. Why did we talk about random permutations and then the heap implementation of priority queues and then random number generation and then sorting? The order didn't make much sense to me, and it meant that I kept flipping back and forth and between books.

I told my honors course that we're not using the book. This isn't exactly true. They're not using a book. I am. For the voting theory, I'm using The Mathematics of Voting and Elections: A Hands on Approach and Gaming the Vote. For the material on Fermat's Last Theorem, I'm piecing things together from the text that I use to teach the non-honors version of this course. Whatever we do next will also be from a book -- I'll figure out which one once I figure out what the next topic is.

These days, you can find the table of contents online for just about any book. So I started poking around looking at classic computer science texts until I found one whose table of contents was a decent match for the topics being covered and the order in which we were doing them. Eventually I found one (there might not be a unique solution -- there is a certain amount of textbook inbreeding by which new texts try very hard to clone well-loved texts). Decided to check it out from the university library. My taxes pay to support the library, so I might as well make use of it. Alas, but someone else already had it, so I recalled it. So if all goes well, soon I may have a copy of the book that will reveal to me the secrets of heaps in ways that AHU have been unable to do.