
Title | : | The Art of Computer Programming, Volumes 1-3 Boxed Set |
Author | : | |
Rating | : | |
ISBN | : | 0201485419 |
ISBN-10 | : | 9780201485417 |
Language | : | English |
Format Type | : | Boxed Set - Hardcover |
Number of Pages | : | 896 |
Publication | : | First published October 15, 1998 |
The Art of Computer Programming, Volumes 1-3 Boxed Set Reviews
-
Perfection itself. Every few months I have to go back to my Knuth for some forgotten analysis or modeling, and it's always a savory treat -- I know no other books so dense and overflowing with rare and obscenely useful tricks, so immense in their scope and successful in coverage thereof; there's really nothing approachable in computer science or, so far as I know, in any field (the Hilbert-Courant volumes or Thorne's
Gravitation might compare, if their subjects weren't so much vaster than computing, now in only its seventh or eighth decade as a proper discipline).
Don't bother with editions other than the magisterial Third (I've collected three editions, although I've only studied the most recent) -- remember that Knuth took ten years off to develop TeX as a response to the misery of preparing and printing the First. The Third is a beauty, some of the best-bound books in my library and practically indestructible to boot (note that Volume 3 is in only its Second Edition).
Don't get me wrong: TAOCP is not an introductory guide to programming by any means, and it'd have been fantastically difficult (although possible, in a Ramanujan-like way) to learn from these books alone (try
Structure and Interpretation of Computer Programs, or
A Discipline of Programming, for that). Indeed, I purchased them before I could put them to full use (and while mathematically, abstractly and computationally underexperienced at 18, I wasn't a tremendous dumbass or anything). Knuth demands, requires, and with epic results justifies a fair level of mathematical sophistication (indeed, the greatest value of early exposure to these classics might be the immediate and forceful demonstration of the absolutely critical role mathematics, abjured by all too many undergraduates brought up on cheesy web programming and mind-rotting video games, plays as a Real Programmer's cynosure and primary tool). Both continuous and discrete analysis are required for following along with the text or solving most of the elegant, absolutely stunning problem sets (Knuth has put more effort into his problems than any author I know, hands down). The sedulous reader will be rewarded many times over.
I've heard complaints about Knuth's use of assembly language; I'm bewildered by these objections and find them fatuous in the extreme. A well-defined assembly language (especially on the MIX/MMIX machines, intended as they are for abstraction) is surely much simpler than the majority of high-level languages, if rather more obscure in its mnemonics. I learned assembly languages for the MosTek 6502 (used in my ATARI 400) and Intel 8086 at the tender ages of 7 and 10, respectively, and found the former a far more sensible and reasonable (not to mention powerful) ontology than an ATARI BASIC that served primarily to eat from your precious 16K of RAM. Let's face a hard truth, gentlefolk: if you can't figure out freakin' assembly language, you'd be better giving up those dreams of code and sticking to blue shirts, smiles and Best Buy's stereo department.
Just as two quick examples of Knuth's power and reach: about a year ago, I needed to set up a multisite scanning platform driven by modular FSM's, designed to perform varied scans of the IPv4 space with an eye towards isotropy. I sought to offer several different targeting schemes, and opened volume 2 wondering semi-absentmindedly "how might one enumerate 2^32 elements in a pseudorandom fashion on a 32 bit architecture?" Simply, and in O(1) state -- iterate through a linear congruence having period 2^32. The necessary constraint equations were there on page 20 or so. I coded up the generating function before lunch that day, turned it into my (awestruck) boss, and it continues even now to form the heart of our active search operations. Secondly, for a recent analysis of a multicore sort viz various cache setups, I was struggling to properly model the transactions -- I opened up Volume 3, and was blinded by 5.3.2 "Minimum-Comparison Sorting", a section I swear I've read multiple times but never thought to apply. My analysis, much finer than it could have been otherwise, was completed within the hour.
Finally, they're uproariously funny at times. Knuth's is an understated and erudite humor, but every few dozen pages he'll toss a riotous throwaway, often two or three levels of reference deep, into the middle of a pile of equations. -
The mouseover to Randall's cartoon says:
'Dear Reader: Enclosed is a cheque for 98 cents. Using your work, I have proved this equals the amount you requested.'
Nick provides a proper review...
http://www.goodreads.com/review/show/...
Oh. It's full of jokes, by the way. Just as well I didn't have my cup of tea in hand when I came upon this one:
4. [M50] Prove that when n is an integer, n > 2, the equation xn + yn = zn has no solution in positive integers x, y, z. (NB the book was published in the 1960s.) -
As programmers, this is our bible, along with "A method of programming" by E. W. Dijkstra, which somehow manages to condense into its few pages most of what Knuth expresses in these three (now four) large volumes. Nevertheless, "The Art of Computer Programming" represents an absolute in terms of exposition of the process: no programmer should be without the knowledge contained within. Where Dijkstra, the European, represents a terse, quick method of thinking with huge leaps of intuition, fierce intelligence and sparse, elegant beauty, Knuth's approach is American: methodical and complete, moving gradually from one step to another in a procedural fashion. But there is room for beauty here, too, as Knuth slowly unfolds what has been percolating in his mind these last fifty years, during which he has gradually honed these volumes to perfection. Reading them, one feels as though one has become part of that journey.
-
The definitive work on programming; without a doubt there is no more important book on Computer Science. However, it's almost totally impenetrable. I haven't read even a quarter of this, and fully understood much less, but that's nothing to be ashamed of, as probably no one else has either. All the examples are in a made up assembly language, and Knuth invented his own typesetting system to publish it, which became widespread and famous.
The perfect Coffee table book. -
The book is an excellent read, and I'm quite certain it has contributed a great deal to helping me imrpove as a professional. I can't recommend it enough, especially for SENIOR developers. I'm not sure about junior developers though.
-
Some people consider these books a sort of bible for computer programmers. I wouldn't go so far. A bible always assumes some form of religion. And that would make the author a kind of deity, a pedestal upon which he certainly would not want to be put. If you like to read a "bible-ish" book by Donald Knuth read
3:16.
I learned a great deal from these books. As a poor student I could only afford to buy Volume 3 (Sorting and Searching). The other two I borrowed or read directly at the library (while listening to all the Ook's around me). I bought my copy of S&S almost exactly 30 years ago*. Back then algorithms were toys for me. It was fun to play around with them, and Knuth's books helped a lot in understanding algorithms, and improving my own. Later on, after my studies, those toys became tools in problem-solving. And that's what they still are – at least to me.
Other people now use algorithms as weapons, and I'm not even talking about hackers. With the advent of "BIG DATA" the possibilities become seemingly infinite. A brave new world awaits us. A world ruled by algorithms. Blessed be Amazon, Google, and the NSA — Hallelujah!
I recommend this set of books to anyone seriously interested in the subject. It's not intended as a pop-science read for laymen. If you get this joke on the traveling salesman problem you probably qualify:
*To give you an idea of how long ago this was: In my book I found a punch-card – *pauses* – a punch card! – that I used as a bookmark. We actually had to write programs on punch-cards back then. Those were the days. -
I got the first edition of this book more than 10 years back. I have read (and re-read) the series in book in parts over the years, and every time I was impressed by the scholarly mastery and precision of the author. This arguably, is `the' most important text in computer science.
AOCP, along with Computer Algorithms by Corman, Leiserson and Rivest are the first books I turn to whenever I have an upcoming challenge or interview. Pinnacle of Precision!
-
I'd give this book more than 5 stars if I could. If you ever thought writing a piece of code is eerily similar to painting.. or writing a poem, this is the book for you.
-
These three volumes are okay to follow, but the following volumes that Knuth did not publish yet are very very hard to grasp.
-
I haven't read these all the way through mind you, but these books along with the five Fascicles make up the greatest programing reference available, not for any language mind you, but programing in general, meta-programing if you well. Algorithms galore, sorting, and searching, and etc. If your looking for a solution to a programing problem its probibly here. Required for intermediate level skill and up, not for beginners.
-
I remember finding this book at a university library and, having heard of it, picked it to see why was it special. The book had a profound and lasting effect on the way I had to write computer programs, both academically and professionally. A must for computer science lovers.
-
I'm going to order this to hold up my monitor and then hold the inner world and dream a dream with you.
-
never really read the the volumes cover to cover but ive been reading this book for over 2 year now. recommended.
-
Best algorithms reference out there, though it's often quite dense & it's useful to cross-reference with something simpler, like Algorithms in a Nutshell.
-
impenetrable
-
A classic
-
*The Art of Computer Programming* is a series of books by Donald Knuth. The first volume was published in 1962, and there have been two additional volumes published since then. There were originally supposed to be 7 volumes in the series, but, after volume 3 was published in the early 1970s, there was a hiatus of almost 40 years before the first part of volume 4 was published. Recently Knuth has been publishing small parts of the second half of volume 4 in epitaphs he calls “fascicle”, but, it looks as if the other three volumes will never be published once volume 4 is complete. (A real shame.)
Knuth set out in the 1960s to write the ultimate, complete volume on computer science, but, he was sidetracked in the 1970s when he decided to write a system for typesetting computer programs, documentation, and computer books. This ultimately lead to TeX, and MetaFont, and a series of books on computers and typesetting.
Knuth decided to illustrate the problems in *The Art of Computer Programming* with a custom made assembly language, called *MIX*. This has lead many modern day programmers to conclude that the books are old, and out-of-date, but, the principals illustrated in *TAOCP* are still valid, and the series of books is still one of the most comprehensive, and accurate descriptions of the computer problems it discusses.
I still believe that the only way to understand data structures is to learn them in assembly language. -
A must have set of texts for any programmer.
-
yet another foundational text in computing
-
A must for any computer scientist.