This might be a bit obscure if you’ve never written software. Short version, when a chunk of code runs into a problem that it can’t solve, it sends a memo to its boss. This is called “raising an exception.” The upper-level process will give an order like “go get my car,” and if someone down the line notices a flat tire, the process that notices the flat tire lets the upper process know that his car will be late.

One of the challenges of AI is to figure out how to span the gap that exceptions will need to jump when transferring from machines to humans. What will the interface look like when you have a hundred machines under your control, all of which have something that needs your attention? Could that be exploited, merging computer viruses with memetic ones?

While talking to my daughter (who is learning programming), she asked me why she can’t throw and catch an exception within a function. For those who are familiar with the topic, you might think that this is a “my daughter’s so dumb” joke, but she’s not dumb. It’s just something that she never really knew the purpose for. She thought it was weird that the teacher wanted her to write code that way.

It occurred to me that this is a good example of common sense, but not something involving what we normally think of as common experience. When are programmers told what the purpose of this is? For me, it’s in the nature of the word “exception,” but I think I just learned by having to catch so many of them. For me, it’s like someone who doesn’t understand a punch.

The point, I think, is that some of the hardest things to teach are the things that we think others should already know. I think that this has immense implications for diplomacy, but it will definitely inform my teaching methods.

Just as an excuse for including it in the blog about my book, I thought I’d mention that this is the driving factor for Rikmon asking Clempson to teach him perceptron matrix theory. Rikmon has read all the books, but needs a real thaumaturge to relate the common sense.