Selected Papers on Computer Science (Csli Lecture Notes) (英語) ペーパーバック – 1996/7/13
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
This anthology of essays from the inventor of literate programming is a survey of Donald Knuth's papers on computer science. Donald Knuth's influence in computer science ranges from the invention of literate programming to the development of the TeX programming language. One of the foremost figures in the field of mathematical sciences, his papers are widely referenced and stand as milestones of development over a wide range of topics. This collection focuses on Professor Knuth's published science papers that serve as accessible surveys of their subject matter. It includes articles on the history of computing, algorithms, numerical techniques, computational models, typesetting, and more. This book will be appreciated by students and researchers from a wide range of areas within computer science and mathematics.
'This book should be a necessary asset of any library dealing with Computer Science and related subjects, representing a major piece of culture in Computer Science. Every reader will acquire a sound understanding of the foundation for some key issues in the field … Knuth is a grand scientific author, whose dissertations on deep and abstract issues are lively and captivating pieces of reading.' David Rozier, Mathematics Today
'This book contains everything Knuth has written on computer science for the non-specialist … It is a lovely read. What - in sum - can one say, of our delightful discipline and of this delightful book? Enjoy.' Adrian Larner, The Computer Journal
Some of my highlights:
- chapter 1: a nice analysis of hashing
- chapter 2: many combinatorial problems where we can find the best solution quickly, even though there is a vast number of possible solutions
- chapter 3: many algorithms for looking up a word in a set of words
- chapter 5: nice discussion about Euclid's GCD algorithm
- chapter 10: Knuth's solution to a problem that Bob Floyd would give to incoming PhD students at Stanford
- chapter 16: How George Forsythe was instrumental in starting the field of computer science
0. Algorithms, Programs, and CS
1. CS and its Relation to Math
2. Math and CS: Coping with Finiteness
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
1) Computer Science faculty and graduate students.
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.
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).
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).
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.
This is one of the most accessible of Knuth's books. I enjoyed it a lot. It's written for people who aren't necessarily specialists in the subject. It's for educated people in all fields and you don't need to know too much math to read through this book.
Knuth says the following about this book, "If any of my work deserves to be remembered, it is now in the form that I most wish people to remember it.". Knuth discusses topics such as coping with finiteness, usefulness of toy problems, theory vs practice, history of algorithms, Von Neumann's first computer program, and many others.
This is the book to buy if you want to get familiar with Knuth's work in an accessible way and learn something new without much effort.
"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.