|
| |
 | | 38 used & new from $24.95 |
|
| | Have one to sell? |  |
| |
|
|
Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)
by Donald E. Knuth
| List Price: | | $59.99 |
| Price: | | $47.39 & This item ships for FREE with Super Saver Shipping. See details. |
| You Save: | | $12.60 (21%) |
Availability: Usually ships within 24 hours
38 used & new from $24.95
Edition: Hardcover
See more product details
Better Together
Customers who bought this book also bought:
Explore Similar Items: 20 in Books
Product Details
- Hardcover: 672 pages ; Dimensions (in inches): 1.43 x 9.64 x 6.66
- Publisher: Addison-Wesley Pub Co; 3 edition (July 7, 1997)
- ISBN: 0201896834 | All Editions
- Average Customer Review:
Based on 43 reviews.
- Amazon.com Sales Rank: 11,888
(Publishers and authors: improve your sales)
Our Customers' Advice
See what customers recommend in addition to, or instead of, the product on this page.
Recommend an item!
See more customer buying advice
Editorial Reviews
Amazon.com
This magnificent tour de force presents a comprehensive overview of a wide variety of algorithms and the analysis of them. Now in its third edition, The Art of Computer Programming, Volume I: Fundamental Algorithms contains substantial revisions by the author and includes numerous new exercises. Although this book was conceived several decades ago, it is still a timeless classic. One of the book's greatest strengths is the wonderful collection of problems that accompany each chapter. The author has chosen problems carefully and indexed them according to difficulty. Solving a substantial number of these problems will help you gain a solid understanding of the issues surrounding the given topic. Furthermore, the exercises feature a variety of classic problems.
Fundamental Algorithms begins with mathematical preliminaries. The first section offers a good grounding in a variety of useful mathematical tools: proof techniques, combinatorics, and elementary number theory. Knuth then details the MIX processor, a virtual machine architecture that serves as the programming target for subsequent discussions. This wonderful section comprehensively covers the principles of simple machine architecture, beginning with a register-level discussion of the instruction set. A later discussion of a simulator for this machine includes an excellent description of the principles underlying the implementation of subroutines and co-routines. Implementing such a simulator is an excellent introduction to computer design.
In the second section, Knuth covers data structures--stacks, queues, lists, arrays, and trees--and presents implementations (in MIX assembly) along with techniques for manipulating these structures. Knuth follows many of the algorithms with careful time and space analysis. In the section on tree structures, the discussion includes a series of interesting problems concerning the combinatorics of trees (counting distinct trees of a particular form, for example) and some particularly interesting applications. Also featured is a discussion of Huffmann encoding and, in the section on lists, an excellent introduction to garbage collection algorithms and the difficult challenges associated with such a task. The book closes with a discussion of dynamic allocation algorithms.
The clear writing in Fundamental Algorithms is enhanced by Knuth's dry humor and the historical discussions that accompany the technical matter. Overall, this text is one of the great classics of computer programming literature--it's not an easy book to grasp, but one that any true programmer will study with pleasure.
Book News, Inc.
<:st>Part of a five-volume textbook and reference to algorithms used in computer programs, suitable for either classroom or self- study. Assumes the reader to be familiar with elementary calculus, and to have enough background in computer programming to have written several programs for at least one kind of computer. The first volume begins with the basic programming concepts and techniques, then focuses on information structures. Dates for the first two editions are not given. Cited in -- ...
read more
See all editorial reviews...
All Customer Reviews
Average Customer Review:
Write an online review and share your thoughts with other customers.
The classic work of Computer Science, October 23, 2004
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.
Was this review helpful to you? 
(Report this)
6 of 7 people found the following review helpful:
Better alternatives exist, August 12, 2004
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!
--This text refers to the Hardcover edition
Was this review helpful to you? 
(Report this)
21 of 40 people found the following review helpful:
BETTER BOOKS EXIST, November 12, 2003
| | | Reviewer: | | A reader (LLNL, CA) |
|
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.
Was this review helpful to you? 
(Report this)
0 of 3 people found the following review helpful:
required reading for anyone serious about coding, August 31, 2003
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. --This text refers to the Hardcover edition
Was this review helpful to you? 
(Report this)
See all 43 customer reviews...
Customers who bought titles by Donald E. Knuth also bought titles by these authors:
So You'd Like To...
Listmania!
Look for similar books by subject:
Browse for books in:
Turn your past books purchases into $$$
Learn more about selling at Amazon.com today!
Books Search | Browse Subjects | Bestsellers | Magazines | Corporate Accounts
e-Books & Docs | Bargain Books | Used Books Amazon.com Home | Directory of All Stores
Our International Sites: Canada | United Kingdom | Germany | Japan | France
Contact Us | Help | Shopping Cart | Your Account | Sell Items | 1-Click Settings
Investor Relations | Press Releases | Join Our Staff