Imagine leaving this world as complicated as you found it. To me, that's one of the scariest thoughts around. If the next generation takes just as long to learn what you've learned, they won't have time to do better. That's why good teachers don't merely replay knowledge. They try to distill it. This originally appeared on the White House Tech blog.
Three years ago I started writing Lauren Ipsum, a children's novel about computer science and critical thinking. I wanted to write the introduction I wish I'd had as a child. My wife Yta and I looked for concepts, any concepts, that could be explained to a nine-year-old. We purposefully ignored how hard or easy they were supposed to be; that's what we were testing.
It's easy to forget that computer science is a very young field, and young fields are messy. As we race to generate new knowledge we also generate excess complexity and jargon, piled up around us like sawdust. When the hard stuff looks messy and complicated, and the easy stuff looks messy and complicated too, then you can't really tell the difference. That means, as teachers, we're not even starting in the right places.
Many things considered basic were much harder than expected. Other things with impressive-sounding names were literally child's play. It turns out that kids already understand cryptographic timing attacks; they just call it the game of Hangman. Most humbling was the number of things I failed to explain because I didn't really understand them.
People tend to think that scientific progress is all about discovering new facts. It's equally about discovering new ways to explain what we already know. Open a child's math book, and what do you see? Zero, negative numbers, pi. Every one of those simple facts was once the weirdest, hardest, most difficult concept in the world. Over the centuries we've come to grips with them. Today, we expect every child to know more math than Archimedes and more physics than Newton. That's progress.
We haven't made much of this kind of progress in computer science. If the mathematicians are the ones making fun of you for being too complicated, you know you've got some work to do.
Those experiments convinced me that a crucial part of computer science is training yourself to think clearly. You can't explain clearly unless you think clearly. And what is programming, if not explaining things to the computer? So as Lauren goes through her adventures she doesn't learn the messy incidental details of writing programs. She learns how to think like a programmer. She learns not just that she is responsible for her own decisions, she learns better ways to make them.
Today, Lauren Ipsum is used in classrooms all over the world in homeschools, elementary schools, and even universities. For every copy sold, we donate another copy to anyone who teaches children. To date we've mailed over 800 books to everywhere from Indiana to Indonesia. We're also about to publish a Spanish translation.
My favorite story is from a mother who used the book as a bedtime story. A few weeks later she was packing away some suitcases, nesting the smaller ones inside the larger ones. Her six-year-old watched for a while and said "Mommy, that's recursion!"
Take a few minutes to try an experiment. Pick something you know that is supposed to be complicated. Pretend you are talking to a child and try as hard as you can to truly understand and distill and explain it. Then try it out on an actual child. Tell them what you are doing and ask for help; work together to come to an understanding. It's astonishing what children can do if you don't tell them it's too hard. The odds are good you'll learn something too. And that's progress.