Tip:
Highlight text to annotate it
X
>>
BILL: It's my great pleasure to welcome Don Knuth to visit Google today. Don and I were
just talking, we met in the mid-1970s which--you know, he's a very young man, I'm a very old
man, but it seems like it's been awhile. But Don has done a number of things. He's got
a remarkable number of awards. It's hard to say enough about him. I think many people
consider him the, you know, the most prominent living computer scientist. And I--he wanted
to come today and have a kind of free-for-all Q&A session so I hope you all came armed with
questions. I think he may be available to sign a book or two after this. I understand
a few of you may have brought such things, but let's do that afterwards. But with that,
let me welcome Don Knuth. >> KNUTH: Hi. Okay, thanks, Bill. Yeah. I'm
not sure if I can match Lady Gaga. But anyway, when I was teaching at Stanford, our last
day of class was reserved for all questions answered. And I told everybody they could
cut class if they wanted to but if they had something that they wanted to, you know, they
wanted to ask me, because they had paid their tuition and everything; that was the time
to do it. And they could ask questions on any subject whatsoever except religion, politics
or their final exam. Now, two years ago--about two years ago at Google, I gave a talk that
connect--that had something to do with religion. And politics is kind of depressing, but if
you want to ask questions about anything I, you know, I'll still give it my best shot
but I can probably give better answers to things that I know something about. And I
understand that some people have been submitting questions and then they're going to choose
the best ones to vote or anything, but anyway, let's, you know--I'm hoping that the questions
are not frequently asked questions. Okay. Currently in lead, okay, so, should I mention
the guy who asked the question? Does this show up on your table? Whatever. Okay, so
who--let's go, "What is the theorem or constructing in the previous [INDISTINCT] is most counterintuitive
and which one do you find most beautiful?" Okay. Well, so this kind of ranking of things
in a one-dimensional criterion, I'm kind of--no, so first of all, we project onto the counterintuitive
thing and beauty aspect. Okay, I mean, somehow, you ask a parent which of their children they
like the best or something. Okay, counterintuitive--is anything intuitive to me? So the, I guess--going
to more and more dimensions, our intuition seems to--seems to be worse and worse. I understand
George Dantzig once said that our intuition in dimensions isn't worth a damn. I don't
use that kind of language myself but anyway, so I think the things that we're doing in
high dimensional spaces and some of these methods now that are dealing with many degrees
of freedom and somehow, we can still map them down into something we can--we can control,
those are pretty probably--the most beautiful theorem in computer science, my goodness...
It's always the one--it's the one that I--that I learned most recently, I guess, is so--but
there are a lot of contenders. And then there's this bond between computer science and mathematics
which is hard to draw. So let's see, right now, I'm a big--I'm going to go for construct
that I find very beautiful because during the last year, I've been playing around with
a data structure called ZDD which isn't the greatest name but it's the best way that I
know to represent families of sets. And families of sets cover many, many, many applications
of all kinds and it's--and I played with it--you know, I started out with it thinking I would
just spend one page of volume four talking about ZDDs and a year later, I had almost
a hundred pages of introduction to it and I was still learning more stuff about ZDDs.
I think it's a very beautiful construction that needs to be studied much more and explore--and
soon, people will find more reason for it. Now, let's see, should I alternate between
this and people in the audience? Okay, so let's take someone--something from the floor.
>> Rumor has it there's an amazing pipe organ located somewhere near where you live. Do
you ever have anyone else, any other organist play that pipe organ, and what's your favorite
song played on it? >> KNUTH: Okay. So, yeah, I have--if you look
in "Art of Computer Programming" volume three, index under--did anybody hear--everybody hear
the question? It's about pipe organs. If you look in the index to volume three under "royalties,
use of," it'll take you to a page that shows--that shows a picture that looks like organ pipe.
And so after we had sold a few copies of volumes one, two and three, I was able to fulfill
dream and get a really nice instrument in my--into my house. And I guess Alan Kay also
has a great organ in his house down in Southern California. And my father was an organist
and I took some lessons when I was 12 years old on how to play an organ. And then--and
then I was called when I was down in Pasadena as a grad student, I was--all of a sudden,
the organist at the church I was going to had a detached retina and they called me on
Saturday and said, "Don, did you really take a year of organ lessons when you were--when
you were a teenager? Can you fill in?" And I learned at that time that all the wonderful
literature that's been written for pipe organs and I found some people down in Pasadena that
had got an organ in their house. So that became a dream of mine and I was able to realize
that in the middle '70s. And I investigated--I was thinking maybe I could get somebody in
Denmark to build one for me because they had such beautiful instruments. But that turned
out to be impractical because I couldn't--they couldn't give me a fixed price on it. And
so finally I found a really good builder at--near UCLA and they build four organs a year and
the one that's in my house is a joy. So we occasionally have people from the American
Guild of Organists come for recitals and play on it. And then, like if you--if you're an
organist, just see me afterwards and you can come and try. Stanford students used to practice
on it but that--there aren't so many organ students now as they used to be.
>> Thanks. I'll come see you afterward. >> KNUTH: Yeah. Now, the next one here: "What
kind of problems do you feel Google or the industry at large should be working on but
isn't?" Okay. So Google--okay, well, I'll just--another great question. I'll just give
you one. In Google maps, a click back--a facility that I can get the GPS coordinates, I can
click on something on Google Map and then I have a way to find out the GPS coordinates.
That used to work last year until November and it's gone now. And if you Google GPS coordinates
in Google Maps, you'll find a lot of other irate users who miss this feature, so okay.
Another one from--I'll take another off the screen. "Most of the low hanging fruits in
computer science have already been reaped and dissected in detail. Do you still see
any of them that surprisingly no one is trying to reap?" Okay. So, you know, that's--it's
true that a lot of things have been dissected in detail but it all feels--including computer
science it seems that people are always going down the same roads. And it's amazing to me
the headway of how many--how many times another low hanging fruit appears in my consciousness
and both in computer science and even in mathematics which have been around for, you know, hundreds
of more years. Problems that are very--just for example, last year, I--let see. How do
I... I was finishing the eight volume of my collected papers, all eight--and I got to--I
got to give a plug this book because actually I have to admit that I love it much more than
I can explain. But the--but it was decided many years ago, more than 20 years ago, that
the papers that have been written should be published in archival form with all the bugs
removed and adding extra information about the developments since the papers were written
and divided into eight topics. The first topic, literate programming and the second topic
was general--computer science in general for non-specialists and the third book was about
typography and so on. Well, the eighth book--the eighth of these eight was papers on fun and
games, and I saved that up for dessert. It was the one--you know, like, I knew that,
you know, that if I kept that for last, it would keep me going through all the other
papers. And then, so here I have this--finally--though I'm closing the door on the papers that I've
been writing. From now on, I write anymore papers. I add to "Art of Computer Programming"
but I don't--but--and I added 17--there are 17 chapters in that book of papers that were
never before public. And two of those chapters, I wrote last year which might--on topics that
you might say are low hanging fruit, things that, you know--research that was still there--in
one case, it was about knight's tours. I call it long and skinny knight's tours. And I studied
the problem of how many ways are there to take a board that has three rows and end columns
and find a nice tour on this board. And it turned out that it was a really interesting
problem, a really challenging problem. It taught me a lot of mathematics as I'm doing
it. I can get the--I can tell you the exact number for any end. And I can tell you the
asymptotic numbers and I classify them into different ways that surprise me. It seemed
like low hanging fruit because you don't need much--I mean, people have been thinking about
knight's tours for 200 year. Still, there was another open problem on knight's tours
called Celtic knight's tours which are knight's tour that are especially beautiful because
they don't have three lines that come almost touching each other and so you can--you can
make beautiful Celtic knots from the patterns anyway. Another example of something that
was out there hadn't been--hadn't been asked, two weeks ago, Ron Goem tells me about the
following problem: take any integer, write it binary, so you've got any--basically any
sequence of zeros and ones. You can always--you always cut it, any string of zeros and ones,
you can always cut it into substrings so that sum of the--consider each substring has a
binary number. The sum of those binary numbers is a power of two. It's not easy but there
it is in very, in a sense, low hanging I would say. You know, try it out but don't start
thinking about it just before trying to go to sleep because I was just--I was just reading
the information--what is it called, the learning in the loo or something like this? It tells
you how to get a good night's sleep. So anyway, surprisingly, there's still a lot of low hanging
fruit and just keep asking questions. It's not--it's not really that likely that it's
been totally explored yet. Yeah? >> Earlier, you were talking about GPS coordinates
or--sorry... >> KNUTH: Yeah.
>> ...about that [INDISTINCT] in Google Maps? There's a Lab feature where you can get that
on your mouse cursor now. >> KNUTH: There's a what?
>> You can turn on a Labs feature. >> KNUTH: A Labs feature?
>> Yeah, if you do the settings. >> KNUTH: Okay. Well, tell me about the way
it--because it used to be that through my maps I could get something called position
finder but they discontinued the [INDISTINCT] they use other people's java code during my
map. >> Well, yeah, I'm not too familiar with what
you're using but if you just want GPS coordinates, you can still get it.
>> KNUTH: You know, I can do it easily with Google Earth. But with Google Maps, I want
to be able to do it easy. And I searched and nobody had--nobody had published that solution
so. >> Well, you can get it with the mouse cursor.
>> KNUTH: You can get it with that? >> It's just the mouse cursor.
>> KNUTH: A mouse cursor? >> Yeah. There's a plug-in for it.
>> KNUTH: Oh, plug in. >> Or a Labs plug-in.
>> KNUTH: A Lab plug-in. Okay. All right. Well, thank you. With the increasing processing power and adoption
of machine independent high level languages, it's a common perception that being close
to the metal doesn't matter anymore. What impact does this have on computer science
as a field of study? I don't like--I don't agree that it doesn't matter anymore. It doesn't matter as much
to as many people but that's just relative. And absolute numbers probably just matters--I
mean, we can still use more power. We can still use it. There's all kinds of problems
where you want to push the envelope and do better and so, if you just--lots of problems,
there's no point in my--in my spending much time on something if it's going to--if it's
going too--you know, to make--to get the answer in a microsecond instead of 10 seconds. So
there's no point in--you know, so I write really inefficient programs to solve certain
problems but [INDISTINCT] when I--when I was studying these three binary knight's tours,
I had to find the inverse of a 700 by 700 matrix of polynomials and so I had to--I had
to think about it and I had to know a bit of what's going on. And if people--imagine
a whole generation growing up with this philosophy that you don't need to be close--you don't
need to know anything about the metal underneath, then the programs they write are going to
be really bad. And so then, of course, there'll be lots of low hanging fruit for people who
want to make improvements. Okay, next question. "Literate programming has never really taken
off although some scripting languages have improved code readability somewhat. What,
if anything, do you think has hindered its adoption?" Yeah. That's a question that, of
course, I can try to answer but literate programming is so close to my heart that I'm totally biased
about it and so I--so you have to discount what I say. The--again, in absolute numbers,
we've got tens of thousands of people who use literate programming. But still, that's
less than 1% probably. And--but I've got at least one program that I wrote that was so
complicated that I totally believed that I would never ever have been able to get the
program finished at all if I didn't have literate programming to organize my thoughts and make
it done. This is the--this is the meta-simulator for my MIX computer. I had got--I had got
this risk machine that you can configure in basically infinitely many ways. You could
say--you can say for each instruction what functional unit belongs to how much of a pipeline
you wanted to have, all kind of caches that you can control in multiple issue of instructions
and did advanced prediction methods. And you can imagine--you can simulate what would it
be like if you had a processor with many more things then we know how to build at the moment.
But anyway, I wrote this simulator and it was the hardest challenge that I ever had
as far as programming, I think. And with literate programming, I was able to finish it in a
year but without literate programming, I think I would've totally flopped. So it not only--for
me, literate programming isn't only nice; it's sort of essential. It's also nice because
I write average of maybe one program a day. Some of them are longer than, you know, some
of them are pretty short. But with this literate programming method, it really works for me
and makes me happy. Now, so on the other hand, you know, fewer than 100% of the world loves
it. It's because the way that--you know, I read a lot of code and there's a general and
a lot of the best code that I see out there adheres to a certain set of conventions that
are pretty good. They're nowhere near as good as literate programming but still, they're
good enough that they're adequate. And so--and they're understood by a huge community and
so people can--you know, people know this style and it's a lingua franca. For me to
say drop that and go to literate programming, it's like saying, "Well, you know, let's go
to Esperanto instead of English," or some other language that might be even better than
Esperanto, you know, prove that it's a much more logical language. Yet English is good
enough and I'm not going to change from English. So, you know, why should I tell somebody else
to change the style of programming that they all can use and it's good enough? So, Jon
Bentley might have hit the nail on the head because the people who like literate programming
the best are people who also like--seem to be people who also like to write, you know,
bloggers and teachers. Because when you're writing a literate programming, you're like
in front of a class, you're writing for a human audience rather than for the computer
to understand that you're--you're trying to explain something to another programmer. So,
there's a certain percentage of the world likes to write and there's a certain percentage
of the world that's good at programming, and you have to be in the intersection of those
two in order really level your programming. So, that might be why it hadn't taken off.
Still if I--you know, I think that if Google managers would sort of, you know, say, "Let's
have a test here and we're going to do some system with literate programming," you find
that, you know, that it might in fact make Google even better than it is now. But anyway,
I'm not going to change and I think a lot of people understand--I can point to some
large programs that probably more people understand these difficult programs than any other--than
the other programs on their side. So, that's my take on that. One more thing though, my
book on fun and games, the last chapter of--okay, I don't know how many people know this, but
my first publication was in MAD Magazine and, you know, when I--when I was a freshman in
college, I--this article came out and so now, that's chapter one of my--of my papers on
fun and games. The last chapter is equally--is equally crazy and it's a--and it's a smooth
talk that I gave last summer where I basically promised that--I basically--people were asking
about the future of tech and I said, "Well, I've decided that everything I did on that
project was a mistake and so I'm starting this--I've secretly started this company and
I'm--and I've got this new product that's coming out that's not only going to do three-dimensional
type setting but it's also--you know, including the manufacturing on demand. And it also includes
things like search engines and social networking and, you know, it sells differential equations.
And, you know, and it's all written in scheme. And of course, we gave up on literate programming
because everybody knows, you know, documentation is a pain." Okay? So, that was the hardest
paragraph for me to write. But I thought I would--I used some kind--some kind of book
ends to have one. You know, I started out in MAD magazine and I had to have something
to match it as my final publication. Okay. Jeff?
>> Sir, are you using call/cc on that program? >> KNUTH: Am I using call piece?
>> JEFF: Call/cc on your scheme programs? >> KNUTH: Oh.
>> JEFF: All right. Here's my question. It's a mass search--mass search question. So, this
morning I used social search to find the name of such a silly technique called propensity
score matching. And so sometimes I know that there's a mathematical concept that exists
but I don't know what the name of it is and I want to go find out about it. Integer sequences
is a good example of a search technique that allows me to go find, you know, find...
>> KNUTH: Yeah. The handbook of--the online encyclopedia of integer sequences, you can
calculate your way into the literature if you can...
>> JEFF: Right. >> KNUTH: ...if you can compute the first
six terms of some sequence, you'll find if there's anybody else that's ever been interested
in that. >> JEFF: Right.
>> KNUTH: Yeah. >> JEFF: So that's a--that's a good solution.
So--but that doesn't solve all problems. So, how do you--when you know that there's been
a mathematical concept that you've stumbled across but you don't know the name of it...
>> KNUTH: Yeah. >> JEFF: ...how do you find out what that
name is so you don't have to go reinvent everything? >> KNUTH: Okay. Well, the answer of the question,
I'm 73 years old now and I developed a bunch of friends and so I know--so I...
>> Social search then. >> KNUTH: Yeah, right. [INDISTINCT]. So, I
know who to ask, you know, but if it's--it is a completely new field, then I haven't
got any good method myself. But I--no, but I often--you know, there are certain questions
that I ask Ira Gessel or others I ask, Richard Stanley or, you know, Jeff Almonds, you know,
et cetera. And, you know, fortunately, I can go down the hallway at Stanford and get the
answers to most of these questions and we get together for lunch every week. So, that's
my solution, but it's not--it's not an algorithmic solution at all.
>> JEFF: Yeah. You don't--you don't scale very well.
>> KNUTH: I don't what? >> JEFF: You don't scale.
>> KNUTH: I don't--well... >> JEFF: I can't replicate you to, you know...
>> KNUTH: Well, in fact, that would be--that would be terrible. I mean, if there were--if--no.
Let's face it. If there were 10 people like me in the world, we wouldn't have time to
read each other's books. Okay. "How many P!=NP proofs have you seen? What is your opinion on this, P=NP or P!=NP?
When do you think it's going to be settled?" Oh, boy. Okay. So, I got one last week, I
have--and a guy sent me a Java code that seems to prove that P=NP and I'm pretty sure that
he's finding maximum clicks and I'm pretty sure that the way he's generating the data
is from a set of problems that, in polynomial time, you'll be able to find the maximum clicks,
you know, N3 steps on the average. So it looks like--you know, it would look like P=NP in
that because the maximum click is one of those NP complete problem. On the other hand, you
know, you got to be able to solve all the problems in a maximum polynomial number steps
in order to have P=NP. Still, his algorithm might be really interesting on practical problems.
And so, I've--I filed it away to read the code when I--when I get to the point when
I'm--maybe a year from now when I'm going to be writing up techniques for maximum clicks.
Okay. Now, I--but I've done--I've done my lifetime share of checking proofs that P=NP
and P!=NP and some years ago, I passed that threshold. And so I'll never do it again.
But still, there's a pretty serious thing that a lot of people looked at about six months--six
months ago, wasn't it? And it turned out that it didn't pan out, but still the ideas couldn't
be dismissed out of hand. Now, I've also read proofs about squaring the circle, too, in
my youth. Okay. Now, I have this--to my surprise, I've found that I had already given this opinion
15 years ago, but I'm afraid what's going to happen in this question is that somebody
maybe 50 years from is going to prove that P=NP. And the proof is going to be something
like this that it equals NP because there are only finitely many reasons why it couldn't.
In other words, a proof that could give us no algorithm, it just proves by--that there
exists, you know, some exponent so that--but an algorithm that we'll never know is just--it's
out there. And so then, that was the wrong question to ask it would--even me. Now, we
already have cases like this. There's some deep theorems in the graph theory that say
that certain kinds of graphs, in order to test for these graphs, you can do it polynomial
time but nobody knows the algorithm. We just know that there's only a finite number of
cases to try for but we don't know what those cases are. We just know that that's not infinite.
And, you know, the people [INDISTINCT] that describes some of the paradoxes coming out
of it. So, it's looking to me more and more like it's going to be that the number of possible
algorithms is huge, huge and to show that none of those is polynomial time might just
be long. >> Hi. I don't know if this touches more on
philosophy but do you believe that programming is more of an emergent behavior of math or
it's its own thing that just happens to be well-described by math?
>> KNUTH: Okay. Connection between programming and math--emergent from math. I find my own
feeling is this: that Mathematics and Computer Science are the two unnatural sciences, the
things that are man-made. We get to set up the rules so it doesn't matter the way the
universe works; we create our own universe and decide, you know, we can design our computational
models and we can--we can make axioms for mathematical problem. While physicists and
chemists and biologists and so on are--have a different thing. They want to know what's
actually in the real world. Now--so our--so--but are computer science and mathematics really
two sides of the same coin or are they somehow different coins? And I feel strongly that
they're different but I tried to convince Bill Thurston and he--and he disagreed with
me. My opinion though is I can feel rather strongly when I--when I'm wearing my mathematician's
cloak versus when I'm wearing my computer scientist's cap. You know, I'm in one mode
or the other sometimes. And sometimes, what--so to me, the biggest difference is mathematicians
are mostly working on unified theories where you have one or two axioms that are sort of
applying all the way through while computer science are--I'm more dealing with very heterogeneous
things where there's case one, case two, case three, and the--and we have different things
that happen in different states. And we have an assignment statement where we can just
say X is placed by 2X. So all value X is gone. Mathematicians, that's a weird concept to
mathematicians. So, I think that these are different mentalities, different approaches
were I can sometimes even say, "Well, as a computer scientist, I got stuck here." Not
going to try to translate my problem into a mathematical and then I, you know, then
I think mathematically for a while and that moves me to another thing. And then mathematically
I'm stuck, and then I go back and put on my programming hat again and try to do something
constructive or figure out a data structure that helps me understand what the mathematic
side. So, I think they're different but I can't convince Bill Thurston. Now, it's--the
other thing that computer scientists--so I can conclude this by saying we got our--it's
plusses and minuses. So, there are problems in the world that mathematicians don't do
very well at because they're sort of inherently heterogeneous. Nothing uniform is going to
explain them all. And so, mathematicians aren't going to--couldn't be comfortable with that
at all and computer scientists can cut through like a butter knife, you know. But on the
other hand, there are problems that do have a uniform thing and a computer scientist might
not see it because we can--we can find a case one, case two, case three, a way to attack
it which is actually very inelegant and missing the underlying unity. So, to me, that's the
difference. >> Thanks.
>> KNUTH: You know. "How has your involvement with music affected your computer science
and vice versa?" I think there's a common thing about patterns and--so--but it's just
a love of patterns that seems to have a high correlation with the kind of thinking that
goes on in both mathematics and computer science. At Stanford, we had--one time our--the lady
who was sort of our department executive head, she had come from the--from the law school
and she said there was incredible difference coming from the law school to computer science
department. In music, the students were interested in music, musicians. It was all completely
different than she had experienced in the other school. Anyway, I think there's probably
something to that, although--so, in the '70s, we used to ask our incoming grad students
the first question would be "What's your instrument?" And we had cases were, like the [INDISTINCT].
I don't know if you remember those sound [INDISTINCT] oral exam, he proceeded by a cello recital.
And you know, we would--we would have student parties and we would--we would do chamber
music. And so it was--it was much more in the '70s than in '80s, because one year, I
got to the incoming grad students and I said, "What's your instrument?" And it turned out
that one guy played harmonica and another one said that he did an Abba imitation. And
nobody else did music at all that year. And I said, "well, you know, what I--what's your
main hobby?" And it turned out that more than half of them were really into bicycle riding.
So there was--there was a change somehow in the population that I don't understand why
and I don't know what it is now. Anyway, I do believe that these things go together but
it's maybe--not a direct, you know, I--if I live long enough, I'd like top compose music
with some of my algorithmic ideas that I have. And so, I maybe I could influence music that
way. How does music actually influence a program that I write? I don't know if I can point
to anything direct there. Next question here was: "You are famously known for your interest
in contributions to digital typography. Over 30 years after the release of TeX, what are
your thoughts on the current state of typography as it exists on the web and other digital
media?" And basically, I'm upbeat about the--about the way, you know, I got the--I got a Nexus
S and it has beautiful fonts on it. I love to--you know, I love the typography that I'm
seeing. And I think that people are starting to understand fonts. I guess--I mean, the
only predictions that I--I'm famous of that at predicting. In fact, that's probably one
of the--the fact that I can predict how hard something is is the only reason that I started
working on typography in the first place and since--and "Art of Computer Programming" and
bunch of other stuff. But I did predict that font designers would become heroes and that
turned out to be fairly close to the... >> So I have a question very similar to the,
like, one of the previous questions. So, now kids are growing up with using computers like
on the cell phones, everywhere, like the small, small kids. And like--but the computers became
like really, really complicated. So what do you think will be the long term impact? Will
we actually have more people understanding how it all works or we'll going to have like
in magic, you know, that only few actually understand?
>> KNUTH: This is--this is a paradox and I wish I--and I wish I knew. I just give you
a couple of--so I know that my grandkids are pretty--are pretty fascinated by some applications
that you might say are fairly like programming, and they put together objects that--and the
object can move. And I can't remember the names of the systems that they do. So they're
doing more than just--than just passively playing games, although games are--you know,
I must say I spent hundreds of hours rolling dice when I--and moving horses along a track
when I was--when I was in high school. I mean, and now the equivalent is doing things on
them. And on the other hand, Nick Trefethen told me three years ago his son is going to
the best high school in Oxford and Nick went there to talk to the kids in his son's school,
and he found that not one of them had ever written a computer program or even though
about it. So, this is--so anyway, it's a very strange situation that we're--that we're in.
And you think that more--I mean, in the old days, people were learning Logo and Karel
the Robot and stuff. And now there's many more systems like that which are--which are
quite fascinating. You probably know the one called ChucK from Stanford and then MIT has
this one that was featured in ACM last year, and there are--there are more. But I don't
know--I don't know if it will change the--throughout my career, the number of people--of every
hundred of people, it's been pretty steady over my career that two out of every hundred
seems to be born to be a computer scientist. You know, they're geeks like me. They have--we
have a peculiar way of organizing stuff in our head and that happens when you're young
at some point. And I view computer science as something that I do because I just happen
to be good at it, not because I had an urge to compute, you know. "Programming today is
not fundamentally changed from programming decades ago. How has the industry failed in
this regard and how could it change in the future?" Okay. I wish I could answer about
industry that I--my own expertise is in writing books and I don't know. "How many people have
actually cashed the $2.56 checks?" Now, I think some of you know that I reward people
for finding errors in my books. And as--and I started that--it used to be $1.00 back in
1960s and then it, you know, in the second edition, it went up to $2.00. At some point,
it switched over $2.56 which seemed a more appropriate number. I had to--and over the
years, I--people used to cash those checks a lot and it was--it followed up our checking
account. So, I got my own, you know--so, I got my own account because others were not
cashing. Well, now it turns out that the electronic funds transfer is incredibly insecure. Banks
have almost no security. I mean, the banks believe any electronic message that they get.
And crooks have learned how to do this, so that if somebody looks at a check that you
write, you write the personal check that has numbers at the bottom, if a clerk knows those
numbers, he can turn himself up an ATM card and withdraw money from your account. And
anyway, I had to--I had to close three accounts because of these numbers were--I mean, I have
examples where the check says Bank of America Atlanta, Georgia, and at the bottom, it has
routing number of my checking account in Palo Alto. And, you know, people would--look like
payroll check and so, you know, 400 bucks, cash that at the supermarket. And--but others
were actually, as I said, making ATM cards and doing withdrawals and ordering all kind
of fancy computers and stuff, I think, probably somewhere in Eastern Europe. Having--so anyway,
this whole banking system is all screwed up. So, about four years ago, I started my own
bank and you can find it on the web, it's called, "The Bank of Sans Seriffe" and instead
of--and I still write checks but the--but you don't cash them because it doesn't say
pay to the--it says, "Deposit to the account of." And it's a virtual bank so you can look
on there and you can find the names of everybody who's got an account at the Bank of Sans Seriffe
and how much they've done. And I wrote 21 of those checks last month and I'll write
probably 10 this month so far from what I know, things that came in. Last week, I got
a letter from China. A guy found an error in volume one from 1960--it hadn't been noticed
since 1968. Finally, somebody read that page carefully. It's true. So, it's very valuable
to me, you know, trying to make these books more and more correct. "What is the--do I
think the most effective way to get children enthused about computer science?" I guess
we got good tools for them to play with but I was best at understanding children when
I had children who are of that age. I mean, when I was--when my kids were in first grade,
I could design curriculum for 1st graders and then the next year I could design curriculum
for second graders. Right now, that's wiped out of my--but I think part of it is they
have to--they have to have a way to be creative and share their creations with their friends.
So, that's probably going to the most effective way; have some kind of thing where kids can
make a construction that they're proud off. "Did Steve Jobs tell you he'd read all your
books and how did you respond? Bye." Okay. Now, there's a funny story about the--that
you can look up. And the true story, I believe, is on the Russian version of the Wikipedia
because the guy in Russia wanted to check out the source. And the fact is that I did--I
had met Steve several times and the most likely thing is that he said that I said, "Oh, that's
wonderful. You're the first person I ever met who has," or something like--has read
them all. But anyway, I defer the rest of the story. You got a question?
>> So, are you familiar with the field of Natural Language Programming? Or sorry, Natural
Language Processing. >> KNUTH: Excuse me?
>> Natural Language Processing. >> KNUTH: Natural Language processing. Well,
I use Google Translate an awful lot. And, you know, I know a little bit about the way
it works. But... >> So, from what little you know, do you see
it having any effect on the field of literate programming or programming in general?
>> KNUTH: No. Well, it sounds to me like a different--it's certainly a huge impact on
artificial intelligence and a lot of algorithms that are--that are used in order to deal with
things that are... To me the--I've always looked for a way of getting automatic translate
for that. I wouldn't have to use a dictionary but I only had to learn a dialect of English
when I'm dealing with things from other languages. And this seems to be happening now. But I
haven't got anything profound to say about it.
>> Thank you. >> KNUTH: A friend of mine gave me a wonderful
book. It started out with Alice In Wonderland and translated it by machine into French.
And then, translated that into English and back into French until they had a stable thing,
you know; after two cycles, you get the same thing back again. And then they printed the
whole thing into a stable form. And so, what is it? So the rabbit is saying, "Oh, precious,"
instead of, "Oh, dear." Anyway... >> Could I...
>> KNUTH: Yeah. >> I'm going to interject here. I'm going
to take the liberty of asking the last question. >> KNUTH: Oh, okay.
>> So, you know, years and years ago, when I was studying computer science, there was
a lot more expectation for Mathematical training. And I noticed over the ensuing 30 or 40 years
that there's less and less dependence on mathematics and my impression is that students are less
trained in that. I remember it was [INDISTINCT] Stanford for a number of years about whether
to have an undergraduate degree in computer science and so forth. And I think there was
a presumption of people should have mathematics training and so for the before they went into
computer science. Do you think computer--how is computer science changed as the role of
mathematics has become less in the field? And, you know, I'd interested in your view.
>> KNUTH: Yeah. Okay. Another great question. In fact, all of these questions have been
really, really terrific. So, there's a lack of computer science--a good computer science
that can be done without a lot of mathematics now. But there's just as many examples of
really cutting-edge Mathematic going into computer science as well. I mean, I'll just
go through the--through our building and, you know, computer graphics, all the rendering
methods that are heavily based on mathematics and, you know, the new camera techniques are
incredible. People are using--are using high mathematics in artificial intelligence, all
of the [INDISTINCT] network, the calculations with robotics are requiring--are requiring
great mathematics, you know. All of our--so I don't think however that I need a terrific
amount of mathematics to come up with Facebook. But still, I understand the way Facebook is
able to do its magic is by--is by actually putting everybody's Facebook page in one giant
computer. Anyway, that--and a certain mathematic knowledge in order to understand caching and
so--yeah, but not traditional mathematics. So, mathematical paradigms are still there.
You have to know the concepts of rigorous proof for at least half of computer science
now, I would say. But there's also lots of other things that are--when we talk about
the design of GUIs or something like that where you don't need so much to many things.
>> That's true. But I've heard a few people say that reading your books--your books the
arts, you know, "The Art of Computer Programming" is challenging if you don't have the right
>> Which I think is true. But... >> KNUTH: Yeah--no, it's not easy to read
my books but it could be a lot harder. I tried to make them as simple as possible but I haven't
succeeded in making it, you know, a breeze. >> So, with that, I want to thank Don again
for coming by and answering questions and thank you for providing questions. Thanks
again.