Author: John MacCormick Publisher: Princeton U P Pages: 248 ISBN: 9780691147147 Aimed at: General reader interested in computing Rating: 4 Pros: An insight into the possibilities of computing Cons: Tends to be longwinded, inappropriate use of "trick" Reviewed by: Mike James
Nine algorithms that changed the future  but which nine?
The subtitle is "The ingenious ideas that drive today's computers" and the book is very much aimed at the average reader and not the expert. If you are an expert, or even know just a little about programming and algorithms, then much of the fun is in discovering which algorithms have been picked and how they are described.
The very first thing to say is that this book isn't about the most interesting or amazing algorithms. If it was then the subject matter would be much more difficult to explain  not impossible, but difficult . For example, you won't find Quicksort or any of the divide and conquer algorithms. And you wont find any theoretical things like complexity theory. This is a selection of algorithms that have a claim to having changed things. From this perspective it is surprising that nine neat elegant algorithms can be pinned down  and, as will become apparent, perhaps they can't.
After a general introduction, Chapters 2 and 3 deal with the search engine algorithms. First we have the idea of indexing and next the page rank algorithm. If you know even a little about programming, perhaps the idea that indexing is an algorithm worth discussion is more a reflection of the importance of the search engine. Page Rank is more worthy of attention.
From here we move on to two chapters on coding theory. Chapter 4 introduces public key cryptography and Chapter 5 does the same for error correcting codes.
Chapter 6 isn't really about an algorithm at all. Pattern recognition is a diverse subject with lots of algorithms and the idea that it is somehow to be counted as one of the nine algorithms that changed the future is very strange. The chapter itself is best described as being all over the place  decision trees, neural networks, nearest neighbour algorithms and so on. Anyone who knows about pattern recognition will be disappointed that their own favourite algorithm isn't included.
Chapter 7 is about data compression, but once again it isn't a single algorithm that is explained. We have both lossless and lossy compression explained, together even though they are based on very different theories.
Next we move on to database  relational theory is interesting and the description attempts to explain why it is an important approach. Again this isn't exactly an algorithm, more a complete approach to a problem that is replete with multiple algorithms.
Chapter 9 deals with digital signatures and returns to public key cryptography. It could have been included in Chapter 4 as a second section.
Finally we have a round up of what is computable and a round out.
The writing style is best described as steady and well paced. The one irritation, and for some readers it could be a big irritation, is the repeated used of the word "trick". Every algorithmic invention, or even anything that isn't 100% obvious, is called a "trick". This is slightly tedious and perhaps even undervalues the cleverness of some of the techniques. There is also the irritation for some that it would be difficult to make a list of nine clear cut algorithms that the book is supposed to be focused on. In many cases what we have is a subject area and a collection of the most common algorithms.
This said, as long as you don't mind the repetition of "trick" and aren't expecting a selection of the best algorithms in the toolkit, then here is a book that will communicate what computers do to the average reader and for that you have to give it credit.
Recommended to a wide audience, but not if you know enough about programming to have opinions about your own favourite algorithms.
Android Security Internals
Author: Nikolay Elenkov Publisher: No Starch Press Pages: 432 ISBN: 9781593275815 Print: 1593275811 Kindle: B00P8DRZWA Audience: Competent Android developers Rating: 5 Reviewer: Mike James Reviewed: February 2015
Over the festive season IProgrammer gives its reviewers a welldeser [ ... ]

C# 6.0 Cookbook 4th Ed
Author: Jay Hilyard, Stephen Teilhet Publisher: O'Reilly Pages:704 ISBN: 9781491921463 Print:1491921463 Kindle:B0043D2E3G Audience: Intermediate C# programmers Rating: 3 Reviewer: Mike James
Cookbooks always have something to interest any reader, but does this one have enough [ ... ]
 More Reviews 
