Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)

Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)

List Price: $59.99
Your Price: $51.32
Product Info Reviews

<< 1 2 >>

Rating: 5 stars
Summary: The bible of computer science just got better!
Review:

Knuth has finally updated the three completed volumes ofhis exceptional "The Art of Computer Programming" series,correcting errors and updating the topics to includestate-of-the-art algorithms while retaining the basicstrengths and weaknesses of the books. This comes as arelief to many old-time programmers who, watching Knuth's20-year diversion in pursuit of typographic perfection, hadbecome convinced he was NEVER going to get around tocompleting the remaining four volumes of the series.

The series's strength is its exhaustive survey and deepscientific analysis of the many algorithms applicable tothe areas of computer science covered. No other book orseries comes close in providing the reader with the toolsto understand and develop algorithms and to choose amongthe alternatives available when faced with a programmingchallenge requiring an algorithmic solution.

Knuth's primary weapon for analysis is mathematics and hedoesn't hesitate in beating algorithms to death with abarrage of equations; in fact, on a few pages a reader canfind up to thirty summation signs. So a warning is inorder: readers with math anxiety are likely to be reducedto a state of insensate palpitation. Yet the books containvery little calculus or other higher mathematics and thus acollege sophomore should be able to follow the discussion.Also, the reader can skip all the proofs on first readingand simply trust that Knuth is telling the truth.

Surprisingly, the series contains much background materialon the history of computer science and quite a bit of wryhumor. It is about as lively as can be expected of a seriesso deeply technical.

The series's greatest weakness is the MIX assemblylanguage, which Knuth uses to illustrate algorithms, almostalways after first describing them in English. Althoughassembly language is necessary in order to maintain Knuth'sdeconstructionist approach, MIX is deeply rooted in the1960s concept of a computer, with no stack orgeneral-purpose registers. Worse, a reader returning to thebook after letting it lie fallow will find the MIXinstruction mnemonics are needlessly cryptic (What do"ENNX" and "JBUS" mean!?). Perhaps Knuth will update theinstruction set or improve the mnemonics in a futureedition.

To sum up, I'd like to repeat some advice that was given tome in 1974 and is still true today: "If you want to be aprogramming technician, read about the latest programmingfad. If you want to be a computer scientist, read Knuth."

-- Glenn Fawcett

Rating: 1 stars
Summary: BETTER BOOKS EXIST
Review: A generation grew up on Knuth, yet many new coders simply do not know who he is.

The Art of Computer Programming is required reading for anyone serious about computer programming, it is as simply as that.

Rating: 5 stars
Summary: One the Standard, Still the Standard
Review: Don Knuth's classic The Art of Computer Programming trilogy has long been the standard reference for algorithms used in programming. The 20 years since the first editions have seen rapid development in both programming and algorithms, and the second edition had grown a bit gray around the edges. This third edition brings the set up to date.

I've always been amazed at Knuth's writing style as he manages to discuss complex material with a combination of clarity, freshness, and light humor. If you've read any of the previous editions, the organization and style will be quite familiar. He stuck with the use of the MIX mythical machine language for code examples, the algorithm format and notation, exercises rated by complexity and the need for higher mathematics, and plenty of background for context. He also retains the whimsical Procedure for Reading This Set of Books, in which Sleep is item 15 in the flowchart.

This first volume starts with a long chapter of Mathematical Preliminaries, required reading for all the volumes. This serves both as an introduction to the format and style of the books as well as an intense review of the mathematics used in developing algorithms. Its intensity can be daunting, and I found it useful to surround myself with the algebra, geometry, and calculus texts from my engineering days in school. The rest of the chapter introduces MIX and delves into some fundamental programming techniques.

The second chapter (each volume has but two long chapters, retaining the organization of the previous editions), covers information structures. Here you'll find everything you ever wanted to know about linear lists (including stacks, linked lists, and arrays), binary and other types of trees, and dynamic storage allocation. There is plenty of new material in this section, particularly for topics that are so fundamentally a part of computer programs.

Fundamental Algorithms is not for the faint of heart and isn't something that you can scan passively. Casual programmers without an interest in mathematics probably won't benefit much from the book, other than the prestige of having it on the shelf. It takes work to understand the material, but is a required exercise for anyone serious about gaining a solid grasp of the fundamentals of programming.

