Note on the Classes

“What’s miraculous about a spider’s web? said Mrs. Arable.
“I don’t see why you say a web is a miracle — it’s just a web.”

“Ever try to spin one?” asked Dr. Dorian.

Mrs. Arable shifted uneasily in her chair. “No,” she replied.
“But I can crochet a doily and I can knit a sock.”

“Sure,” said the doctor. ”But somebody taught you, didn’t they?”

— MRS. ARABLE and DR. DORIAN in Charlotte’s Web (1952)

The English Wikipedia article about Peter Norvig (accessed in August, 2018) highlights two of Norvig’s non-academic papers. One, The Gettysburg Powerpoint Presentation, is a humorous exemplar of a bad presentation. The other, Teach Yourself Programming in Ten Years, exposes as myth the idea that mere mortals who are new to computer programming can very quickly learn to code very well.

It takes time, to some degree aptitude, certainly interest, and the right sort of focus to learn to compose computer programs the way a professional should. Above all, it takes lots of practice. This comes as no surprise, because that’s what it takes, after all, to learn to do—very well—most things worth learning to do very well. It’s true of learning to program a computer just as much as it’s true of learning to read carefully and critically or learning to form an interesting thought and put that thought into strings of symbols, i.e. learning to compose. It’s true of learning to do math, beginning with elementary operations like addition and subtraction, progressing to more complex operations like multiplication and division, and eventually advancing to problems like factoring numbers and evaluating polynomials. In fact, learning the art of computer programming is largely a matter of learning to Read, wRite, and do aRithmetic, sometimes in rather peculiar ways. In other words, computer programming is nothing less than the Three Rs in a new guise.

Given enough time and the right student, I would welcome the opportunity to guide someone through all of the topics in the general outline that appears below. However, chances are slim that I’ll ever have the time and and just the right sort of student. (Never mind my own shortcomings!) I suppose it could happen. But although I assume it won’t, I'm still excited, because I know I can point out a lot of Good Stuff to many students in whatever amount of time we are able to spend together. Preparing myself for the opportunity to inspire someone else is itself challenging and very fun, because the subject matter I'm still trying to learn is so inherently interesting and can be applied in countless creative ways. Hence, a probable outcome is hardly necessary for me to justify my means.

Perhaps some students who attend classes I “teach” will like what they encounter enough to continue their journey elsewhere under the supervision of professionals who are more skilled and experienced than, if not always as odd as, I am. And if they don’t, that might be just as well. We often have to try things we don’t like—often things that other people like or things we’ve been conditioned to think we should like—before we find something that suits us.

Now for the all-important outline—the listing of topics that I hope to someday, maybe have the chance to cover in a class or two or three or more. Granted, it’s not very original. Perhaps you’ve seen it before. Not sure? Try substituting strings of the form “Chapter n” for each Roman numeral n. Then put sequential volume numbers above the first five pairs and the last two singletons.

  1. Basic Concepts
  2. Information Structures
  3. Random Numbers
  4. Arithmetic
  5. Sorting
  6. Searching
  7. Combinatorial Searching
  8. Recursion
  9. Lexical Scanning
  10. Parsing Techniques
  11. Mathematical Linguistics
  12. Programming Language Translation
If you have questions or are in need of more details, feel free to contact me, presuming you can figure out how to do so. Alternatively, you can simply buy the books — the ones that have been published to date, that is. Or you can borrow them from your local library. (If you’re lucky, there’s one near or in your home.) If your library doesn’t own a set or two, you might be able to obtain copies via your library’s interlibrary loan program. Better yet, ask someone with purchasing power to buy the books. (You might want to borrow them more than once and for extended periods of time.) If necessary, show this page to the person with the money in their pockets — your parents, perhaps.

“You can’t spin a web, Wilber, and I
advise you to put the idea out of your mind.
You lack two things for spinning a web.”

“What are they?” asked Wilber sadly.

You lack a set of spinnerets, and you lack
know-how. But cheer up, you don’t need a web.
Zuckerman supplies you with three big meals a day.
Why should you worry about trapping food?”

— CHARLOTTE and WILBER in Charlotte’s Web (1952)
“Christopher—ow!—Robin,” called out the cloud.

“Yes?”

“I have just been thinking, and I
have come to a very important decision.
These are the wrong sort of bees.

“Are they?”

“Quite the wrong sort.
So I should think they would make
the wrong sort of honey, shouldn’t you?”

“Would they?”

“Yes. So I think I shall come down.”

— POOH and CHRISTOPHER ROBIN in “In Which
We Are Introduced to Winnie-the-Pooh
and Some Bees, and the Stories Begin”
in Winnie-the-Pooh (1926)