|
|||||||||||||||||||||||||||||||||||
|
8 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
27 of 30 people found the following review helpful:
5.0 out of 5 stars
the book's examples are in Java,
By
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
Neither the front or back cover says this, so I will. The source code examples in this book are all written in Java. I suspect the book is being a little coy about this because the authors want to maximise the potential audience. Fair enough. Granted, the text mentions Java immediately inside, but you have to actually open a physical copy, to see this.
If you are already conversant in Java, that's great, because the book offers an indepth guide to several crucial classes. But what if you program in C++ or C#? In the Standard Template Library for C++ and in the default libraries for C#, you should be able to easily find the equivalent classes to those used in the text. Of course, you will then have to rewrite the examples that use those classes. Straightforward. None of the examples are long. And since this book is fundamentally about computations, and not about making a user interface, the syntax for using the system classes is roughly the same, across these languages. Also, some examples might use the object oriented property of extending a base class. As you can do this in C++ and C#, there is no problem here either. A problem might have arisen if the authors had used C++ with multiple inheritance, because Java and C# forbid this. But since they didn't, it's not an issue. As an OO language, Java is actually pretty minimal. Another way of looking at the topic of your language is that if you don't use Java, you can potentially use the book to better effect. Because you can't simply copy the Java code, then you have to actually get an accurate understanding of what it is doing, before manually recoding. The text covers the most common structures and methods for using those structures, that you are likely to need. Lists, stacks, iteration, recursion, queues, sorting, searching, hashing etc. Some of these subjects have immense depth. For example, sorting and searching takes up one volume of Knuth's "Art of Computer Programming". But that is a very advanced text, and ill suited to someone new to the basic algorithms. Harris and Ross give you enough complexity to be challenging and understandable. While perhaps giving some indications as to more intricate underlying issues. As alluded to above, if you proceed through the text, several important Java classes are used. Vector, List, Hashtable, HashSet and others. You would be well advised to gain fluency in these, as the book shows how they form the basis of much computational work. You also get an appreciation for the beauty of Java, inasmuch as it comes with those classes. While you could certainly write these from scratch, not having to do so is a huge timesaver. And by using the system classes, you are assured of very stable, highly debugged classes.
10 of 10 people found the following review helpful:
5.0 out of 5 stars
Important to have around for a couple of reasons...,
By Thomas Duff "Duffbert" (Portland, OR United States) - See all my reviews (VINE VOICE) (TOP 500 REVIEWER) (HALL OF FAME REVIEWER) (REAL NAME)
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
It's pretty easy these days to use a programming language and the high level of abstraction it can offer to avoid understanding certain programming fundamentals like lists, queues, and stacks. It's for sure that I've gotten away with it. But if you're just starting out in programming (or if you're trying to fill in some gaps), you might be interested in Beginning Algorithms by Simon Harris and James Ross. They do a nice job of making a complex subject approachable...
Contents: Getting Started; Iteration and Recursion; Lists; Queues; Stacks; Basic Sorting; Advanced Sorting; Priority Queues; Binary Searching and Insertion; Binary Search Trees; Hashing; Sets; Maps; Ternary Search Trees; B-Trees; String Searching; String Matching; Computational Geometry; Pragmatic Optimization; Further Reading; Resources; Bibliography; Answers to Exercises; Index Harris and Ross take you through the basic programming algorithms using Java as the base language. Rather than just tell you "use this Java class to do a Hash", they explain the underlying concept and then have you build an implementation of that concept in code. After you've taken the time to write the methods and classes by hand, you'll end up with a pretty complete understanding of that algorithm in a way that just using provided classes can't offer. Another commendable point in this book is that they start off each algorithm coding exercise by building unit tests first. That way, you can be assured that the code you write does everything it's supposed to do, and further tweaks to improve the logic don't lead to the introduction of bugs. Very solid approach... I will end up keeping this book around for a couple of purposes. First, I'm sure to end up referring to it when I need to understand a certain fundamental like Soundex or searching. I'll get more out of this book and it's focus on practicality than I would out of some academic treatise on the subject. And second, if I have to code something related to one of these algorithms, I'll have some good example code to pull from. Can't ask much more from a book than that... If this is a weak point in your programming portfolio, getting a copy of this book to study and reference would be a good investment in your career.
9 of 10 people found the following review helpful:
2.0 out of 5 stars
An unnecessary blend of topics,
By
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
While the basic data structure and algorithm content is fine, the "marriage" of test driven development/JUnit and DS&A is completely unnecessary and, to my mind, seriously damages this book. There's nothing wrong with test driven development and there's nothing wrong with JUnit. But to suggest that it's necessary to force the two together (ad nauseum!) for every single structure is just false. Really, after the first one or two test cases the JUnit stuff gets really tired and it should be obvious to the reader how to continue on with it. This is much like introductory OOD texts trying to munge software engineering principles throughout. A better title for this text would be "A Test Drive Approach to Beginning Algorithms with Java and JUnit". There are those who agree with the Beck Test Driven Development, there are those who disagree. But a linked list is a linked list. At this level, the important material consists of the basic data structures, the algorithms which manipulate them, recursion and some sense of when to choose which structure/algorithm. This material, in my opinion, should be concentrated on without the unit testing - leave unit testing to a text covering general programming best practices. A much better choice for an intro to DS&A in Java is Robert Lafore's "Data Structures and Algorithms in Java".
15 of 19 people found the following review helpful:
2.0 out of 5 stars
WARNING,
By
Amazon Verified Purchase(What's this?)
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
The title of the book is 'Beginning Algorithms' and as such should cover the basics. It would be nice if a book on algorithms actually contained detail explanations regarding the particular structure that is going to be discussed or constructed. This book does not do that and hence does an injustice to the beginner or someone wishing to move from some text describing the how-to of programming in a given language to a detailed understanding of fundamental programming paradigms. Moreover, the title should read loosely defined algorithms JUnit tested beyond belief. It is pedagogically unsound to write a beginning book on algorithms whose emphasis is on testing the structures being built and not on accurately defining and motivating the assumed subject matter. For example, a link list or any of it's other incarnations is a structure that every soo-to-be programmer or computer scientist should know of and be able to effortlessly construct. The authors of this book give you a whopping one page description of a doubly linked list with a neat diagram and then go off on their rather annoying tangent of building the JUnit testing for the class or classes they are trying to build. Only after they give you the doce for testing-wasting several pages and minutes of your time-do they begin to construct the linked list. What's even worse than the needless discussion revolving testing (that should come after the object is defined and constructed) is the fact that they do absolutely no justice to the linked list or any other structure for that matter. It's just code with little if any text to motivate of define what hasa been built, why it has been built, where it may apply, how it might be applied or how it relates to, say, some of the fundamental types written as part of the Java core. Hopefully if this book is allowed to be reprinted the author's will do the computer science community and, in particular, its readership justice by never mentioning testing and instead fill those pages with thought provoking ideas that actually pertain to algorithm design. For those of you just starting out in programming and who are looking to move on into data structures and algorithm design and analysis please be warned that this text is not a wise choice and, in fact, this text is not a wise choice for any person above the novel reader interested in applying JUnit testing to fundamental data structures. Just be warned, buy something different and happy programming.
4 of 4 people found the following review helpful:
2.0 out of 5 stars
More of a book on testing algorithms in Java than producing them,
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
This book contains explanations and implementations along with example uses of various basic algorithms all in the Java language. The first five chapters explain the basics of algorithms such as iteration and recursion before introducing the reader to some fundamental data structures such as lists, stacks, and queues. Chapters 6 through 10 deal with various sorting algorithms as well as some prerequisite topics such as keys and ordering. Chapters 7 through 15 cover efficient techniques for storing and searching by way of hashing, trees, sets, and maps. Chapters 16 through 19 include several specialized more advanced topics as well as a general discussion on common performance pitfalls and optimization techniques.
If the authors had stuck to the subject matter this book could have been very good. Like most everyone else, I found this book's biggest problem to be its emphasis on testing the implementations of these structures and JUnit versus an understanding of the usefulness of the algorithms themselves and their mathematical and time complexity. Everyone coming to this book could be expected to be well-versed in Java programming, but I don't think you should expect them to know software testing that well. It's just not something you expect to deal with when you are learning the theory and implementation of algorithms. I still highly recommend Bundle of Algorithms in Java, Third Edition, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition) by Robert Sedgewick. It is sufficiently mathematically rigorous while demonstrating everything in the Java language versus Cormen's pseudocode in "Introduction to Algorithms", which is the standard classroom textbook on this subject.
1 of 1 people found the following review helpful:
4.0 out of 5 stars
Excellent for what it is,
Amazon Verified Purchase(What's this?)
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
Do you want an introduction to algorithms and data structures without a lot of really intense math? Do you already know Java reasonably well? Do you no mind skipping over lengthy descriptions of unit tests? If you answered "yes" to all those questions, then this is a great book. I came away with a much deeper understanding of the topics covered and I found it engaging and easy to read.
4.0 out of 5 stars
Good book for beginners. Simple examples in Java makes it easy to understand!,
By
Amazon Verified Purchase(What's this?)
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
I'm really happy with my purchase. First chapter gives a good introduction to runtime complexity. This is something that I had some problems understanding. But the book handled it really well in the first chapter. I am enjoying the learning process through this book.
Definitely recommend it to people who are interested in learning about algorithms but yet do not have a computer science background! Great book for introduction into Algorithms. I bought this in conjunction with another bookIntroduction to Algorithms, Third Edition. This book is definitely more technical and delves into algorithms at a deeper level. So if you are looking to just get an introduction into algorithms. This is the book for you.
3.0 out of 5 stars
Excellent on the basics and coding style, superficial on advanced or unusual subjects,
By
Amazon Verified Purchase(What's this?)
This review is from: Beginning Algorithms (Wrox Beginning Guides) (Paperback)
If you are a self-taught programmer who has never taken a class in data structures and algorithms, or has done so but not really got it, this book could be a good read. It presents in a gentle, very tutorial-like, example-driven fashion the basics of this field, Lists, Sets, Maps, Trees, Hashing, Sorting & Searching and a little material on more unusual topics like String searching and matching and computational geometry. This last part however does not maintain the very good standards of the first part of the book. The treatment is too superficial and vague and little mistakes and confusion starts to creep in. The main body of the book anyways is really well written and clear. As an bonus, the authors use a test driven approach to developing their Java code giving you a chance to appreciate this very useful practice of extreme programmming and agile methodologies. The code itself is crystal clear and shows the principles of good coding and refactoring (other pillars of extreme programming): short reusable functions, few local variables and meaningful names.
The end result is so good that the "how it works" sections who are meant to explain the code are almost always unnecessary. So this book can also be useful in teaching you how to write in a clear and elegant style. Final words, if you are looking for something that will introduce you to mathematical analysis of algorithms and their efficiency look elsewhere as this title contains none of that. |
|
Most Helpful First | Newest First
|
|
Beginning Algorithms (Wrox Beginning Guides) by Simon Harris (Paperback - November 7, 2005)
$39.99 $21.80
In Stock | ||