The computer science curriculum at CBSD is pretty solid. We teach kids Scratch, Java, computer programming, AP computer science, and data science. I was excited my kids were introduced to Minecraft in elementary school because with Redstone the kids are learning to code simply and intuitively. Like Steve Jobs said, “Everybody should learn to program a computer… because it teaches you how to think.”
I compared our curriculum to what I needed to know to build scalable systems like Google Web Search and Google Calendar. I have found a couple of gaps in our kids’ technical education. It is not just restricted to CBSD, by the way. I’ve noticed elite private schools like LaSalle have these gaps as well.
One of these gaps is understanding computation as a way of thinking about data, particularly concerning high-performance computing. To fill this gap, I designed my course called “Google Magic,” which I have been teaching in Winter Enrichment at Doyle since 2017.
Google Magic gives a high-level overview to 4th to 6th graders about how systems at Google work. I show the kids how Google Search actually operates. (Hint: it is the computer version of the index that any reference book already has.) We sit together and build a little “search engine” for Pokeman cards, where you can ask questions about the Pokemon, like color or HP, and instantly find the cards that match.
It never fails to delight me. I patiently walk the kids through some dry crawling and indexing algorithms, and their eyes glaze over. But once they see how it all works together to help them find their favorite Pokemon card, their eyes light up, and it is the most wonderful experience.
I love to teach the Diffie-Hellman key exchange. This is the basis for the cryptographic handshake you make with every website on the internet so no one can snoop on your browsing. The coolest way to describe it is. It is a way for you and me to have a public conversation in full view of everyone else, but in the end, you and I will share a secret that no one else can easily figure out.
I show the kids a simplified version of this algorithm using calculators to multiply and exponentiate the numbers. Once again, it is so delightful to see this in action. The amazement when the two actors end up with the same very large numbers on their calculators, but none of the audience can guess what it is. We repeat this algorithm several times because it really piques the kids’ interest. Math is so cool.
(This actually reminds me of when I saw Whitfield Diffie at the retirement party I organized for my Ph.D. advisor, John McCarthy. They were good friends, and John gave Whit lots of support and even a place to stay while he was working on his now-famous algorithm. Whit is really tall and a pretty snappy dresser for a mathematician. His wife was super nice, and I remember talking to her about their dogs, one of whom was sick.)
The highlight of the Google Magic course is the demonstration of MapReduce; maybe you know it as Hadoop. The name comes from two LISP operators, map and reduce. (LISP is the programming language invented by my Ph.D. advisor!) MapReduce is a framework we used at Google to quickly process information over thousands of computers.
Because kids learn best with tactile demonstrations, I show the kids how to use this framework to process three pounds of fruit runts, which is about 2500 pieces of colored candy. With a handful of kids and this algorithm, we cannot only sort by color but count all the candy in 10-15 minutes! No comment on how many pieces of candy are “lost” during computation, by the way.
Anyway, these are the ideas I would love to bring to the district regarding technology. Show kids how the hi-tech systems we build in Silicon Valley actually operate so they can build the next generation of them.