David was an incredibly brilliant student, but sometimes that was almost his downfall. For example, my students were supposed to write a program called “Twenty-one” where two players would take turns removing from one to three items out of twenty-one. The goal was to force your opponent to remove the last one.
We were programming on an old Unix system through terminals. The graphics were ugly and the interface was limited. All I asked them to do was a fairly simple input and an output of how many items were left at each step. But David couldn’t stop there. He created a program with images that I hadn’t even dreamed was possible on a terminal display. It showed twenty-one little robots and one big one. Once a person chose a number, the big robot would turn and shoot that many little robots.
The only problem with all of this was that while David was programming it, the assignment became two weeks overdue, plus we had already had two more. When he showed it to me, I was astounded. I couldn’t really flunk him with his incredible talent, but I didn’t know how to grade him on the things that he missed. I scolded him a bit about not doing the work assigned, but I couldn’t doubt his ability.
One day David signed on to a bulletin board where engineers and computer scientists were discussing an unsolved problem that had been around for about ten years. David added his thoughts about a certain way it might be done. The group moderator came unglued, telling David he was new to the group and didn’t know what he was talking about. He asked David his age, and when David responded that he was eighteen, the moderator went berserk, calling David all sorts of mean things, and saying that the problem was unsolvable and a computer program for it could not be written.
David didn’t get ruffled at all. Instead, he worked on the problem, then brought it to me. I went through it with him, and found his work to be incredible. I only found a few slight math errors, which we fixed. With that, he said he was going to code it.
“But, David,” I said, “even if this program can be written, the intensity of it is almost overwhelming.”
“That’s what makes it fun,” he replied. “But there is one problem. If I put all of my time into this, I’m not sure I can pass your class.”
I thought about it and then said, “David, I really should expect you to do the assignments in my class, but if you can program this, I promise I will pass you.”
He smiled and left to go to work. I didn’t see him for about four weeks, and when he came back, he looked like he hadn’t slept since we last spoke. But he was smiling and happy. He held up a paper. “I did it.”
“Did you share your work with the programming group on the bulletin board?” I asked.
He nodded. “That’s what this paper is. It’s their feedback. Here, read it.”
I read the comments from the other programmers who had tested his code, and though they found minor errors, David had been able to do what many said was impossible. They were all amazed. But the best comment was the one from the moderator. It said, “To Mr. David Patterson: We would like to offer you a job with our company, and my boss told me to propose a starting wage at four times the normal — a wage that is double mine, and I have worked here for over twenty years. In addition, I have been told that if I don’t apologize, I will lose my job. I truly am sorry for the inappropriate things I said, and I hope you will forgive me and consider employment with us.”
When I finished reading it, David smiled at me. “Well, do I pass the class?”
I laughed. “I think you can safely assume you passed.”