Your Gold Box
Search      Browse
Subjects
      Bestsellers      Magazines      Corporate
Accounts
      e-books
& docs
      Bargain Books      Used
Books

SEARCH
Search Web

BOOK INFORMATION
  buying info
   editorial reviews
   customer reviews
   table of contents
   Amazon.com articles



So You'd Like to...

become a software engineer: A guide by Harvey A. Sugar, 25 Year Veteran Software Engineer

Create your guide

  
Ready to Buy?
38 used & new from $24.95
Have one to sell?
Don't have one?
We'll set one up for you.
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

Buy this book with Art of Computer Programming, Volume 2 by Donald E. Knuth today!
plus
Total List Price: $119.98
Buy Together Today: $99.58


Customers who bought this book also bought:
Explore Similar Items: 20 in Books



Product Details


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: 4 out of 5 stars
Write an online review and share your thoughts with other customers.

5 out of 5 stars The classic work of Computer Science, October 23, 2004
Reviewer:   Lance Murdoch (North America) - See all my reviews
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:

2 out of 5 stars Better alternatives exist, August 12, 2004
Reviewer:   Fletcher Dunn (Dallas, Texas United States) - See all my reviews
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:

1 out of 5 stars 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:

5 out of 5 stars required reading for anyone serious about coding, August 31, 2003
Reviewer:   Eric Kent (USA) - See all my reviews
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:
Explore similar authors

So You'd Like To...

Listmania!

Look for similar books by subject:

Browse for books in:

Search for books by subject:
Computer Bks - Languages / Programming
Computer Books: Operating Systems
Computer Programming
Computer Programs
Computer algorithms
Computers
Programming - General
Programming Languages - General
Computers / Programming / General


i.e., each book must be in subject 1 AND subject 2 AND ...



Where's My Stuff?
• Track your recent orders.
• View or change your orders in Your Account.
Shipping & Returns
• See our shipping rates & policies.
Return an item (here's our Returns Policy).
Need Help?
• Forgot your password? Click here.
Redeem or buy a gift certificate.
Visit our Help department.
Search    for     

Turn your past books purchases into $$$
Learn more about selling at Amazon.com today!

Top of Page

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

Conditions of Use | Privacy Notice © 1996-2004, Amazon.com, Inc. or its affiliates