The book’s sales figures are all the more remarkable given not only the ease of digital piracy in the Internet age but also the technical literacy of the intended audience. As Ron Rivest, the Andrew (1956) and Erna Viterbi Professor of Electrical Engineering and Computer Science and one of the book’s four authors, said during a speech at the Stata party, “One surprising question I had from a student in September ’06 was, ‘Professor Rivest, where’s the best place to download a PDF of your book?’ She listed three sites: ‘This one, this one or this one?’”
Introduction to Algorithms grew out of a course of the same name, known as 6.046 in MIT’s course-numbering system. Responsibility for teaching the course rotated among professors in the then-Department of Computer Science, who shared and expanded a set of lecture notes, which were further organized and expanded by teaching assistants who transcribed their lectures. Rivest first taught the course in the fall of 1975, and his co-author Charles Leiserson, a professor of computer science and engineering, began teaching it soon after arriving at MIT in 1981.
But the decision to turn the notes into a textbook was precipitated by the arrival at MIT of Tom Cormen, a graduate student who, Leiserson says, “was just a very gifted technical writer. The level and quality of the notes one semester just shot right up.” Beginning in 1986, Cormen, Leiserson and Rivest spent almost four years working on the book, which was jointly published by the MIT Press and McGraw-Hill in 1990. The book rapidly became known in computer science departments as CLR, after the authors’ last names — or “the big white book,” since it weighed in at more than 1,000 pages.
In 2001, MIT and McGraw-Hill issued a second edition of the book, which introduced substantial revisions, several new chapters and a fourth co-author — Cliff Stein, then a colleague of Cormen’s in Dartmouth College’s computer science department. Like Cormen, Stein had been a graduate student at MIT.
At last week’s Stata Center event, Cormen joked that Stein had been selected as the fourth author because “in the theoretical-computer-science world, it’s common to list author names alphabetically, so it was important to have somebody who didn’t come before C, L or R.” When Stein took the podium, he retorted by citing the song “Kill dash nine” by the “nerdcore” rapper Monzy (who also happens to be a Google engineer with a PhD from Stanford University). “Your s---'s old and busted, mine's the new hotness,” Monzy raps. “You're like CLR, and I'm like CLRS.”
Leiserson and Rivest point to several reasons for the book’s success. One is what they refer to as the book’s “smorgasbord” approach. “When I went around talking to my colleagues [at other universities], I asked them what they taught,” Leiserson says. “Nobody taught the same algorithms course, because there are so many algorithms.” That explains the book’s length: Its authors wanted it to be as inclusive as possible.
At the same time, Leiserson says, “we tried to minimize dependencies between chapters,” so professors can design courses to skip around within the book without worrying that their students will get lost. Moreover, each chapter is organized with the material intended for undergraduates at the front and more advanced material at the back. Teachers of undergraduate courses can go as deep as they want, while teachers of graduate courses can simply start in the middle.
Leiserson says he was also concerned with avoiding what he calls “deus ex machina” explanations, in which the text simply gestures at some arcane mathematics in order to justify a conclusion about an algorithm’s performance. “If you’re a student, that can really throw you for a loop, because it’s sort of invoking magic,” Leiserson says.
Leiserson suggests some other reasons for the book’s success. One is its consistency of style: All three authors revised every chapter of the first edition, as opposed to the more common — and, Rivest points out, more efficient — practice of assigning each author a set of chapters. Another of the book’s advantages is its exhaustive index: Rivest extended the typesetting program that the authors used for the first book so that they could use tags — much like HTML tags — to identify sections that dealt with a particular topic. A custom program would then compile the index, updating it automatically as page numbers changed and new terms were added.
But ultimately, Rivest says, much of the book’s success derives from its impeccable timing. “If a field is in a state of turmoil and rapid advance, and you write a book, two years later it’s obsolete,” he says. “It’s hard to get up the energy to write a book that you know is going to be obsolete in two years.” But in the late 1980s, he says, “the field had settled down enough that a long-term book made sense, but the competition was still in a ragged enough state that our book could stand out.”