Stephen R. Starr said
The book was purchased as a classroom text. The subject matter is incredibly difficult, but the authors do their best to make it comprehensible.
LoneIgadzra said
I found the material and explanations in this book to be generally followable. I would definitely recommend it for learning the various concepts.
I'm not really sure about the wisdom of "Java" pseudocode, as there are alternatives that are a lot more readable (C isn't one of them) and some of the changes from actual Java seem a little pointlessly confusing. For example, a Java programmer would think in "object oriented" terms and many algorithms list the length of an array as an input as well as the array, to which anyone used to Java arrays is saying "well duh". So I'm not sure why you'd buy this version over the C variant (or a book not using a C-like pseudocode at all).
One irritating problem is (and here I may be showing my ignorance of computer science in mathematical terms), as a reference for how to implement certain algorithms, it is excessively tedious to work with. Simply because they wrote all their algorithms with the idea that arrays start at '1'. This is incomprehensible inasmuch as no popular modern programming language has arrays starting at 1, no budding programmer would think of an array as starting at 1 (though yes there is something to be said for being able to think flexibly), the authors would have had to test all these algorithms in languages with arrays starting at 0 and then spend way too long converting them since a good many of the algorithms in the book are completely broken when rewritten under the assumption that arrays start at 0.
In summary, it seems like they went out their way to create extra work for both themselves and their readers. This one little thing is honestly a huge pain.
W Boudville said
The authors take a more informal approach to describing algorithms, than other texts, by Knuth, Sedgewick and Aho. This may appeal to some of you, who might have been put off by the level of mathematical background required by the other books. Or by the rate of exposition of ideas within those books.
The presence of problems with each chapter helps your learning. And there certainly seems to be plenty of examples. To me, it seemed like they were belabouring the point, in places. But to you, it might feel like a comfortable dialog.
The usage of Java pseudocode is neither here nor there. If you are sufficiently skilled in a programming language, and it need not be Java, then you should have no problem writing out actual code to test the algorithms. In other words, don't worry if you do not know Java. Just imagine it as generic pseudocode.
Comments