Concrete Mathematics: A Foundation for Computer Science, by Ronald Graham, Donald Knuth, and Oren Patashnik, first published in 1989, is a textbook that is widely used in computer-science departments as a substantive but light-hearted treatment of the analysis of algorithms.
Author | Ronald Graham, Donald Knuth, and Oren Patashnik |
---|---|
Language | English |
Subject | Mathematics Computer science |
Publisher | Addison–Wesley |
Publication date | 1994 |
Publication place | United States |
Media type | Print (Hardcover) |
Pages | 657 pp (Second Edition) |
ISBN | 0-201-55802-5 |
OCLC | 29357079 |
510 20 | |
LC Class | QA39.2 .G733 1994 |
The book provides mathematical knowledge and skills for computer science, especially for the analysis of algorithms. According to the preface, the topics in Concrete Mathematics are "a blend of CONtinuous and disCRETE mathematics". Calculus is frequently used in the explanations and exercises. The term "concrete mathematics" also denotes a complement to "abstract mathematics".
The book is based on a course begun in 1970 by Knuth at Stanford University. The book expands on the material (approximately 100 pages)[1] in the "Mathematical Preliminaries"[2] section of Knuth's The Art of Computer Programming. Consequently, some readers use it as an introduction to that series of books.
Concrete Mathematics has an informal and often humorous style. The authors reject what they see as the dry style of most mathematics textbooks. The margins contain "mathematical graffiti", comments submitted by the text's first editors: Knuth and Patashnik's students at Stanford.
As with many of Knuth's books, readers are invited to claim a reward for any error found in the book—in this case, whether an error is "technically, historically, typographically, or politically incorrect".[3]
The book popularized some mathematical notation: the Iverson bracket, floor and ceiling functions, and notation for rising and falling factorials.
Donald Knuth used the first edition of Concrete Mathematics as a test case for the AMS Euler typeface and Concrete Roman font.[4]