<< 1 >>
Rating: Summary: This book is a classic! Review: I recently modified a program I wrote so that it would do operations on polynomials with multi-precision coefficients. For this, I turned to Knuth. This 3-volume set is a great starting point for learning how to implement mathematical calculations on a machine.
Don't listen to the "Reader" from CA. This person obviously has a bone to pick with Knuth. Maybe (s)he failed one of his classes. Maybe (s)he should write his/her own book on the subject.
Rating: Summary: Better alternatives exist for most people 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 mor readable and accessible to today's audience. * 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. The above comments apply to all the three Knuth "Art of Computer Programming" books I own. In general, I think there are better alternatives for most readers, and I wouldn't recommend them. HOWEVER - a slight exception could be made for this volume, because the subject matter is highly mathematical in the first place. You don't buy a book like this to avoid the math. You buy a book like this BECAUSE of the math. So if you have a need to dig very deep into the math behind random numbers, or how to multiple polynomials, or factoring, or learn a LOT about prime numbers, then this is the book for you. 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 book 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: Summary: Better alternatives exist for most people 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 mor readable and accessible to today's audience. * 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. The above comments apply to all the three Knuth "Art of Computer Programming" books I own. In general, I think there are better alternatives for most readers, and I wouldn't recommend them. HOWEVER - a slight exception could be made for this volume, because the subject matter is highly mathematical in the first place. You don't buy a book like this to avoid the math. You buy a book like this BECAUSE of the math. So if you have a need to dig very deep into the math behind random numbers, or how to multiple polynomials, or factoring, or learn a LOT about prime numbers, then this is the book for you. 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 book 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: Summary: Fascinating Review: Of course this is a classic programming text, but the book is fascinating from a mathematical point as well. The discussion of random number generation is worth the price alone. Also neat is the discussion of why numbers with lower initial digits are 'more common' in practice than those with higher initial digits, a topic I've never seen treated elsewhere.
Rating: Summary: OUTDATED, 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: Summary: OUTDATED, BETTER BOOKS EXIST Review: This book is the bible of coputer programming It contains algorithms on pseudo-random sequences, algotithms on aritmetic operations on number, matrices ect. The only drawback of this book is that all algprothms are writeen in MIX - some kind of assembler, that make them hard to read.
Rating: Summary: Legendary book Review: This book is the bible of coputer programming It contains algorithms on pseudo-random sequences, algotithms on aritmetic operations on number, matrices ect. The only drawback of this book is that all algprothms are writeen in MIX - some kind of assembler, that make them hard to read.
Rating: Summary: Fascinating Review: This book offers a stringent treatment of random number generators and algorithms not found anywhere else. It is particularly valuable for those that deal with encryption and the analysis of cyphers. The exercises add admirably to the text. References to other books in the field are extensive. The book is written in a non-wordy, but still very readable style, making it accessible to serious computer scientists at all levels. A mathematical background is necessary.
Rating: Summary: State of the art reference for computer scientists Review: This book offers a stringent treatment of random number generators and algorithms not found anywhere else. It is particularly valuable for those that deal with encryption and the analysis of cyphers. The exercises add admirably to the text. References to other books in the field are extensive. The book is written in a non-wordy, but still very readable style, making it accessible to serious computer scientists at all levels. A mathematical background is necessary.
<< 1 >>
|