Next week I'm going into my daughter's classroom to teach about software engineering. I want to teach them about the magic of it.<p>What do I mean by magic?<p>Well, Steve Jobs said all great technology is indistinguishable from magic.<p>I want to show them how math can be magic.<p>I want to show them how code can be magic.<p>But, these are third graders. And I'm not sure I can use a computer.<p>Any suggestions on magic tricks? I have 15 minutes.<p>This is really about teaching them about different careers. This is a very poor school where most of these kids probably don't have a parent or friend in this industry. So instead of getting technical I want to show them the joy I get out of this work.
Another thing Steve Jobs talked about was how programming teaches you how to think. That’s usually my first thought when thinking about showing kids programming.<p>I think about the PB&J demo a lot. For the magic, maybe have a button that spits out a ready to eat sandwich (this can be faked). But then you could go through the demo of having all the ingredients and let them tell you what to do, while you take them completely literally and butcher it horribly. This is generally pretty engaging and funny for kids. Then you can make the link from the logic behind the scenes to the magic on the front end.<p>I’m not sure of that’s too abstract for 3rd grade, but that would be my idea. You probably need to find something that isn’t PB&J, considering the peanut allergies these days.
The time constraint is tough. If I only had a few minutes to give kids the flavor of programming I'd try something based on robot puzzle-style games (see below).<p>You'd draw a simple robot puzzle on the board with a few simple move symbols and have kids try to solve it. Use a cute dog or robot picture on cardboard with tape on the back as your player/avatar. "How would you get the dog to the bone with only these moves?"<p>Robozzle - React port of original Flash game
<a href="https://alexanderson1993.github.io/robozzle-react/?level=-1" rel="nofollow">https://alexanderson1993.github.io/robozzle-react/?level=-1</a><p>Lightbot - iOS/Android app
<a href="https://lightbot.com/" rel="nofollow">https://lightbot.com/</a><p>While not as direct or effective, if you want an "algorithmic" magic trick, a fun one is the Kruskal count. It shows how you can predict exactly where the spectator's "random" moves will end up.<p><a href="https://faculty.uml.edu/rmontenegro/research/kruskal_count/kruskal.html" rel="nofollow">https://faculty.uml.edu/rmontenegro/research/kruskal_count/k...</a>
Perhaps, picking one consumer app/tool everyone knows and tell a positive story how it changed the world. When I was volunteering in autism school, I saw many kids have talent of drawing, despite communication challenges. They use instagram to showcase their works, got tons of followers, and find their communities. It's a testament to how technology has changed our world in unimaginable, empowering ways. Telling something inspiring could be great for kids.