Rating: 3 stars
Summary: Keep reading it people
Review: I bought this book before the turn of the century and found it to be organized differently from other books. The style of writing is very different. You either like it or loathe having to read it [my opinion]. I like it because it has these little gems of information in it, which I can use in the real world; with a decent bit of thought though. It is the book to pull out to silence modern heretics seeking to corrupt the software engineering brethen with their weak mush. Since it is using the MIX machine language( the author's creation); lots of time will be spent converting it to your environment, but that's where the fun begins. I develop new ideas almost every time I re-read the book. I might say more about it after another 15 reads. I followed the author's instructions to the letter; two of them are re-reading the book and the getting my friends to buy it. All of my friends (engineers/developers) want to borrow this book from me, but neither seems willing to fork out a single cent to purchase this book. I like it because it keeps my focus in this fast moving world of changing technology, it keeps me sane going back to basics. I give this book three stars because there is some THEORETICAL MATHS (assuming ifs), a good LOAD OF INFORMATION TO SORT THROUGH and A LOT OF WORDS. Buy it if you know quite a bit about programming and engineering, and want a deeper understading of software engineering.

Rating: 5 stars
Summary: Excellent book for learning fundamental algorithms well.
Review: I read this book when I was a sophomore in high school and I thought it was excellent. Prior to reading the book, I had wanted for a long time to write a program to evaluate standard mathematical expressions. I had even tried once before, but I didn't know enough about what I was doing to be really successful. Somewhere in the second chapter in a discussion of lists, doubly-linked-lists, and binary trees, a good solution came to me, and I implemented it right after I finished reading the book. It worked very well. This book helped me to accomplish the major goal-project of my computer programming career so far, and I definately think it is worth reading for anyone wanting a really advanced understanding of fundamental algorithms. Now I know to many advanced means total [over]use of fully encapsulated C++ objects, which this book doesn't have, but this book gives an advanced understanding, which is infinitely more valuable than classes. If you understand OOP and you understand this book, you should be able to combine the two just fine. Lastly, I'd like to comment on the use of MIX. I read almost none of the MIX assembly code when I read this book. The little I looked at I looked at because I wanted to see what assembly was like in the 60's. But you can understand everything he's trying to say by his explanations of the algorithms, the assembly code is only for clarification, and you don't have to read it. I also believe that everyone who's been using fully encapsulated classes for their entire programming career should learn an assembly language sometime. Just like this book, it will teach you how to think.

Rating: 2 stars
Summary: Better alternatives exist
Review: It was difficult to assign a "star rating" for this book. It is a classic, for sure. It's definately a good book. However, I don't think I'd recommend it for most readers, and hence the low rating.

Like all of Knuth's "Art of Programming" books, this one is really starting to age. Like other reviewers, I really don't like the MIX assembly examples. (MIX is a fictional computer that he invented purely for the purpose of teaching.) His rationale for using MIX is because he says that he doesn't want to just discuss topics in theory, sometimes it's necessary to show how it's actually implemented. He does this in MIX. He says that he chose MIX, rather than any actual existing machine language, so that it wouldn't be out of date or be tied to a particular platform. Unfortuanetly, there are several problems with the MIX examples:

* First, it's assembly language. I used to do lots of assembly language. (I make video games.) Now I do almost none at all. In general, very few programmers do assembly language programming. I understand how in many cases using a high-level language could possibly have glossed over some of the details. However, still, I think a language like C is sufficiently low level that he could have acheived the same results with C, and it would have been much more readable and accessible to today's audience. Also, when Knuth wrote his first books, C was just being born, and since then, it has become a lingua franca in the computer science community.

* MIX is purposely contrived to be "weird" (6-bit word size???)

* Most importantly, using a fictious computer system introduces an unnecessary extra step to understanding the examples. Not only do you have to learn the material, but you have to wade through learning MIX - information you won't use anywhere else. I know that any of C, Java, Pascal, x86, MIPS, etc would have had people who didn't know that language and so it would have been an impediment to them. Unfortunatly, Knuth has chosen a language that NOBODY knows and so EVERYBODY has this extra learning curve.

The books are also really heavy on the math. I think it's not unfair to say that these books are more math books than they are computer books. Knuth is famous for setting computer science on a mathematical foundation. He proves everything and RIGOROUSLY discusses the math behind every topic. For some readers, this is enlightening. Now I am not shy on math (I wrote a book on 3D math myself) however I usually found the detailed proofs unnecessary. I also wish he would have expressed ideas in English more that equations. For example, Knuth would never write "the elements sum to one" - instead, he'd have an equation using sigma notation. Which is consise and precise and in some sense "elegent" - but it takes a lot of mental "work" to read. I think many readers will share this sentiment.

Some people include the phrase "the information is timeless." Yeah, this is true. But the presentation style is not. There other books with the same "timeless" information, and a more up-to-date style of presentation. I personally use Sedgewick's algorithm's book.

An interesting anecdote on how much I have been actually able to use this book - perhaps it will help you estimate if you will get enough use out of it to justify the price tag. We discovered that the rand() function in the C library on the PS2 was buried underneath several layers of funtion calls and checks for different random number modes, etc, and it was causing a performance problem, and we needed to write a replacement. I was thrilled. Finally, an opportunity to pull the Knuth off the shelf! This book is one of the the bibles on random numbers. I looked for advice on chosing A and C for the linear congruential generator. There was SOOOO much information. (The first 190 pages of the 2nd volume deal with random numbers.) It was all very facinating. Yet in the end, we dug up the gcc source for rand() and just used the numbers they chose!



Rating: 5 stars
Summary: Back to basics
Review: Its as good as it can be. In depth analysis(not that much breadth though) of basic algorithms. I would also recommend the 3rd volume of the series on sorting and searching.Its good for those who are willing to put lot of time and effort in studying it, one of the good things about the books are the problems at the end of each chapter. If you solve them ...hats off, you are a star programmer!!
Some of the new data structures and algorithms are missing from the book, but I still think it deserves the 5 star for whats in there. I would also recommend The Algorithm Design Manual
by Steven S. Skiena, Steve Skiena, that lists all the algorithm (that kind of covers the breadth) and their usage, specially the use cases.

Rating: 1 stars
Summary: BETTER BOOKS EXIST
Review: People buy Knuth's books for snob appeal, which is to say that they like to put the 3-book set on their shelves as an advertisement for their own intellegence. What they don't realize is that truly talented individuals will see beyond this kind of cheap PR stunt. "Look, I read Knuth... boy, I must be a genius!"

Donald Knuth obviously has offered extra credit to students who provide him with glowing reviews on amazon. "Oh geeze, this is the best book ever. Bow down and kiss his feet." For all we know, he may even offer a cash reward.

This is just one of those cases where the myth of Knuth has overshadowed reality. Is Knuth well known? Yes. Has Knuth been around forever. Yes. Has knuth published countless articles? Yes. Are his books used in day-to-day coursework on top-ten engineering schools. NO, THEY ARE NOT.

For data structures, most *working* professors would refer you to Cormen, Leiserson, and Rivest (or maybe Robert Sedgewick). For scientific computing, most *active researchers* would suggest a book like Michael Heath's. For random numbers, you'd be better off with Kelton and Law's book on simulation. For computer architecture, everyone uses Patterson and Hennessey. See a pattern here?

The truth is that fields mature, and textbooks get better and better. Knuth has decided that it's too much work to stay current; he'd rather stick to 6-bit MIX assembler code and his precious universal truths.

Well, Professor Knuth, I have news for you: there are more recent books out there that do a much better job at stating "universal truths" with the added benefit of being easily readable.

I don't buy the excuse that it's too much work to re-write code examples in different languages. Isn't this what graduate students were made for Prof. Knuth? Hell, you don't even have to pay them that much. Just try not to speak down to them, oh great one.

I also don't buy the excuse that he uses MIX so that the reader can look at the finer details of performance and memory consumption. Isn't this the same man who said that "premature optimization is the root of all evil?" In other words, don't optimize; use a better algorithm. You don't need to look at assembly code to analyze algorithms, O(n) analysis should suffice...at least, it's more of a "universal truth" approach.

By trying to write a complete survey of computer science, Knuth trys to be everything to everyone. In doing so, he does nothing as well as he could have (and certainly not as well as the textbooks currently being used). What he has ended up with is an expensive white elephant, that will look pretty while it collects dust.

Stop making excuses Professor Knuth. Get off your d@mn organ and get back to work.

Rating: 5 stars
Summary: The ultimate guide to algorithms, a classic
Review: Probably the best book ever written on the subject of function based computing algorithms. Pretty though math sometimes, that's why I won't give it a '10', but still possible to read for people who don't have a university math degree (I don't). Explains a lot of algorithms and common data-structures and ways to figure out which method is the most efficient. A must for any programmer who wants more than just the standard programming cookbooks. Check out volume 2 and 3 too, and wait patiently for D. Knuth to finnish the last 4(?) volumes. The whole series should be finnished by the year 2005, I've that from the author himself.

Rating: 5 stars
Summary: The classic work of Computer Science
Review: Some of the reviews here talk about how this book is not immediately useful for practical ends, and go on to say how MIX is obsolete, one doesn't have to know assembly anymore and so forth. I think they have missed the point. This series of books definitely emphasize the Science in Computer Science. They are scientific works, and are not meant to be immediately useful so that you can learn how to program an e-commerce site on a Windows 2000 server. If you want to learn that, go buy another book. If you want to learn about the most efficient algorithms capable of solving problems, if you want to learn the mathematical basis of how problems can be solved with computers, and how to do it on the underlying hardware, directly, with assembly code, this is the book for you. This is Knuth's life work, and an attempt to really contribute to capital C Computer capital S Science. It is not "Teach yourself programming PHP in 30 Days", if that is what you're looking for, you should certainly buy another book. If you are looking for what Knuth intended, this is the best that's currently out there.


<< 1 2 >>

© 2004, ReviewFocus or its affiliates