Algorithms Unlocked

Author: Thomas H. Cormen
Publisher: MIT Press
Pages: 240
ISBN: 978-0262518802
Audience: General readers interested in Computer Science
Rating: 4
Reviewer: Mike James

An easy to read book about algorithms. What could be better reading for a programmer - or a non-programmer?

 

The promise of Algorithms Unlocked is that it will explain the world of algorithms to anyone wanting to know. To quote from the back cover:

Have you ever wondered how your GPS can find the fastest way to your destination, selecting one route from seemingly countless possibilities in mere seconds? How your credit card account number is protected when you make a purchase over the Internet? The answer is algorithms. And how do these mathematical formulations translate themselves into your GPS, your laptop, or your smart phone? This book offers an engagingly written guide to the basics of computer algorithms. 

This sounds exciting.

 

Banner

 

The first chapter starts off with the question "What are algorithms and why should you care?" This is answered in plain English until we get to page 3 when a square root of n pops up. I'm not frightened of algebra, but many readers find it off-putting and you need to know that from page 3 on this book has a lot of algebra per page. For many readers  this is not a problem, but for them the problem is that much of the text is aimed at an audience very much lower in IQ requirements. Neither level of presentation is a problem, but together they might be. 

Chapter 2 tackles the elephant in the room - the need for a programming language to describe algorithms. The solution adopted is to stick to pseudo code and try to imagine it is just like plain English. By the second page we have arrays and array notation A[i] by the forth page we have a for loop. And the text on next the page is looking very symbol heavy. The last part of the chapter deals with running time analysis including big O notation. Before we hit the end of the chapter we have loop invariants and recursion  - this is not a complete beginner's book despite the toned-down language used in many paragraphs. 

So by Chapter 2 we can conclude that this is a terrible book? No, not a bit of it. It is a really good read, but only if you are up to taking in the details of the algebra and the programs. If you can then it is a really good book that will tell you much that a more academic book would make much more inaccessible. 

Chapter 3 explains what every programmer should know about the theory of searching and sorting from binary search to Quicksort. Chapter 4 extends this and looks at lower bounds on comparison and counting sorts. 

Chapter 5 is called Directed Acyclic Graphs and again this give you evidence that the book isn't aimed at the non-technical reader. If it was then the chapter would be called "Networks" or even "Social Networks" to try and persuade the reader that it's cool. It is but only if you are into Dijkstra's algorithm with a side order of Bellman-Ford and Floyd-Warshal algorithm which are all covered in chapter 6. Again the tone of the book is very mathematical with matrices and some longish programs. 

Chapter 7 is about string algorithms, including longest common subsequence and string transformations. This is an area that has become very interesting of late due to its application in working with DNA sequences.  

Next we have a chapter on cryptography, including RSA and random number generation, and on on data compression, which covers basic Huffman coding and works its way to LZW, which is the basis of zip and other compression applications. 

The final chapter is called "Hard? Problems" and, you guessed it, is about the traveling salesman problem, NP v P, NP complete, NP hard and undecidability. This is the most theoretical of the chapters but as long as you have some background in algebra and some idea of what computer science is all about you will love it. 

 

The bottom line is that this is not the book you should rush out to buy as a present for you nearest and dearest - unless they happen to be a math-capable programmer. The ideal reader is probably a first year, or prospective, computer science student or the programmer who wants to get an easy-to-read view of the subject. 

It clearly is possible to write a book that explains algorithms for the general reader - mainly by leaving out runtime analysis and simply supplying the broad ideas - but this isn't it. If it goes to a second edition then I would suggest taking out some of the "baby talk". If you need it explained like that you arent' going to code anyway. 

Even so, if you are up for the math and happy with pseudo code, then this is good starting point and an entry to reading the author's more grown up book "Introduction to Algorithms"

Related Reviews

Introduction to Algorithms

 

Banner


The Principles of Object-Oriented JavaScript

Author: Nicholas C. Zakas
Publisher: No Starch Press
Pages: 100
ISBN: 978-1593275402
Audience: Intermediate JavaScript programmer
Rating: 4
Reviewer: Ian Elliot

 

Object-oriented JavaScript can mean different things to different people. In this case the approach is to treat JavaScript as a lang [ ... ]



CSS 3 in Easy Steps

Author: Mike McGrath
Publisher: In Easy Steps
Pages: 216
ISBN: 978-1840785418
Audience: Web beginners
Rating: 4.5
Reviewer: Ian Elliot

CSS 3 is just as important to creating a web page or a web app as HTML and JavaScript. You really need to understand it and this book is an introduction.


More Reviews

<ASIN:0262533057>

 

Last Updated ( Saturday, 19 October 2013 )
 
 

   
RSS feed of book reviews only
I Programmer Book Reviews
RSS feed of all content
I Programmer Book Reviews
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.