The Department of Electrical Engineering and Computer Science (EECS) recently learned that “Introduction to Algorithms” is a textbook co-authored with Department Professors Charles Leiserson and Ronald Rivest, along with Tom Cormen SM ’86, Ph.D. .М. ’89, PhD ’92, has now officially sold over 1 million copies worldwide. Marked by its clarity, the book is based on a “start with the basics” approach that welcomes students with a variety of backgrounds and learning styles, regardless of their familiarity with advanced mathematics. We interviewed Zoom with Charles Leatherson and emailed co-author Tom Corman about “Introduction to Algorithms” – its origins, wild success, and impact over the years.
Question: Congratulations on the millionth sale of “Introduction to Algorithms”. Tell us about the moment when you learned – about your thoughts and emotions.
Leatherson: It is very strange to me that we are in such a position; for a textbook it is an unusually long life. Most textbooks do not publish a second edition, and we are currently working on our fourth, an edition that we thought could sell a million copies. So it was a surprise when Elizabeth Swayze (senior acquisition editor at MIT Press) wrote to us via email that they had just discovered that we had exceeded the 1 million mark.
Question: You co-authored “Introduction to Algorithms” more than 30 years ago, in 1990, when this field obviously looked completely different. What does the review process look like in an area that is rapidly changing and evolving?
Leatherson: In some ways it was more complicated than when we wrote the first edition, although it was the largest amount of work. When we wrote 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 could all work nearby. In the last issue we had a few meetings, but it was only two or three meetings before Covid got in, and after that we worked independently and relied much more on Zoom for meetings. I can’t imagine where I had the time to do the first edition because the latter was a real struggle, and yet it’s not as much time (by and large) as what we invested many years ago. I just have more on my plate!
Corman: One change that is quite obvious to us, the authors, is the technology we use to produce the book. When we started writing the first edition, we just created PostScript, not PDF, and even before we wrote the whole book, creating a PostScript file was an overnight run – unless we ran it on Ron’s machine, when it took about an hour. . Now on our laptops it takes about 20 seconds to create a PostScript file and a few more seconds to create a PDF.
For the first edition the illustrations were made on a separate site from the text and they were inserted. Starting with the second edition, we can lay out the illustrations directly. We’ve also increased our set of LaTeX macros over the years, primarily the clrscode, clrscode3e, and clrscode4e packages, which allow everyone to type pseudocode the way we do.
Another change related to keeping up with the times is that for the fourth edition we are making available a full set of implementations of Python algorithms in the book. (Because the algorithms in the new chapter on machine learning are so abstract, we omitted them.) The code in Python was written by my former student Linda Xiao and me.
As for how the content of the book has changed over the years, no matter how much we want to just add material and not remove it, there are physical (and contractual) limitations on how big a book can become. So we had to decide not only which material to add but also which material to cut. Left free, the book would eventually become a cube!
Question: Whose idea was it to try to write a final introduction to algorithms? How did you first propose the book?
Leatherson: When I entered the Massachusetts Institute of Technology, I wanted to teach class 6,046 algorithms, and it was unavailable for the first couple of years – other experienced teachers were enrolled in its training. I had to wait a few years and teach many other classes before I got the chance to teach 6,046. I inherited wonderful records from people who taught this before (including Ron Rivest, among others). At the time, there were textbooks that covered some topics on algorithms – I think the dominant one was Aho, Hopcroft and Ullman, “Design and Analysis of Computer Algorithms.” Donald Knut, a Turing Prize winner, had another series, a three-volume series called The Art of Computer Programming. And there were also books that dealt with algorithms, but did not cover the same topics, such as “Combinatorial Optimization” by Eugene Lawler. All of these books have inspired and influenced me.
But these and other textbooks sometimes referred to higher mathematics, and I often found these explanations confused. What we discovered when we were writing our own book is that some theorems of the time actually had evidence that was actually incorrect; these were hand swings, they relied on circular or incomplete logic, such things. These were serious problems! In response to this discovery, I wanted to write a book that would be based on the basics, a book that a student could use to learn about algorithms with little presumed experience in higher mathematics – algebra, but without calculations.
We started with a chapter that outlines mathematical axioms, the basic principles you need to substantiate your understanding. The core of this work was a set of lecture notes made by my amazing TA [teaching assistant], Tom Corman, who not only took notes for all my lectures, but took the time to rewrite them into really useful papers that we could carry over to subsequent iterations of each class. Speaking to Tom, I said, “You know, I think we could put together a tutorial from what we have here if we put in the effort.”
Since Ron was most involved at 6,046 before me, we asked Ron if he was interested in collaborating on the tutorial, and he was, so we started. I thought it would take three and a half years!
Question: Tell us about the co-authorship process; how has this changed your approach to writing and work? Did you have a specialization or a favorite part of the writing process?
Corman: Each chapter has a lead author, but each of us has a hand in each chapter. In some cases, I have developed a new way of approaching existing material, such as changing the processing of search binary trees between the second and third editions or explaining the intuition behind the possible function of doubling and halving a table twice in the fourth edition. In other cases, I had to study the material to write a section from scratch, such as the section on two-way matching and the section on suffix arrays in the fourth edition.
My favorite part of the writing process is the feeling I get when I know I got the sentence or paragraph just right. And then I hope I don’t get beaten up later when Julie Sasman, the best copy editor ever, shows me an even better way to say it!
Leatherson: As part of theoretical computer science, you list authors in alphabetical order, so we usually don’t have first authors. One of the good things that this convention promotes is the idea that everyone owns 100 percent of the work. Everyone gets full credit for their work, and if a problem arises somewhere, everyone takes the blame. Everyone is responsible and everyone benefits. And it’s a form of collaboration that I enjoy. This principle led us to the process where we all wrote all the chapters in the first edition. One of us made up an option; another will edit and reorganize it; then the head passes to the third person; then back to the first. Each section will bounce.
It was one of the best collaborations I’ve ever had with other people because we complemented each other. Ron is a Turing Prize winner and has tremendous technical capabilities. He pulled a few massive mistakes out of my work – I was able to return the favor only once or twice, but he did point out some nonsense in my own stuff. And Tom was a great writer. And maybe I was in the middle of these things, in that I was technically strong (though not as strong as Ron) and was a great writer (though not as strong as Tom).
The partnership has shown its strength in many ways; for example, at the time we were writing the book, there really wasn’t any good indexing software, but Ron automated our two-tier index so we could contribute it directly to our books. Also, in those days technical works were usually recruited by the publisher, and then it was necessary to review and correct all the mathematical and technical things they had made wrong. But we released a machine version of our book, so we were one of the first books released by MIT Press where the authors managed the set. Our copy editor, Larry Cohen, marked out our print, and then we made and implemented the changes, and thus we ensured that mathematical errors would not tend to penetrate.
Question: You should feel a certain amount of responsibility for the direction of the computer science industry by writing such an influential textbook; has published numerous research contributions in the fields of algorithms, parallel computing, design automation, computer architecture, and performance; developed several new undergraduate classes; created many original modules for UPOP [Undergraduate Practice Opportunities Program] program; led a computer science program for the Singapore-MIT alliance [for Research and Technology]; and has created and developed a highly publicized workshop on leadership skills for engineering and research faculties.
Leatherson: One of the things that matters most to me is the values shared and embodied by the Massachusetts Institute of Technology, my department, and my lab. My department places equal emphasis on research and teaching; this notion that everyone informs a friend is important to me. I attended research presentations and thought, “God, this is exactly the teaching example I need!” It happens the other way around. For example, I feel that the earlier in the curriculum you are able to teach a research outcome, the more important it is. So if I can teach this freshman, it’s a more important outcome than being able to teach it only to students or peers. It was one measure, though it was not the only measure of significance.
One of the good things about university is that there are many paths to success, and one of the things you do is figure out which path is yours. There is plenty of room for individuals to contribute to academia in a variety of ways. Some people are great catalogers and scientists, others are incredible solutions to problems. Some like textbooks. The Massachusetts Institute of Technology maintains this range of quirks among its faculty.
It’s like OpenCourseWare – one of the brilliant innovations of the Massachusetts Institute of Technology in teaching, in which I’m proud to have had a share. One day I was sitting next to a businessman on a flight between Europe and India who, as we said, showed no recognition from the Massachusetts Institute of Technology, but he heard that an American university is teaching all its courses online for free. It was a good example of how our work has contributed to MIT’s mission and reputation. Here’s how you achieve perfection – having people who contribute to your institution’s reputation, not the other way around. MIT is wonderful thanks to the people who are here. And I’m glad that “Introduction to Algorithms” ccontributes to MIT’s reputation.