The Millionth Algorithm: the runaway success of a foundational textbook
Charles E. Leiserson, the Edwin Sibley Webster Professor within the Department of EECS, recently received some tremendous news: Introduction to Algorithms, the textbook Leiserson coauthored with Tom Cormen, Ron Rivest, and Cliff Stein, has now officially sold over 1 million copies worldwide.
Lauded for its clarity, the book is premised on a “start from fundamentals” approach that welcomes students of many backgrounds and learning styles, regardless of their familiarity with advanced mathematics. Co-author Cliff Stein offered this explanation for the runaway success of the “big book”: “One reason for the success of Introduction to Algorithms has been the working style of the authors. Although divide and conquer is an important algorithmic paradigm, it is not the way we work–multiple authors collaborate on every page of the book. This cooperation, and the commitment to clarity and rigor has been one of the main reasons for the success of the book.” Co-author Ron Rivest added, “It was a great personal pleasure working with Tom Cormen, Charles Leiserson, and Cliff Stein on the latest edition of Introduction to Algorithms. We also greatly appreciated the numerous suggestions and comments provided by colleagues and students. We hope that this text will provide guidance for many years to come, both for students studying algorithms for the first time, and for more advanced students.” And co-author Tom Cormen offered this explainer of the daunting process of assembling a comprehensive textbook and keeping it current over many revisions.
We sat down over Zoom with Charles Leiserson to chat about Introduction to Algorithms: its origins, its runaway success, and its impact over the years.
First off, congratulations on the one millionth sale of Introduction to Algorithms. That’s an absolutely incredible milestone. Tell us about the moment when you found out, your thoughts and emotions.
It’s quite remarkable to me that we’re in this position; for a textbook, this is an extraordinarily long life. Most textbooks don’t publish a second edition, and we’re currently working on our fourth, the edition which we thought might sell the millionth copy. So, it was a surprise when Elizabeth Swayze (Senior Acquisitions Editor at MIT Press), emailed us saying they had just discovered we’d gone over the one million mark.
You coauthored Introduction to Algorithms over 30 years ago, in 1990, when the field obviously looked very different. Tell me a little about the process of revision within a quickly changing and developing field.
In some ways it’s been more complicated than when we wrote the first edition, although that was the most amount of work. When we were writing the first edition, there were three of us and we were all at MIT; Ron Rivest’s office was next to mine, Tom Cormen was my graduate student, and we were all able to work side by side. For the last edition, we did have some meetings, but it was only two or three meetings in person before COVID hit, and after that we worked independently and relied a lot more heavily on Zoom for meetings. I can’t imagine where I got the time to do the first edition, because this last one has been a real struggle, and yet it’s not as much time (by a long shot) as what we put in years ago. I’ve simply got more on my plate!
Tell me about the book’s origins. Whose idea was it first to try to write a definitive introduction to algorithms? How did you determine the gap in the market, pitch the book, etc?
When I got to MIT, I wanted to teach the algorithms class: 6.046, and it wasn’t available for the first couple of years—other faculty with seniority were signed up to teach it. I had to wait a few years and teach many other classes before I got the opportunity to teach 6.046. I inherited great notes from the people who had taught it before (including Ron Rivest, among others). At the time, there were textbooks covering some topics in algorithms—I think the dominant one was by Aho, Hopcroft, and Ullman, Design and Analysis of Computer Algorithms. Donald Knuth, a Turing Award winner, had another one, a three-volume series called The Art of Computer Programming. And there were also books that were dealing with algorithms but didn’t cover all the same topics, such as Eugene Lawler’s Combinatorial Optimization. These books all inspired and influenced me.
But these and other textbooks sometimes invoked higher math, and often I found those explanations baffling. What we found as we were writing our own book was that in fact some of the theorems at the time had proofs that were actually wrong; they were handwaves, they relied on circular or incomplete logic, that kind of thing. These were serious problems! In response to that discovery, I wanted to write a book which reasoned from fundamentals, a book which a student could use to learn about algorithms with little assumed background in higher math—algebra, but no calculus.
We began with a chapter that outlined the math axioms, the basic principles, which you needed to ground your understanding. The nucleus of this work was the set of lecture notes taken down by my amazing TA, Tom Cormen, who not only took notes for all my lectures, but took the time to rewrite them into truly useful documents which we could carry forward into subsequent iterations of every class. While talking with Tom, I said, “You know, I think we could assemble a textbook out of what we’ve got here, if we put the effort in.”
Since Ron had the most involvement in 6.046 before me, we asked Ron if he was interested in collaborating on a textbook, and he was, so we got started. I thought we could do it in two years—it took us three and a half!
Tell me about the co-authorship process; how did it change the way you approached writing and work? Did you have a specialization, or a favorite part of the writing process?
Within theoretical computer science, you list authors alphabetically, so we don’t typically have first authors. One of the nice things that that convention promotes is the notion that everybody owns the work, 100%. Everybody gets full credit for the work, and if there’s a problem anywhere, everyone takes the blame. Everyone is responsible, and everyone gets to benefit. And that’s a form of collaboration that appeals to me. This principle led us to a process where we all wrote all of the chapters in the first edition. One of us would draft a version; the other would edit and reorganize it; then the chapter would go to the third person; then back to the first. Each chapter would bounce around.
It was one of the best collaborations I have ever had with other people, because we complemented each other. Ron is a Turing Award winner and is enormously technically capable. He pulled some massive bugs out of my work—I was able to return the favor only maybe once or twice, but he really pointed out some doozies in my own stuff. And Tom was a fabulous writer. And I was maybe in the middle on those things, in that I was strong technically (though not as strong as Ron) and I was an excellent writer (though not as strong as Tom).
The partnership showed its strength in many ways; for example, at the time we wrote the book, there was really no good indexing software—but Ron automated our two-level index, so we could put it right into our books. Additionally, in those days, technical works were usually typeset by the publisher, and then you would have to go through and correct all the math and technical stuff that they got wrong. But we produced a machine version of our book, so we were one of the first books that MIT Press produced where the authors controlled the typesetting. Our copy editor, Larry Cohen, would mark up our print and then we would go through and implement the changes, and that way we ensured that math errors wouldn’t have a tendency to creep in.
You’ve obviously had to think a great deal about how students learn and the best ways to teach complex concepts. How has authoring this book affected your teaching?
I spoke about my philosophy on this at some length when I received the IEEE Computer Society Taylor L. Booth Education award. You have to understand that learning is largely emotional; you tend to think of technical learning as “just the facts”, but it’s in fact intensely emotional. If students aren’t motivated, they can’t learn.
You must feel a certain amount of responsibility for the direction of the field of computer science, having authored a seminal textbook; published numerous research contributions in algorithms, parallel computing, design automation, computer architecture, and performance engineering; developed several new undergraduate classes; created many of the original modules for the UPOP program; lead the computer science program for Singapore-MIT Alliance; and created and developed a highly touted workshop on leadership skills for engineering and science faculty.
One of the things that has mattered most to me was the values that MIT, my department, and my laboratory all shared and embodied. My department places an equal emphasis on research and teaching; that notion, that each informs the other, matters to me. I’ve attended research presentations and thought, “Gosh, this is exactly the teaching example I’ve needed!” It goes the other way round, too. For example, my feeling is that the earlier in the curriculum you can teach a research result, the more important it is. So, if I can teach it to freshman, that is a more important result than being able to teach it only to grad students or peers. That was one measure, though it’s not the only measure of significance.
One of the good things about a university is that there are many paths to success, and one of the things you do is figure out which path is yours. There’s a lot of room for individual people to contribute to academia in different ways. Some people are great cataloguers and scholars, others are incredible problem-solvers. Some people like textbooks. MIT supports that range of quirkiness among its faculty.
It’s like OpenCourseWare—one of the brilliant innovations at MIT with respect to teaching, which I’m proud to have had a stake in. I once sat next to a businessman on a flight between Europe and India who, as we were talking, showed no recognition of MIT, but he’d heard that an American university was putting all of its courses online for free. That was a good example of how our work was contributing to MIT’s mission and reputation. That’s how you attain excellence—by having people who contribute their reputations to the institution, rather than the other way around. MIT is great because of the people who are here. And I’m glad that Introduction to Algorithms contributes to MIT’s reputation.
Journalists seeking information about EECS, or interviews with EECS faculty members, should email firstname.lastname@example.org.
Please note: The EECS Communications Office only handles media inquiries related to MIT’s Department of Electrical Engineering & Computer Science. Please visit other school, department, laboratory, or center websites to locate their dedicated media-relations teams.