So many books, so little cash.

Paradigms of Artificial Intelligence Programming
Artificial Intelligence: A Modern Approach
Introduction to Algorithms
The Algorithm Design Manual
Introduction to the Design and Analysis of Algorithms
Lisp in Small Pieces

After busting my ass helping build a deck and screening a porch and moving blocks and blah blah blah the last couple weeks, it’s yay-more-dead-tree time. The thing is, I want all of the above and I can only afford one, maybe two of the books I want, and I have to decide which to get (right now, eventually I will have them all). Being addicted to books really sucks sometimes.

Paradigms of Artificial Intelligence Programming is quite aged, however it uses Common Lisp as well as a Prolog implementation written in CL, both of which are still massively used and interest me (well, ok, I’m more of a Scheme guy now, but I’d assume it would at worst be an interesting exercise to translate the code to Scheme). And while much of the contents itself (ELIZA???) are a bit aged aged, it’s still all stuff that facinates me (and which I can think of uses for).

Or there’s Artificial Intelligence: A Modern Approach, one of which’s authors is the same as PAIP above and is basically the current defacto textbook on the subject, and its code is available in lisp, python, and java. But it’s apparent that they both cover subjects that the other does not, and given that PAIP contains a good deal of information not directly related to AI, I don’t think it’s fair to entirely discount it yet. AIMA on the other hand, contains a *lot* more recent material specific to AI. I do know however, that I would likely feel very much more comfortable diving into AIMA if I had already read PAIP, and PAIP would teach me a larger variety of information anyway.

So if I choose an AI book, it will be PAIP. Well, it’s a start.

Lisp In Small Pieces. “The first starts from a simple evaluation function and enriches it with multiple name spaces, continuations and side-effects with commented variants, while at the same time the language used to define these features is reduced to a simple lambda-calculus. […] The second part focuses more on implementation techniques and discusses precompilation for fast interpretation: threaded code or bytecode; compilation towards C. Some extensions are also described such as dynamic evaluation, reflection, macros and objects.” Pretty much the book to get if you want to design a lisp implementation or understand how they work under the hood. After having read SICP, HTDP, TSPL, TLS, TSS, TRS, etc… its attraction is obvious. I would assume learning how to build something from the ground up would be a great way to learn how to use it more effectively. Sure, other books get into how to write an interpreter, but it’s nothing at all quite like this. It would have practical immediate value to me, and still be challenging enough to prove entertaining. However, I feel that perhaps compiler theory may be a bit over my head without a better background in algorithms in general, even if this book is quite well known for explaining everything it covers in a very clear manner.

Then again, the same could be said of the AI books above. Ok, so my choice won’t be any of the above. It’s clear the best choice given my limited funds would be one of the algorithm books.

Introduction to Algorithms is straight out, despite being the still-used-everywhere classic I simply lack the background in math for much of it to be of use to me, and despite its intent as a textbook it is apparent that it is best served as a reference for algorithms, for which I already have The Art of Computer Programming, Volumes 1-3 Boxed Set (which, as it happens, I quite clearly recall paying $125 (sticker price) for from Barnes & Noble some years ago. Inflation, maybe?).

The Algorithm Design Manual is also out, as a 2nd edition is about to be released and the waiting time for the previous is absurd. By the time it got here, the 2nd edition very likely may be available. Otherwise I may have simply chosen it to begin with: “THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.” One of the things I loved most about SICP was that there are free lecture videos available that go along with it. They saved me a whole shitload of headache in the stickier parts of the book. While I’m sure somebody somewhere has made the contents of the CD (including the entire book…) available, I’ll wait until I can buy it. Generic star-of-the-week pop music or shitty unoriginal films (read: RIAA/MPAA) crying a river despite record setting profits are one thing, but a book such as this is probably worth the damn money.

So it’s between Algorithms and Introduction to the Design and Analysis of Algorithms. Hmmm. Both are quite highly praised for being clear and descriptive and well written and all that jazz. IDAA appears to have a novel method of categorizing the algorithms, by how they works, not what they do. That appeals to me greatly. Algorithms however appears to be cited significantly more than IDAA, and is much less expensive. More importantly, while Algorithms seems to clearly explain the concepts behind the algorithms it contains, IDAA seems to be focused towards doing the same for algorithms in general. Naturally, I would prefer the latter.

So Introduction to the Design and Analysis of Algorithms it will be. Here’s to hoping reviews on Amazon are worth a damn. Cheers.


March 28, 2008 - Posted by | Books

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: