This text is an overview of 4 of my favourite classic books in Computer Science.
Undoubtedly, one of the most important books in Computer Science is SICP (aka the ”wizard book”). Structure and Interpretation of Computer Programs—as is its full title—was first published in 1984 and written by Harold Abelson, Gerald Jay Sussman, Julie Sussman. Legend has it, back in the day, at MIT, not many people wanted to study CS. So, the authors schemed to write a book that would prove to everybody that CS is an actual science of computation, rather than just a thing that happened to be invented.
SICP is exceptionally dense. It was the textbook for introduction to computer science at MIT until 2008. Despite being introductory, it’s a very challenging read even for experienced programmers.
In addition to its hard-to-read trait, it is also enormous in terms of number of pages. The authors admit: the last chapter, Chapter 5: Computing with Register Machines—which is 20% of the book—does not fit in a single semester.
SICP starts by assuming the reader has completely no idea about computation. It presents a very simple model of computation and then builds on that. Each section includes exercises, which range from very easy to very difficult. Working though these is a very essential (and fun) part of reading the book!
C is the lingua franca of operating systems. The designer of C, Dennis Ritchie is one of the most prolific and important figures in humanity’s software history. Along with Ken Thompson and the rest of the Bell Labs gang, they are responsible for the evolution of modern operating systems.
The book The C Programming Language—colloquially referred to as K&R—was written in 1978 by Dennis Ritchie and Brian Kernighan. It was published as the definitive book on C and as of the last many decades, it is considered a seminal text on technical writing. It’s small, concise, comprehensive, and dense.
Fun fact: this is the book that introduced the program that outputs “Hello, world!”.
When I decided I want to study Computer Science systematically, I scanned the web for the most recommended CS books. Gödel, Escher, Bach, written in 1979 by Douglas Hofstadter kept showing up. Always with the same footnote: this book is not purely on CS, or AI, or software, but rather a collection of ideas on these and other adjacent topics.
The genius of this book can be described in no words other than the ones inside the book itself. Its elegance is such that it defines a new genre of books. It brilliantly mixes fiction and non-fiction; masterfully blends mathematics, art, music as well as nature, biology, neuroscience, cognitive science, intelligence, formal systems, linguistics—the list is endless. It’s almost inconceivable someone of human nature could write this.
Fun fact: the author of the book is the illustrator of the book cover as well—art ingeniously fitting with the content.
Donald Knuth is the creator of TeX, Metafont, the KMP algorithm, many other, with industry-wide impact things, and the book series The Art of Computer Programming.
The Art of Computer Programming is an unfinishable book. It cannot be finished, either from its creator or from his readers. Donald thought he would write one book with 12 chapters but accidentally published three volumes of 700 pages each. Then, he said he will write another four volumes. Everybody believed him; he had already proved it with 2000 pages. But there was a problem. The typesetting technology he used for his first books had become obsolete. The fonts used by its successor (phototypesetting) were odious. Undoubtedly, he couldn’t write Volume IV until this was sorted. So, in 1977, he set out to create a new typesetting system (a digital one), so that he could write his books in euphoric elegance. The result was TeX. That is, the TeX part in LaTeX—the system widely used in academia 50 years later.
The first version of TeX was written in SAIL, a suboptimal language for a typesetting system to be written in. Inescapably, Donald created another programming system, WEB, and rewrote TeX using that a few years later.
The reader might have speculated Donald’s infatuation to detail. It will be of no surprise, then, for the reader, to learn that Donald would give a reward to anyone who would find an error in TAOCP. The reward was boring in terms of being money but very amusing in terms of its amount, of one hexadecimal dollar (that is $2.56 in regular boring decimal dollars)!
Finding an error in Donald’s books is considered an achievement of the highest degree. So much so that only a very small percentage of those who achieved it have actually exchanged the reward check for the money—which makes this one of the most prestigious awards in Computer Science: a $2.56 check from the most meticulous man in the discipline!