Donald E. Knuth
Author of The Art of Computer Programming, Volume 1: Fundamental Algorithms
About the Author
Donald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the TEX and METAFONT systems for computer typesetting, and for his prolific and influential writing. Professor Emeritus of The Art of Computer Programming at Stanford show more University, he currently devotes full time to the completion of these fascicles and the seven volumes to which they belong. show less
Image credit: David Monniaux
Series
Works by Donald E. Knuth
The Art of Computer Programming, Volume 4A: Combinatorial Algorithms, Part 1 (2011) — Author — 279 copies
The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (2005) 131 copies
The Art of Computer Programming, Volume 1, Fascicle 1: MMIX -- A RISC Computer for the New Millennium (2005) 130 copies
The Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation (2006) 109 copies
The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions (2005) 108 copies
The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions (2008) 79 copies
The Art of Computer Programming, Volume 4B: Combinatorial Algorithms, Part 2 (2022) 77 copies, 1 review
The Art of Computer Programming, Volume 4, Fascicle 1: Bitwise Tricks & Techniques; Binary Decision Diagrams (2009) 59 copies
The Art of Computer Programming, Volume 4, Fascicle 5: Mathematical Preliminaries Redux; Backtracking; Dancing Links (2019) 34 copies
Stable Marriage and Its Relation to Other Combinatorial Problems: An Introduction to the Mathematical Analysis of Algorithms (1996) 18 copies
Art of Computer Programming (Series in Computer Science & Information Processing) (v. 6) (1987) 8 copies
Insel der Zahlen : e. zahlentheoret. Genesis im Dialog / Donald E. Knuth. [Übers.: Brigitte u. Karl Kumisch. Abb.: Jill C. Knuth] (1979) 3 copies
Specific mathematics: computer science foundation (English Version 2)(Chinese Edition) (2000) 2 copies
Como Ler Programas Cweb 2 copies
Программирование 1 copy
MIX 1 copy
Tagged
Common Knowledge
- Canonical name
- Knuth, Donald E.
- Legal name
- Knuth, Donald Ervin
- Birthdate
- 1938-01-10
- Gender
- male
- Education
- California Institute of Technology (Ph.D|1963)
Case Institute of Technology (BS|1960|MS|1960) - Occupations
- professor
computer scientist
mathematician - Organizations
- Stanford University
Princeton University
California Institute of Technology
American Guild Of Organists (1965)
American Philosophical Society (2012)
American Academy of Arts and Sciences (1973) (show all 16)
French Academy of Sciences (Associate, 1992)
Royal Society (Foreign Member, 2003)
Russian Academy of Sciences (Foreign Member)
Society for Industrial and Applied Mathematics (Fellow, 2009)
The Computer History Museum (Fellow, 1998)
ACM (Fellow, 1994)
National Academy of Sciences (1975)
National Academy of Engineering (1981)
American Mathematical Society (Fellow, 2012)
Norwegian Academy of Science and Letters - Awards and honors
- Turing Award (1974)
Lester R. Ford Award (1975, 1993)
National Medal of Science (1979)
Grace Murray Hopper Award (1971)
John von Neumann Medal (1995)
Kyoto Prize (1996) (show all 14)
Katayanagi Prize (2010)
Franklin Medal (1988)
Faraday Medal (2011)
W. W. McDowell Award (1980)
IEEE Computer Pioneer Award (Charter, 1981)
BBVA Foundation Frontiers of Knowledge Award (2010)
Flajolet Lecture Prize (2014)
Harvey Prize (1995) - Relationships
- Sedgewick, Robert (Doctoral Student)
- Nationality
- USA
- Birthplace
- Milwaukee, Wisconsin, USA
- Places of residence
- Stanford, California, USA
- Associated Place (for map)
- USA
Members
Reviews
If you program and you don't know this book, and its companion volumes 2 and 3, it's like saying you live in San Francisco and haven't seen the Golden Gate Bridge. The books are really much more valuable to someone with a knowledge of calculus, and some discrete mathematics. If you are looking for programming cookbooks, don't go here, but if you want to know why binary trees, stacks and queues are used, and who thought of their use first, and their history of development, then read these show more books.
The above is, of course, a gross simplification. You will also learn how to properly analyze an algorithm - how to design algorithms to compute arithmetic results to achieve the minimum amount of error, how to design a proper random number generator - how to choose the right datastructure for search operations, etc.. More to the point, you will gain the skills to answer such questions on your own.
And most of all, you will see, once again, that the very brightest people are humble and have a sense of humor. The places where this book made me laugh out loud are too numerous to count. show less
The above is, of course, a gross simplification. You will also learn how to properly analyze an algorithm - how to design algorithms to compute arithmetic results to achieve the minimum amount of error, how to design a proper random number generator - how to choose the right datastructure for search operations, etc.. More to the point, you will gain the skills to answer such questions on your own.
And most of all, you will see, once again, that the very brightest people are humble and have a sense of humor. The places where this book made me laugh out loud are too numerous to count. show less
Like any of Donald Knuth’s books, this work constitutes a classic of computer science. Knuth attempts to integrate the art of writing good literature with the art of writing computer code. Using a series of papers and articles published between 1974 and 1989, he illustrates the historical genesis of writing more understandable code. Although modern programmers will find many constructs to be dated, the historical and conceptual value of these writings cannot be underestimated. Without such show more understanding of the past, modern programmers will merely spin their wheels in older problems instead of inventing the future.
This work starts out with an old debate (1970s) on the “goto” statement’s use. The conclusion Knuth reaches is the conclusion the rest of the community ended up maintaining – that the goto statement obscures rather than clarifies readable code. It’s interesting to see, even if just at a scanning glance, how ideas come together in one context and inspire further conversation in later contexts (i.e., the rest of the book). This introduction, though lengthy, climaxes in an important question: What exactly is readable code?
The author develops a system called WEB to address this problem. WEB combines markup text in the TEX markup language with Pascal code. As such, each approach is described twice in code, once in human language and another in computer language. This provides obvious benefit to programmers seeking to maintain code – a challenge far more difficult in today’s context thirty years hence. Although present-day languages are different, many approaches still use the basic kernel of this book’s ideas by combining coding and documentation (e.g., JavaDoc and PHPDoc). These are more than comments; they are systematic documentation for a pre-processor to parse and produce compiled, printable literature.
Obviously, this work is a historical gem to those interested in the history of computing. Advanced programmers and those interested in the theoretical and historical underpinnings of modern technologies will be most interested. Even those working with programmers might find some benefit. Studying the thought processes behind innovation is a helpful process for speeding modern development. This is a really good case study in such approaches over 16 years of written conversations.
Beginning and even intermediate programmers may not be interested in this work as much as I am. However, such programmers should still familiarize themselves with the author’s name Donald Knuth. He is perhaps the greatest founder of computer programming. At the time of my writing (2021), he is still alive. He helped with several advances, including the LaTEX markup language, which is partially described in this book. Literate Programming is often described as a fourth work added to Knuth’s trilogy (his magnum opus) on computer algorithms. It’s always fun and beneficial for me to wrestle with good minds; this book provides plenty of fodder for that. show less
This work starts out with an old debate (1970s) on the “goto” statement’s use. The conclusion Knuth reaches is the conclusion the rest of the community ended up maintaining – that the goto statement obscures rather than clarifies readable code. It’s interesting to see, even if just at a scanning glance, how ideas come together in one context and inspire further conversation in later contexts (i.e., the rest of the book). This introduction, though lengthy, climaxes in an important question: What exactly is readable code?
The author develops a system called WEB to address this problem. WEB combines markup text in the TEX markup language with Pascal code. As such, each approach is described twice in code, once in human language and another in computer language. This provides obvious benefit to programmers seeking to maintain code – a challenge far more difficult in today’s context thirty years hence. Although present-day languages are different, many approaches still use the basic kernel of this book’s ideas by combining coding and documentation (e.g., JavaDoc and PHPDoc). These are more than comments; they are systematic documentation for a pre-processor to parse and produce compiled, printable literature.
Obviously, this work is a historical gem to those interested in the history of computing. Advanced programmers and those interested in the theoretical and historical underpinnings of modern technologies will be most interested. Even those working with programmers might find some benefit. Studying the thought processes behind innovation is a helpful process for speeding modern development. This is a really good case study in such approaches over 16 years of written conversations.
Beginning and even intermediate programmers may not be interested in this work as much as I am. However, such programmers should still familiarize themselves with the author’s name Donald Knuth. He is perhaps the greatest founder of computer programming. At the time of my writing (2021), he is still alive. He helped with several advances, including the LaTEX markup language, which is partially described in this book. Literate Programming is often described as a fourth work added to Knuth’s trilogy (his magnum opus) on computer algorithms. It’s always fun and beneficial for me to wrestle with good minds; this book provides plenty of fodder for that. show less
Literate Programming (Center for the Study of Language and Information - Lecture Notes) by Donald E. Knuth
At one point, I wrote C++ code using CWEB. The experience (which I found rather positive) convinced me that almost no other developer I knew would find it positive. (The approach of writing discursive text and code in parallel, although highly conducive to good code, is also extremely demanding.)
This collection of papers, centred on WEB and on related issues -- the article on "The Errors of TeX" should be required reading in any CS course of study -- remains both enlightening and relevant show more thirty-plus years on, although the overall approaches of most software practitioners (IDEs, automated refactoring tools, etc.) make the application of the disciplines described less likely than ever. show less
This collection of papers, centred on WEB and on related issues -- the article on "The Errors of TeX" should be required reading in any CS course of study -- remains both enlightening and relevant show more thirty-plus years on, although the overall approaches of most software practitioners (IDEs, automated refactoring tools, etc.) make the application of the disciplines described less likely than ever. show less
This latest volume has the cloth cover and sewn binding of the other volumes, which is nice in this day and age of shoddy bookmaking workmanship. A few pages in my copy seem to have gotten too much ink, but I guess that's the price you pay to have a book printed using real ink rather than toner.
The "Mathematical Preliminaries Redux" section talks about countable probability spaces but then talks about nontrivial random processes (of infinite length) that are apparently supported on such show more spaces. In the standard formulation, such a process would be a function with an uncountable range but a countable domain, which I find puzzling. I passed my concerns on to Dr. Knuth, but I wasn't able to convince him that there was an issue. It was an honor to get a hand-written reply from an icon anyway.
At the time of this book's release, Dr. Knuth is 84 and has plans for writing Volumes 5, 6, and 7. May it be! show less
The "Mathematical Preliminaries Redux" section talks about countable probability spaces but then talks about nontrivial random processes (of infinite length) that are apparently supported on such show more spaces. In the standard formulation, such a process would be a function with an uncountable range but a countable domain, which I find puzzling. I passed my concerns on to Dr. Knuth, but I wasn't able to convince him that there was an issue. It was an honor to get a hand-written reply from an icon anyway.
At the time of this book's release, Dr. Knuth is 84 and has plans for writing Volumes 5, 6, and 7. May it be! show less
Lists
Awards
You May Also Like
Associated Authors
Statistics
- Works
- 80
- Members
- 9,645
- Popularity
- #2,480
- Rating
- 4.3
- Reviews
- 53
- ISBNs
- 165
- Languages
- 11
- Favorited
- 29












