Resonating with Computers
Donald Knuth spoke to a group of first-year doctoral students last Wednesday. He was the second lecturer in a two-hour seminar designed to expose the students to different areas of ongoing research. The first lecturer interpreted ‘exposure’ to mean trauma with a blunt instrument. The young proselytes tried to follow his 120-slide presentation–with its equations, monographs, and animated images–but within the half-hour, they had conceded defeat. By the time I arrived, many had lost themselves in other diversions.
Presently, the clock, indifferent to the scientific advances being described, compelled the first lecturer to yield the microphone. The angular, bespecaled man who rose from the second row declined this device, however. He carried with him neither computer nor pen. He did not introduce himself. “I can’t do PowerPoint, and I haven’t prepared a talk, so…Look, you people need to come closer so that we can see each other,” he said. The students for once did not consider this a pedantic request, and eagerly arranged themselves in the first few rows. Leaning against a railing, the renowned computer scientist said, “So, what do you want to know?”
The first question related to the nature of Knuth’s career. What is it’s theme? Knuth responded that he had always thought about the interplay of theory and practice. One should inform the other, for one becomes stale without the other. He spent the 60’s working out the first few volumes of The Art of Computer Programming (TAoCP), and many algorithms refined during that period appeared in TeX, his preoccupation during the 70’s. By the 1980’s, he returned again to theory. In passing, he noted that retirement has given his mind greater leisure, and he is free to divide his time according to curiosity, not responsibility. “I’m not in anyone’s inner loop,” he said.
Knuth then summarized the previous 18 months, saying that he had been working ‘intensely’ since May 2007 on Volume 4, Fascicle 1 of TAoCP. The intensity of his concentration could be ascertained by way of inference: “During that time, I threw all of my mail in a basket. So now I have hundreds of letters and over 400 journals to go through.” The next few months, he said, would be used to “catch-up on personal administration” and to prepare for his annual Christmas lecture in which he explains the most interesting thing that he learned about trees during the previous year.
A mathematically-inclined member of the audience asked him about an upcoming talk on so-called ‘sweet functions’. The student sheepishly confessed that he had asked several colleagues about the topic and that no one seemed familiar with it. “I wouldn’t expect them to,” Knuth said, “It’s a term that I made up last month. They’re binary functions with interesting properties. I looked the term up on Google and found that no one had used it, so I claimed it.” He then paused to consider. “There’s something nice about them anyway. One could imagine the existence of sour functions.”
By now the students were asking questions without reservation, having overcome their initial diffidence. And so one brave student finally asked ‘the question’: “Tell us the history of TAoCP.” At this, Knuth smiled, briefly.
“So that book is my life’s work,” he said. In 1962, a publisher approached him about drafting a book on compilers. His first concern was length. How long should it be? Retrieving his calculus book from the shelf, he copied a page and found that a printed page corresponded to two pages in his own hand. Thus in 1966, when he delivered 3000 handwritten pages to the publisher, he believed himself within the limits of reason. The publisher called him shortly thereafter: “Don, do you know how long this book is going to be?” My estimate was off, Knuth conceded.
Over the years, the book has evolved, but he has not changed the initial outline quickly scribbled nearly a half-century ago. “I stick to what I’m good at,” he said, “Explaining the history of things, sequential methods, and things with nice data structures that do not require dynamic programming.” His office contains thousands of pages of notes that must be processed over the next 20 years. “There’s a lot of beauty in there,” he said.
An enterprising student then asked him to comment on future trends in computing. This request was politely declined with an admission of failure: “I don’t make predictions, because my forecasts are usually so bad.” He did identify, however, a growing problem with programming: it just isn’t fun anymore. With the growth of re-use and ‘frameworks’, it is impossible to code without multiple, thousand-page manuals opened simultaneously. Programming has become nothing more than looking up function calls and ordering them properly. We code because it’s fun, he said, but this situation leaves no room for creativity.
The problem of declining interest in Computer Science was then discussed. Why are admissions down, one student asked. Knuth then made one of those vast generalizations only afforded to those well-advanced in years. By my reckoning, he said, only one out of every 50 people can ‘do’ CS. It is not important who wants to study this subject, but who can. And this is not an arrogant claim, he added. ‘Our’ way of doing things–and by ‘our’, he invited the crowd into community–resonates with computers, he said.
Before the clock could free the professor to return to his books, an enthusiastic student attempted to introduce a degree of jocular levity into the discussion. “So, how do you use computers for fun?” he inquired.
Knuth paused for a moment, “Well…ah…what do you mean by fun? I mean…well, you know I look things up on Google sometimes. What do you do for fun?”
“Well, I like to keep up with friends, and play games. I use Facebook,” he said gaily.
Now the professor had something to latch onto. “You know I don’t ‘get’ the whole social networking thing. It’s not new. In my day, you could only play so much ping-pong before your grades slipped.”
Leave a Reply
You must be logged in to post a comment.