Don Knuth Lecture
On Thursday I went to a Computer Musings lecture at Stanford given by computer scientist Don Knuth. Most of you reading this won't really appreciate who Knuth is, so let me help you out: if Knuth were a geneticist, he might be Charles Darwin; if he were a composer, he might be J.S. Bach. He has spent the last 50 years writing The Art of Computer Programming, which is the Bible of computer algorithms. He's the stuff that legends are made of. He's so good that he'll write you a check for $2.56 (one hexadecimal dollar) if you find an error in one of his books. He writes even larger checks (in values of powers of two, like any good computer scientist) to anyone who finds a bug in one of his programs. The checks are so rare that they usually end up in frames on people's walls rather than in their bank accounts.
Despite his towering stature among computer scientists, Dr. Knuth is a very friendly, down to earth person. Nothing about him gives off an aura of academic untouchability; rather, he looks like he would be right at home working on the farm with my grandpa—and he's about the same age, too. He spent the minutes before the lecture started mingling with the audience, asking people where they were from, and having conversations with many people that he knew. His interested in people impressed me. He made lots of wry jokes, and he's still clearly quite on top of his game, despite his age.
Computer science is a unique field, because many of the pioneers are still alive. Not many physicists have had the the opportunity to sit in a lecture by someone like James Clerk Maxwell, but I had that opportunity this week.
(Most of you probably don't care, but for the curious, the topic of Knuth's lecture was binary decision diagrams. BDDs are an interesting and often compact way to represent arbitrary boolean functions in a way that makes it efficient to solve many problems that were previously considered insoluble. If that sounds like gobbeldygook to you, try this: they're useful for making computer chips faster. We now return to your regularly scheduled blog post.)
Computer History Museum
Pilgrimage number two for the week was a visit to the Computer History Museum today. Located just down the road from Google, it is filled with thousands of "artifacts" (aren't artifacts supposed to be thousands-of-years-old objects from Egypt?) from all ages of computing. There were early models of supercomputers, mainframes, minicomputers, personal computers, calculators, and semiconductors. I saw some really cool things, including:
- An Interface Message Processor. It was one of the original nodes on the internet.
- A Xerox Alto. The Alto could be considered the first personal computer. It pioneered the ball mouse, the GUI desktop metaphor, and WYSIWYG layout.
- Several early supercomputers, including a Cray-1 supercomputer, which I'm pictured inside of at the top of this post.
- An IBM System/360, the first wildly commercially successful computer.
The really cool thing about the Difference Engine that I saw today is that I saw it working! It computes polynomials, and it did, in fact, compute the correct answer. Even cooler, though, was watching it in motion. It's really pretty amazing. Here's a video of it performing a carry:
There was also a demonstration of one of the museum's PDP-1 computers today, which was even cooler because:
- It's the only working one in the world.
- It was demonstrated by some of the original hackers who worked on it. They were as much a part of the museum as the computer itself.
Peter Samson wrote a musical synthesizer for the PDP-1. You can hear the synthesizer and listen to him talk about it here:
That, my friends, was the world's first iPod. :)
The man who wrote the world's first "shoot 'em up" video game was also there today. Steve Russell, a friend of Peter Samson, wrote Spacewar! in the 60's, and it provided lots of entertainment to early MIT hackers. I got to play the game today on the museum's original PDP-1. I don't even like to play video games very much, but that was really cool!