Used price: $8.95
Buy one from zShops for: $8.06
If you are a student you must read this book... and if you are not, I hope you already have it !
"Selected Papers in Computer Science" succeeds beautifully in showing what its like to be a computer scientist, and how that is related to but different from being a mathematician. At the heart of the book are four essays on "Theory and Practice". Actually, it should be "Practice and Theory", because the only sensible way to progress in any field is to get some practical experience first, and then acquire the theory necessary to understand what you did, and to allow you to do more. Knuth covers this very well for computer science. I am in the habit of dog-earing pages in a book that offer an especially important insight. Looking back at my copy of "Selected Papers", I see that about 40 pages are so marked; an amazingly high ratio for a book of 270 pages. Try a test: read 10 pages from the book at random, if you don't find at least one important insight, then probably this book (and perhaps computer science in general) is not for you. If you do, you can be assured that the full book will give you many more.
Used price: $52.94
Collectible price: $52.94
Instead of beholding TeX and Metafont in their almost final versions, as published in _TeX: The Program_ and _Metafont: The Program_, respectively, you see them grow from the first design studies (when Knuth thought of TeX as a program for two grad students to write over a summer) to where they are today. You see how the collaboration between Knuth and Zapf on the Euler fonts worked, and you get another glance at many facets of Knuth's mind (And a beautiful mind it is indeed, even though it is entirely sane).
If you have any deeper interest in TeX and Metafont, this book is well worth the money.
Used price: $151.47
Buy one from zShops for: $160.00
Here's the publisher's description:
"Donald E. Knuth's five volumes on Computers & Typesetting comprise the definitive user guides and thoroughly documented program code for the TeX and METAFONT systems. This open-source software is widely used around the world by scientists, mathematicians, and others to produce high-quality, aesthetically pleasing text, especially where technical content is included.
TeX and METAFONT have now reached a state of maturity that few pieces of software have ever been able to achieve. The start of the Millennium is a perfect time to offer users and libraries the opportunity to fill their reference shelves with an up-to-date and comprehensive collection of Knuth's work, as well as to encourage a broad audience of software developers to learn from the complete, robust, and portable systems built by a master programmer.
This Millennium Boxed Set---five elegantly printed books that describe their own method of creation---celebrates Knuth's monumental coupling of programming and typography. Originally published in 1986, each volume has changed so much in subsequent printings that nearly every page has been touched in some way. Improvements to the books have followed developments in digital printing technology; they also reflect corrections submitted over the years by thousands of volunteers. The volumes in this box are the latest and most accurate versions yet published.
If you have earlier printings of Knuth's books, or holes in your collection, the Millennium Boxed Set makes updating easy. If you have none of the books, you now can conveniently get them all at once. Whether your work requires that you generate superbly formatted text, or that you hone the skills needed for writing your own successful programs, you will find these volumes to be an immediately valuable resource, as well as a treasure for future generations."
Used price: $136.31
Buy one from zShops for: $116.49
Such people are entitled to their opinions, and they need not bother reading the machine-language parts of my books. But the reasons for machine language that I gave in the preface to Volume 1, written in the early 1960s, remain valid today:
One of the principal goals of my books is to show how high-level constructions are actually implemented in machines, not simply to show how they are applied. I explain coroutine linkage, tree structures, random number generation, high-precision arithmetic, radix conversion, packing of data, combinatorial searching, recursion, etc., from the ground up.
The programs needed in my books are generally so short that their main points can be grasped easily.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird.
Machine language is necessary in any case, as output of many of the software programs I describe.
Expressing basic methods like algorithms for sorting and searching in machine language makes it possible to carry out meaningful studies of the effects of cache and RAM size and other hardware characteristics (memory speed, pipelining, multiple issue, lookaside buffers, the size of cache blocks, etc.) when comparing different schemes.
Moreover, if I did use a high-level language, what language should it be? In the 1960s I would probably have chosen Algol W; in the 1970s, I would then have had to rewrite my books using Pascal; in the 1980s, I would surely have changed everything to C; in the 1990s, I would have had to switch to C++ and then probably to Java. In the 2000s, yet another language will no doubt be de rigueur. I cannot afford the time to rewrite my books as languages go in and out of fashion; languages aren't the point of my books, the point is rather what you can do in your favorite language. My books focus on timeless truths.
Therefore I will continue to use English as the high-level language in TAOCP, and I will continue to use a low-level language to indicate how machines actually compute. Readers who only want to see algorithms that are already packaged in a plug-in way, using a trendy language, should buy other people's books.
Each volume contains 2 chapters. Ch. 1, Basic Concepts: mathematical foundations and a description of MIX, a hypothetical machine (now available in software emulations). Ch. 2, Information Structures: lists, trees, memory allocation, garbage collection. Ch. 3, Random Numbers: how to produce series of "random" numbers and test their statistical properties. Ch. 4, Arithmetic: algorithms for integer and floating-point arithmetic. Ch. 5, Sorting: both in memory and on disks or tapes. Ch. 6, Searching: sequential, binary, hashing.
Despite the detailed coverage of the topics, which often involves esoteric mathematical notation, the author's lively style makes the algorithms and the main theoretical results relatively easy to grasp. If all you care about is getting a program to run, buy another book; but if you really want to understand how and why software works, there's nothing quite like this.
A couple of years later, I've come back to these books and they continue to inspire.
As a reader more interested in Knuth's work in general, I must admit that, despite having advanced degrees in CS and a quite decent math education, I found myself unable to follow the heavy mathematics employed, and ultimately, the problems analyzed were not interesting enough to me to make me spend the effort to follow it. One of the chapters was titled "A Trivial Algorithm Whose Analysis Isn't", and this probably sums up why I'm not entirely enthusiastic about this book and about the field of algorithm analysis in general.
Knuth wouldn't be Knuth if he didn't throw some lighter material in as well, and chapter 2, "The Dangers of Computer Science Theory", was quite amusing.
Used price: $24.95
Collectible price: $26.47
Buy one from zShops for: $22.46
Used price: $7.50
Collectible price: $21.18
Buy one from zShops for: $7.89
for(i=0; i@; }
so that you can defer exactly what processing an array element entails until a point where it makes sense. Since these redirections are handled by a preprocessor, there's no cost at run-time for doing that like there would be if the code were written with a function call.
However, an extremely large technical barrier exists, in that programming languages are literal, terse and lack flair. Knuth works to eliminate this problem by combining the programming and documentation languages into a structure called a WEB. He also adopts the reverse paradigm that a program should be an explanation to humans of what the computer is doing. The result does wonders for readability and introduces a bit of flair. Certainly, this is a good first step towards Knuth's ideal.
The development of TEX is chronicled in great detail. It is personally comforting to read about some of the errors made in its development. Learning that the great ones make errors provides emotional security to all who hack for fun and/or profit. Some classic programming problems are used to demonstrate exactly what literate programming is meant to be. Jon Bentley, author of the 'Programming Pearls' section of "Communications of the ACM", contributes two chapters that were co-authored with Donald Knuth. These pearls demonstrate the applications of literate programming to common coding problems. All are presented in a clear, easy-to-understand style.
A bit of clever humor is also used. A WEB program is constructed from two distinct components. The Weave part explains what the program is doing, and the Tangle component produces the program. Of course, this suggests the line from Sir Walter Scott's poem Marmion, "O what a tangled web we weave, when first we practice to deceive."
I do not know whether to consider this book the product of a dreamer or a visionary. The truth, like most of the work of pioneers, is no doubt somewhere in between. My opinion is that it is more vision than dream. And is that not a common theme among the greatest works of art and literature?
Published in Mathematics and Computer Education, reprinted with permission.
If you are a computer scientist, you will be disappointed. If you are a theologian, please don't think Knuth (and the others in this book) are representative of other computer scientists as far as this topic goes.
... Definitely a waste of $....
I think it fair to say that Knuth is the greatest living computer scientist. He is also one of a number of prominent scientists (including Owen Gingerich and John Polkinghorne) who are willing to make their Christianity known. This tends to refute the popular perception that all scientists, or all intellectuals, are atheists. In my experience (and Knuth's experience, as evident from the audience questions in the book), a lot of atheists get their atheism blindly on authority, and whether or not you agree with him, contact with an intelligent Christian such as Knuth can be a very refreshing change!
Collectible price: $22.95
0. Algorithms, Programs, and CS
1. CS and its Relation to Math
2. Math and CS: Coping with Finiteness
3. Algorithms
4. Algorithms in Modern Math and CS
5. Algorithms Themes
6.-9. Theory and Practice I..IV
10. Are Toy Problems Useful?
11. Ancient Babylonian Algorithms
12. Von Neumann's First Computer Program (sorting)
13. The IBM 650: An Appreciation from the Field
14. George Forsythe and the Development of Computer Science
15. Artistic Programming
Audence:
1) Computer Science faculty and graduate students.
2) Mathematicians.
3) other scientists who want to understand their computer science colleagues.
Knuth is best known for his huge corpus
The Art of Computer Programming [TAOCP] (at this time vols. I-III)
This text (Selected Papers) really isn't for beginning programmers
(TAOCP is better for this even if more dense).
"Selected" is not a How-to book.
It's the Philosophy of the PhD on the computing field.
Math:
Yes. Selected Papers has a fair amount of algebra.
The level of math required to understand and appreciate the book:
for several of the papers, the reader needs an understanding of combinatorics:
'n!' as factorial (not exclamination point), running sums,
matrix algebra, and a bit of calculus. Other papers have practically no math (the last 3 and the opening chapter[0]).
Heavy emphasis appears on the concept of the iterative nature of Algorithms
(in contrast to other sciences which seek closed form solutions).
Can you read it w/o the math? Sure, but you would be losing major points (read it with a knowledgeable friend).
The Reading:
I really liked the paper on Toy problems. I needed this earlier in my career. Many computer scientists who like fun but get criticism will like this essay. It alone is worth the price of the book.
The easy reading introductory parts of various papers are readable withminimum math and have valuable insights (like Knuth's informal observation that 2% of the general populice feels comfortable thinking algorithmically).
The early chapters on algorithms show the importance of experimental randomization methods.
The astute review reader will notice 4 chapters (really
4 speeches) on the ideas of Theory and Practice. A lot of this material is redundant, but it conforms to the ideas of stepwise refinement and it shows some of the development of DEK's thinking. Note: he describes; he does not offer solutions.
Knuth has an obscure challenge during DEK's address to IFIP (T&P IV), slide 33. I worked toward this without knowing it.
I'll be honest with the review reader: I know the author, and
he asked me to promote this book. And it's a book well worth promoting.
The book is a pleasure to those interested in the field.
Chap 4: I sat in the audience for this presentation.
Every library should have a copy for inspection if not enough to have on every computer scientist's book shelf (next to TAOCP, and other books by Don)., and it can be a good gift book to scientists.