Monday, April 23, 2012

Think Complexity book review

Think Complexity, by Allen B. Downey

I've seen the title of this book several times, so when it appeared on the list of books in the O'Reilly blogger review program, I had to grab it.

I'm interested in algorithms, complexity, and programming. This book's table of contents covered all those things, but with a huge caveat: a very low page count (158 pages for the PDF version). Most topics got only a few pages, so how useful could this book be?

Well, the author clarifies that up front: the book is meant to be a supplemental text for either an algorithms, intermediate programming, or special topics course. As such, the book does a decent job: it doesn't cover any particular topic in great depth, but it serves as an interesting smorgasbord of problems and algorithms around what Computer Scientists call Complexity. As either a quick sampler for students (or teachers, looking for some interesting topics), or as easy-reading for more seasoned developers, the book is worth picking up and reading, but be prepared to spend the real time on your own, digging into the details that the author only covers briefly.

A high point for me (as a former educator) is the inclusion of student-written chapters. The author required his students to produce analyses similar to the early chapters, and he chose a few of the better results to include as final chapters (and he encourages others to make submissions to his website, for possible inclusion in future editions). The final chapter (on student cheating) is especially relevant to many students and teachers. The game-theoretic approach to finding stable systems for managing cheating is an interesting approach.

My recommendation: read this review and the author's introduction. If you fit one of the categories he is targeting, then you'll probably find the book interesting.

[Disclaimer: I got this book for free as part of the O'Reilly blogger review program I was not required to write a positive review. The opinions I have expressed are my own. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255 : “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”]