Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: I need ideas to impress fifth graders with technology
473 points by dv35z on June 3, 2019 | hide | past | favorite | 237 comments
Hello! I need some tech “show and tell” ideas for 5th graders.

I've been asked to come to a 5th grade (ages 10-11) at a school with mostly underprivileged kids, from low income, immigrant families. The presenters are encouraged to do a cool "show and tell" about their job, get the kids excited etc. For example, I heard a lawyer set up a fictional courtroom and gave the kids a script to perform. A baker came in and had the kids decorate cupcakes. A FBI agent came in and let the kids try on a bulletproof vest & an FBI windbreaker.

I'm a software engineer, now R&D product manager at a cloud platform software company. Aside from programming, I'm into video games, photography, video editing, drones, and similar techy/creative hobbies.

I'd love to hear what ideas you all might have to totally wow some kids, get them excited about science/tech... And obviously out-wow any firemen, FBI agents, that might be presenting. Give me a fighting chance anyway!!


I was recently asked by a friend who teaches 5th graders to do something similar for their school's "career month." I tried a few different things, and found the most successful was showing them how to use a web browser's built-in developer tools to inspect the source of and make live modifications to web pages.

My reasoning behind this exercise was:

- I checked in with their teacher ahead of time and confirmed that all of these kids had a least some experience using a web browser. Generally it seems like a likely "lowest common denominator" of tech experience for kids.

- Most web browsers have powerful developer tools that can be used to inspect and modify source and will display the results of many types of changes in real time. It is easy to get kids to understand the relationship between HTML/CSS code and the webpage that results from rendering it when you can make live changes to the code and see it immediately reflected in the rendered page.

- Web browsers are freely available. I gave them a handout with instructions on how to access the developer tools in web browsers that are either free (Chrome, Firefox) or readily available to them (Safari, since their school computer lab had a few Macs). I specifically wanted them to be inspired and continue experimenting after I left.

I concluded by spending 10 minutes taking student's requests for the modifications to nytimes.com. It ended up with a bizarro color scheme, comic sans on all the things, and pictures of dinosaurs and Pixar characters at the top of every article. Everyone had a blast, myself included!

I think the demonstration tickled the kid's innate predisposition towards mischief. An immediate question was "can everyone in the world see this changes? are you hacking right now?," which allowed me to naturally give a high-level explanation of the server-client architecture of the web. A few kids came up to me afterwards and asked me to specifically walk them through finding and opening the developer tools so they could continue experimenting at home, and that was the best outcome I could've hoped for!

The inspect element tool is actually a meme on TikTok, where the content creator changes some high priced luxury item (ie yeezyees) to a low price and improbably buys them. I’ve seen others where they change their “grade” in a class. I think this would go over well also.

I did this for a 4th grade class. We changed the teacher's profile pic on their class page to one of the kid's. Also displayed random emoji's next to the kids' names. They absolutely loved the emoji part and kept wanting me to refresh to see who got the poop emoji.

Demoing how to remix and change Scratch games also went over well.

That could be a cool way to give them an introduction to https://glitch.com/

Free, fun, collaborative place to learn and show code, remix things they like and add their own stamp and an easy way to ask for help.


You might not have time to do something like this, but it'd be nice to include it in a resources to explore list for later. https://code.tutsplus.com/tutorials/create-a-multiplayer-pir...

Pretty sure all I wanted to do was make cool graphics and games at that time.

You could also show off some cool pens from codepen.io which also let you remix and play.

If you think they'd be into interactive fiction games/stories, you can run twine or texture in the browser, too, you could ask them for prompts, 'where do we go next, the cave or the castle' and then make it happen.

https://twinery.org/ https://texturewriter.com/

A little deeper in, but I once went to a tech talk where the speaker setup a http://johnny-five.io/ bot that and changed the LEDs on her belt in the room when people tweeted colors at it. You might not need a whole belt (or even LEDS, you could have a webpage change colors or words or music), but that kind of live demonstration is always fun (and comes with the caveat of live demos, which somehow don't always work when in front of an audience of skeptic students).

Have fun!

This is such a good idea. Messing with a website is absolutely something I'd have done instead of the typing practice I was supposed to be doing in my (small town public) middle school "Computers" class.

Make sure they didn't do this in school already before you do, my 5'th grader was trying to show this to me yesterday :-)

Yeah. My kid in Year 4 (Grade 3) has been doing this with his classmates. They fake their on-screen scores on TT Rockstars (a times tables game) and other shenanigans. So they might not be impressed if they have already discovered it.

There's all kinds of cool stuff you can do with devtools and inspecting a page though. If they've figured out how to change the text, start teaching them how styling works, or show them more advanced styling than they've discovered. Show them how to poke around in the console or see JSON payloads.

They should just let people play zty.pe instead of these silly excises.

My current high score is 4200, though I mostly fail around 3400

My wife teaches 8th grade and I did something similar with her classes a couple of years ago. My example was pulling up a NASA twitter post and changing it to read "Mrs. BLAH is the best teacher in the universe!" (or something like that). They thought it was incredible and couldn't believe you could "hack" computers like that.

This type of thing is also a really good teaching moment; you can't always believe everything you see on the Internet or a screenshot.

A demonstration on inspect element also quickly teaches people how easy it is to create a fake screenshot. No need for complex work in Photoshop when you can create something that looks perfectly real effortlessly.

My 4th grader loves this. Search Google for kittens, run Inspector, change the word to puppies, and close Inspector. It really gives them the feel for reaching underneath to begin to see how things work.

To enable experimentation like that, I'd like to see mobile browsers include developer tools as well. More and more people grow up using a smart phone as their main computing device, and I think they should be given the opportunity to tinker with that as well.

I realize that developer tools are information dense and fitting them on a smartphone screen would require a significant effort to redesign the layout (especially when you want to see the website, the code you're editing and the on-screen keyboard at the same time), so browsers might not want to spend effort to include a niche feature like that. Maybe it would be possible to connect to the remote debugger with an on-device client? Then it could be developed as a separate project.

You can use Chrome Remote Debugging to access the developer console for a mobile device.


You can also load Eruda with Javascript. https://github.com/liriliri/eruda

The problem with remote debugging is that it apparently requires a separate device, whereas I was thinking about people who only have a smart phone. That's what I meant by "Maybe it would be possible to connect to the remote debugger with an on-device client?"

The Eruda approach to inject the debug console with a oneliner in the address bar seems like a possible solution, though. Thanks.

“Hey kids, did you know you can change your grades online? Check this out. Oh hey Jimmy, lets make that C into an A”


“Change mine, change mine!”

I was impressed with dev tool live edit as an adult, unless kids already know about it, they’ll probably love it!

As a kid, I remember using the "Edit in Frontpage" button that IE had and fool myself into thinking I was hacking websites. Definitely had a blast, I imagine the dev tools eliciting at least the same amount of wow.

I'm not a frontend dev, so when my kids came home from school and showed me this trick they'd learned, even I was impressed!

If you really wanted to take this next level, you could export some of the changes to a browser plugin called So-and-so elementary school Expperiment (you don't have to show them this) and say they can load the plugin on their home computers. Voila, their parents now have a tricked out NYT home page.

What a great idea! Thank you for the inspiration, and the insight of appealing to kids' sense of mischief.

this is almost identical to how my dad got me writing HTML... i loved it

> and make live modifications to web pages

don't you only need a single javascript line in the address bar for that? Something like: javascript: document.body.contentEditable = 'true'; document.designMode = 'on'; void 0

I have held many such sessions for kids. Instead of showing them the latest and the greatest:

- I point them to the technology already around them, in their daily use, that they see as too obvious by now. And then share stories of how all that had come about to be. Simple things like soap, door handles, stairs, pencils, clocks, ...

- Ask them simple questions that they never asked. How does an eraser erase pencil marks? How is mass conserved as a tree grows out of a seed? Why do women typically keep long hair while men keep short? Why don't animals do their own photosynthesis instead of depending on plants (or why don't plants also move around like animals)?

- Another session I am planning will share bios of many famous people, showing them how extraordinary came out of the ordinary.

It seems surprising to me that we teach them about planets, exotic natural phenomenon like chemical reactions, magnets, etc., without first talking about much more relevant things like why does matter occupy space (or why don't we just fall through the floor below us). The result is kids (and adults) who commonly talk about voltage without having slighest idea of what it actually is.

> Ask them simple questions that they never asked.

This is key to teachinging about high-tech engineering: don't paint over vast swathes of the stack with "it just works" or "it automatically knows".

Take one specific thing it does, and drill down the pyramid, from high-level ideas about user intents way down through platforms and compilers and operating systems to wires and semiconductors.

There's nothing particularly magical about tech (apart from the fact that it often does what it's supposed to). The awesome part of engineering is all the work put in at all levels to make hugely complex stuff work together.

>> high-level ideas about user intents way down through platforms and compilers and operating systems to wires and semiconductors.

Indeed. I did one like that for software developers, just in the reverse order (starting from charges and voltage all the way up to how a microprocessor executes code). I just wrote about that in this comment here:


I recommend the book "NAND to Tetris" to any software developers out there that want to learn bottom-up computer engineering. It's a great read. Following along and doing the exercises with it, along with watching Ben Eaters videos on YouTube, has been of the favourite things I've done in the past few years.

I'm lucky enough that I started my career in software as an EE. As a result, while my CS friends and colleagues can run circles around me when it comes to high-level website/UI/game design, anything C, ASSEMBLY, BASIC or VHDL related they'll come ask me. Knowing what is happening at a physics, to component, to circuit, to system level really makes software "click" compared to the top down way of learning from my experience.

> Why do women typically keep long hair while men keep short?

Does technology have an answer for this?

That one is not a technology one indeed. I intermingle some non-tech ones just to show that there are curious simple things everywhere, and that there's more than just tech in their lives.

I don't think you can truly answer that question without it being part lie. For one, we don't necessarily know the real reason, plus there's multiple reasons anyways, especially since it's taken on a life of its own and culture/history is part of it now.

What's more interesting than the answer to that question is the question itself. People live that way, taking it as granted, without ever asking. Merely putting the question before them is illuminating for them. In terms of actually asnwering, I do not have to go beyond what you have said, "it's taken on a life of its own ... part of it now", though I am prepared to dwell more into the history.

Btw, the students find that question a lot more exciting than the others. Perhaps talking about the opposite sex is subconsciously more appealing to them, especially at that age.

Apparently it is because "They like it that way". Pretty wild if you ask me.

Add-on comment: If you do want to talk about some core technology only, I would show them how mechanical switches work, and how you can connect them in series and parallel to do logic. Take some wall switches and break them open to show them what's inside.

Exactly, start with basic but overlooked concepts.

Give them magnifying glass and ask to watch subpixels while playing with MS Paint color fill.

As 5th grader I learned electricity with some old book from my father's shelf which explained it with hydraulic analogy[1].

[1] https://en.m.wikipedia.org/wiki/Hydraulic_analogy

Exactly! I have delivered a three-hour session going from the meaning of voltage to understanding how a simple microprocessor works, using that analogy! This was intended for software developers and titled, "How does a Processor Execute my Code! And Why?!" I am planning to open it up outside my employer company. Also, am looking for some easy way to make water flow animations to go with it. :-)

Having explained many concepts to my six year old son in an easy to understand way (things that would otherwise be out of reach even for high-schoolers) and in the form of bedtime stories (!), someone suggested me to open those up by writing a children story book. Coming one day ... :-)

Eagerly waiting for "How does a Processor Execute my Code! And Why?!" to come out in the public domain.

I've done an interactive "do you know how many types of engineers there are?" for this age group that's worked really well. Timeframe: 5-15 minutes

"Can anyone name a type of engineer?" and for each shoutout, talk a little about what each does. The guessing keeps everyone's attention.

Types: software/computer, electrical, mechanical, chemical, environmental, civil, nuclear, aeronautical, etc.

Bonus: bring 2-3 props (your drones would be GREAT) that you can hold up for the relevant flavor.

For drones, I like to ask: "how do you think the drone moves forward?" [over power the rear two, underpower the front] Same Q for other directions.

"how do you think it rotates?"

"why don't all props spin in the same direction?"

Bring one of these to fly in the room: https://www.amazon.com/Cheerson-CX-10-Diameter-2-4GHz-Quadco...

Talk about how there's actually a computer on board.

If you have access to a TV, bring a short ~2min drone POV video to show.

Tell bad jokes ("Civil engineers are very nice to each other", etc.) Google online for some.

It's all about energy and making it interactive.

>For drones, I like to ask: "how do you think the drone moves forward?" [over power the rear two, underpower the front]

Careful - this explanation isn't just a simplification - it's outright wrong. Applying differential power to the front and rear rotors is how you initiate a pitch moment. You must reverse the pitch moment when the drone is at the desired attitude. This attitude may cause the drone to accelerate in a given direction. When the drone has reached the desired speed the attitude change must also be undone (but not completely, due to drag) to kill the acceleration. So to bring a drone from a hover to a steady forward velocity requires four applications of differential power - two one way, and two the other way. It's not even true that the rear ones expend more total power over the course of the maneuver - it's symmetrical.

It's a neat example of Newton's First law, and also a good opportunity to explore a little about 0-order, 1-order, 2-order motion (you might explore what kicking your foot does when 1) walking 2) riding a skateboard, 3) driving a car). But if you think it's too complicated, better to avoid it entirely than give the wrong idea.

(A related question you can ask - when an airplane is in a steady climb, which is greater - the lift on the wings, or the weight of the plane? Answer: they are the same! Otherwise the aircraft would be accelerating up or down.)

Correct. BUT, I've found this level of detail is often too much for a 5 to 6th grade level audience.

So I usually start with "what if the back rotors go a little faster?": it tips it forward, beginning a series of operations leading forward motion (like turning the wheel of a car away from center -- what happens if you keep it turned?)

I've also found that words matter: "attitude", "differential", "pitch", "velocity", "acceleration", etc. -- may be hard to access, and simpler terms like "faster", "slower", "speed", "tipped" are usually more broadly understood.

Spot on! The level of explanation and the intent behind the explanation hugely matter. An explanation that is correct but becomes inaccessible can become a demotivator for kids (not for all kids). An explanation that makes things too mundane can cause a consequent lack of curiosity.

A recent such explanation episode got me thinking more about this - I'd recently got a pair of noise cancelling headphones and wanted to demo it to my kids. In an inspired (or dumb) moment, I introduced it to them like this - "you know headphones play music right, this one plays silence." I'd like to think I caught a whif of both understanding and "what the .." in their expressions :D

Oh gosh I just realized I don't have the self control to teach children. Context: I'm a software engineer.

All my explanations would be the "realistic" but kinda sarcastic answers.

Computer Engineer - Copy's pastes code until it works.

Rocket Scientists - Spend 50% of the time designing rockets, and 50% of their time hoping the rocket doesn't explode.

Locomotive Engineer - Whoops this isn't a real engineer! /s /s

Hey, at least locomotive engineers never copy and paste from StackOverflow!

My friend that's a locomotive engineer in a really pretty part of BC once told me this pickup line "Hey baby, I get to drive a multi-million dollar company vehicle, with a full window view of gorgeous mountain landscapes, with flexible hours!"

(by flexible hours I mean he has no sleep schedule and may have to work 12+ hour shifts at any time of the day, with the possibility of a 8 hour break and another 12 hour shift)

They overflow a different kind of stacks.

Rocket science is easy! Rocket engineering on the other hand...

Is the difference larger (and more expensive) explosions?

If so sign me up! :D

So what do you call an engineer that designs/optimises/etc. locomotives?

I am not positive, but I think Mechanical Engineer.

"Mechanical engineering is the discipline that applies engineering, physics, engineering mathematics, and materials science principles to design, analyze, manufacture, and maintain mechanical systems. It is one of the oldest and broadest of the engineering disciplines. " https://en.wikipedia.org/wiki/Mechanical_engineering

My father was one, but designed gas compressors for oil & gas industry.

I'd go with SapporoChris's answer with Mechanical Engineer.

Locomotive Engineer's basically are the one in charge of operating the locomotive. What most people think of as a "Conductor" is actually a lower level job and is mostly paper work from what I hear.

Source: Close friend is a Locomotive Engineer in Canada.

We call them train drivers in the UK. I think it's a bit too muchbto call them engineers...

Well, another term for a locomotive is an engine, a train engine. So a person who works on those is an engine-eer.

Well, you made me laugh. Have a free +1

Speaking of

> Tell bad jokes


> I've done an interactive "do you know how many types of engineers there are?"

Two. Civil Engineers and Mechanical Engineers.

Mechanical Engineers build weapons. Civil Engineers build targets.

For each engineering discipline highlight the relevant part of a drone and how they're responsible.

aeronatical: props and flight control

mechanical: chassis

chemical: batteries

civil: constructing buildings that don't fall over when a drone crashes into them?

nuclear: nope, refer to civil engineering

There are some interesting applications for drones in the nuclear industry.


but no one in the nuclear engineering industry is involved in building any part of a drone

Nuclear powered drones? Maybe not yet....

Well except for the one posted since it carries radiation detection equipment. Also it is possible there might be some radiation hardening performed on the electronics to resist ionizing radiation failures.

software: the coding for the hardware controls, autopilot or camera

My Dad did the coolest one for my fifth grade class that everyone still remembers. He showed us how binary addition in a calculator/computer works by giving us all 0 or 1 notecards. Then since the class is already arranged in a grid, each row is a single digit (8 bits). Then He gave input numbers and we raised our cards according to which bit we were an the person to the left of us.

Honnestly I don't remember the specifics but it was so awesome to see something as abstract as a computer/processor shown to us in a way we could understand and participate in. And the layout of the classroom just happens to be perfect for it.

That's an interesting idea. You could take three groups of kids, group 1 is register A, group 2 is register B, group 3 is the output, and you have one for carry/overflow. You can add or remove bits and make other flags to get everyone included. Then you just tell them the rules for any operation you want to run!

For example, adding A and B together you do from right to left, and carry gets to raise his hand when you overflow.

You could do other simple operations like subtract, shifts, ANDs and ORs, etc.

That could be a blast.

Each kid is a little bit

Given their financial constraints, demonstrating to them how they could use a Raspberry Pi-level device to create a website or business accessible to people around the world might inspire.

There's an unspoken dogma that without a $1000 phone and pricey Mac, you can't be a creator.

Alternatively, demonstrate a very cheap Youtube or podcast production setup and show them how they could do a channel inexpensively.

Common theme is that the barriers to entry in many digital fields are lower than expected.

I've also had kids amazed with tools like React Native Expo where they can make a "real" app that lives permanently on their phone after the exercise in just a few hours (starting with some boilerplate code that they learn to customize). Walked a group of 10-year-olds through the process and they each came away with a very basic app on their phones that looked unique.

Impressive you managed to get 10 year olds to get along with React Native Expo. React's not known for being super easy to learn.

What framework(s) did you use?

>There's an unspoken dogma that without a $1000 phone and pricey Mac, you can't be a creator.

You just made me realize an interesting cultural shift. I distinctly recall how an old 386 or 486 wasn't good enough to run the cool games anymore. But it was good enough for QBASIC and turbo pascal. So I spent time tinkering on that system.

I could create on my 486, but since it didn't have a math co-processor I could only create a Doom level, I couldn't build them. I spent hours blindly building and checking it over and hoping that when I put it on a floppy and took it to my friend's house that all the doors would work, the elevations were correct, etc. Good times.

Doom did not require a maths co-processor. It ran just fine on my 486SX-33. Perhaps you're thinking of Quake?

No, I never made Quake levels. Mine was an SX-20 and it played ok, but building a level complained about a math co-processor. I tried an emulator once, let it build all night and it still wasn't done.

Salvation came through Wal-Mart of all places and I convinced my mom that this $20(or $40, maybe I was paying half?) chip would just drop in that empty socket and double the speed of our computer. 486DX-40, that was nice...

Ive done something similar before. Went with a videogame and showed them how it editing the code changed the game. They started requesting silly changes and went from there. Super fun.

I think this is one of the key things -- so many things in technology are just given to you as-is with no way to change them. The realization that all of this is mutable -- that the computer is just going along doing exactly what it was told, and that you can be the one to tell it what to do -- is a real eye-opener for a lot of people (children or not).

> I think this is one of the key things -- so many things in technology are just given to you as-is with no way to change them

This is the main reason RMS went from being a developer to an activist. He was (and is) trying to prevent this from happening.

Someone at my company recently showed us blueprints in Unreal engine, and everyone there (mostly web developers) had a blast having them mess with different things. The presenter started with the FPS template I believe, and then we were throwing out ideas of things to do, i.e. create a launch pad that throws the player into the air when they walk over it, etc. You would probably score huge bonus points for relating it to things in Fortnite etc. I would have eaten that stuff up as a kid if someone showed me that stuff.

I once went in with something way too ambitious, but this is a fantastic idea and something I'll try next time!

Yeah, the key is to go with something simple. I used a JS game (Phaser.js demo game) and just ran it in the classroom computer browser. Used up 45 minutes of time that went way too fast.

may I ask which videogame did you use?

Not OP, but I did the same thing.

Javascript Pacman.

I have a first grader who now knows how to edit the javascript file in Atom, increase the number of lives parameter, make edits to the map etc...

We also swapped out the pac man with my face, which is a source of continued amusement, especially the death animation.

One from phaser.js demos

Perhaps Minecraft would be the ideal game, assuming the children haven't already played it.

I would do something like this too!

How much time do you have?

I did a peanut butter jelly robot - where I had the kids call out how to make a peanut butter and jelly sandwich. They had 10 minutes to write out the instructions. I took each instruction as literally as possible. Then I talked about algorithm design. It took about 30 minutes.

This. The PB&J exercise is really good.

I'd suggest not trying to impress them. It's not a date. They're kids. Try to connect with them. Talk about your job, sure, but more important to share things you're enthusiastic about.

Also, from what you describe of their background, they may think that what you do is inaccessible to them. Try to reach them, especially the girls. And let them ask you questions.

I volunteer for Black Girls Code, specifically the 9-11 year old age group, and the last thing I did that really blew their minds was build an Obby in Roblox. Almost all of them have watched youtubers go through them. Get one working, modify it, have a kid or two modify it on their own.


To save someone else a search:

obby means "obstacle course"

Nice. I've just started coding roblox with my daughter (8). She plays and watches roblox players on youtube and I noticed you can make your own. So I took the time to start learning how to create a basic level and we did it together. We created a zombie tag with a large playhouse. She loved being able to manipulate the world. And she now has plans to make her own levels and youtube videos.

Edit: found roblox has an education page https://education.roblox.com/

Oh yeah that's a good idea too my niece loves those for some reason.

Honestly, I've found when I give kid presentations just telling them you do computer stuff is pretty impressive by itself. I think demystifying the world around them, letting them know that it's not magic that powers their phones, but actual people who had to build all of the stuff that works for them, has been a huge way to get them to be more curious.

I think rather than wowing them, I'd hope they'd walk away and be able to feel like "this is something I can do.." because unlike being an FBI agent, it's something they could start doing now. They could start using Glitch and be making stuff tonight. That's huge.

Not super relevant to your problem, but a fun anecdote:

I used to be a game developer at EA Tiburon, the studio that does Madden among other games. Somehow I got roped into giving a short talk to a bunch of visiting high school students.

Beforehand I emailed a bunch of game teams and asked them to send me screenshots of their weirdest bugs. I got all sorts of fun stuff. When a game with rendered animated humans goes wrong, it can look anywhere from funhouse hilarious to horror film insane. Giant players dwarfing the field. Players with their eyes sticking out a foot in front of their head. Arms on backwards.

The kids loved it. Heck, I loved it. It was a ton of fun.

I'm not a game developer, but I was playing around, writing a simple iOS game that uses OpenGL ES. Some of the bugs were pretty trippy. This one was actually animated with the cells continuously changing.


Dean Kamen created FIRST Robotics [0] as a partial solution to this problem. Physical demonstrations are often more relatable to young kids.

A FIRST Robotics Competition team in my area does an activity where they bring in various supplies like cardboard, tape, and motors into a classroom, and over the period of an hour or so, students get to design and build small robots that play "sumo" and try to push other robots out of a small tape square on the floor. [1] It's a great demo and has the bonus of providing working cardboard robots you can take to other demonstrations in the future (especially if you're short on time.) Maybe you can take some inspiration!

[0]: https://www.firstinspires.org [1]: http://roboxsumo.com/

I did this back in my college days. I wrote to AMD and they were kind enough to send me two cases of defective wafers plus a used bunny suit. That the students could hold the discs in their hands definitely made an impression.

Another big attraction was the liquid nitrogen we brought for our superconducting maglev demo. That no one cared too much about. Kids just wanted to see what they could destroy through low temperature.

Once, with a group of 7th graders (but I think it'd work with 5th graders as well), I explained programming as a form of puzzle-solving, illustrated by a little game based on an old puzzle/problem:

"You have a 3-gallon jug, a 5-gallon jug, and an unlimited supply of water. How do you get exactly 4 gallons of water without estimating?"

We made it a game by having them write down the steps they would take, e.g. "Fill five gallon jug, pour from five gallon jug into three gallon jug, etc...", with a prize of a candy bar for a correct solution.

I gave the talk to 5-6 groups of ~20-30 7th graders, and there was at least one correct solution in every group. My favorite was afterward, waiting in the library for the end of my wife's workday, one of the kids spotted me and came over to ask questions about alternative approaches.

When trying to demystify software engineering to kids, I love taking the approach of convincing kids that they’re smarter than a computer. Computers are dumb. Fast, but dumb. You’ve got to explain to them very carefully how to do anything. Like you’re teaching a 6 year old to bake a cake.

Not exactly relevant but hope this sparks something. I wish I could do this sort of stuff more often.

headless RaspPi Nano running OpenCV face detection script: Light an LED when the camera detects a face.

Now plug it into a monitor and show the bounding box around each face. They'll love this!

Show them the code. GIve them a really high level overview : "Here we tell it to get a picture from the camera. Next we look for faces. If we find one we tell it send power to the LED to light it up."

Now, another interactive moment:

Plug in a USB keyboard and Ask a student to change the color of the bounding box. Of course they won't know anything about the code. Tell them to find the word "green" (or whatever) and change it to another color name. Run it again.

Little low-risk changes like that is how most of us learned to code. Maybe it will spark interest.

Don’t try to impress them. Involve them. Make a banana piano.


You don't even need a makey-makey, any $2 arduino will do.


Huge fan of the Makey Makey. We had a display for young students which was basically a raspberry pi playing Bomberman, where the raspberry pi was hooked up to a Makey Makey, and the controllers were miscellaneous things like potatoes, bananas, door knobs, etc.

I have a CodeClub teaching 10 and 11 year olds, once a week.

Two weeks ago we built a robot buggy that can be remote controlled from an Android phone. They loved it, and were really involved in the build and programming. In Python, it's a dozen lines of code.

Here's the link to the build -https://projects.raspberrypi.org/en/projects/build-a-buggy

And this for the remote control - https://projects.raspberrypi.org/en/projects/remote-control-...

With the cost of the RPi included you're looking at a £50 robot, max.

Checkout other projects on projects.raspberrypi.org for more inspiration. It's what we do for a living.

Disclaimer, in case it was not obvious, I work for the Raspberry Pi Fou dation.

Put on a "hacking" demo by using chrome debugger / inspect element to modify html. Ask kids who their favorite celebrity / athlete is, pull up their twitter and edit the tweets to say "Joe is so cool!", etc. Load the school's webpage and change the names of teachers. Make it goofy.

I've used in-browser HTML editing in elementary school classrooms to great effect. A great trick is to "hack passwords" by typing in a password (will be represented by dots), then change its "type" attribute from "password" to "text"

1. Get a Ryze Tello drone from the DJI store (mine took 2 days to arrive by DHL), $149 with 3 batteries total

2. Show them how easy it is to program flight plans with DroneBlocks: https://www.youtube.com/watch?v=5NGPrMP1r2Y

3. Everyone can try flying it from one smartphone

4. You have out-wowed most of the competition!

BONUS. You now have a Tello to play at home with.

Build a LED that lights up on the spot and does not use any batteries.

During the demo, just take a wire, wind it around your hand a few dozen times, connect the ends to the LED, and put it close to a wireless Qi charger. It should light up. Its pretty cool to produce light just with wires.

Now if you reverse the concept and create a board full of Led rights and wound up wires, could you wave your hand (with the Qi charger) and get the lights light up based on your hand movement?

Kids love superpowers. If you use technology to simulate superpowers and make it seem easy, you will inspire them to become more curious.

If they are patient enough to try something one by one, I think a VR headset would be a great idea. If you don't already have one, you could pick up a low-end Oculus for a couple hundred bucks (and sanitize/return it afterwards, hah). Then you could take them "around the world" - there are some really cool travel/exploration apps with 360 shots of different places, and from my experience can quickly and easily provide that "wow" factor to non-techies. Probably because it's so visual.

Besides that, maybe doing a real-time demo of how fast it is to get a simple P2P chat webapp going with some off-the-shelf libs. Or an SMS webapp with Twilio, and then picking another parent maybe in the "crowd" to text live during the demo. Would be a great way to inspire them to try their hand at development, and might push a few over the edge who were already on the fence about giving it a try if they see how accessible the tools are to get started.

Try the thing where you turn your calculator upside down and it says "HELL".

They are in fifth grade now... "What's a calculator? Oh... you mean a calculator app."

just make sure you lock the screen rotation before your demo then.

58008 (this was funny in middle of nowhere 3rd grade, maybe not today)

boobs are still fucking knee slappers


My kid is using it literally this minute. You can very easily make a program where the sprite follows the cursor until it catches it. Or two sprites that bounce off each other. Or anything more complex, with sounds, background images, and so on.

+1 to Scratch. It's the most learnable programming environment for kids, kids can easily make things that are personally meaningful to them, and the community is great.

I'll also plug my own Python Play, which is a Scratch-like Python library meant to be used by kids as an intro to programming: https://github.com/replit/play

One word, my man: ROBOTS.

Cloud platforms, microservices, and B2B messaging applications are boring to kids, but kids love robots. So showcase something that can move, interact, and be programmed. It can be built out of Lego, or something premade like a drone or Robosapien that's been hacked to be controlled by a Raspberry Pi using Python or whatever. Set it up so that you can "live-code" and take input from kids as to what to make the robot do.

But if you can, do something with a robot. Robots are more inherently, immediately exciting than just about any other computer application, even video games -- even to adults. I spent four years working at well below market rates at a robotics company just to have the opportunity to mess with and program cool hardware.

Don't underestimate the programming aptitude they have already.

I coached a lego robot team for kids of similar ages. We spent one tenth the time that I expected teaching programming, and double the time I expected teaching mechanics.

Almost zero instruction was needed on ifs, loops, and stitching together commands and functions. Conversely, teaching what happens when a little gear drives a big gear was brand new to them.

Something we used for "tech-days" at our university, when 8th to 10th graders came to visit, was a robot following a black line on the floor, built with Lego Minsotrm. A set includes the base unit w/ two engines and some sensors, which should be enough to build a simple robot.

After we explained the algorithm how the robot can follow the line by keeping the line between it's to photo sensors, we let them implement and experiment on their own. The programming GUI is intuitive and works with function blocks that can be customized and linked together.

Trivia Vending Machine is a very lovely example of a Raspberry Pi project. See https://www.youtube.com/watch?v=n6gs8NtXPIk The "Untrue Zoo" can be created with LiveCode Open Source (free). See https://www.his.com/~pshapiro/UntrueZooHSHTML5/ and https://www.youtube.com/watch?v=37nfon24_aY Bicycle treehouse elevator can spawn a lot of conversation and thinking -- https://www.youtube.com/watch?v=E5FSWkjFPxs Getting kids to make their own screencasts (using free screencasting tools) is always interesting and useful. See https://www.youtube.com/watch?v=M11WT3H_DqU and https://www.youtube.com/watch?v=EvSxhyJhfM8 Get kids into interactive fiction using Twine (free, open source). https://www.youtube.com/watch?v=8gNKhqDr6pg

I'll second the idea of letting them explore browser developer tools (assuming they have access to a computer). I teach elementary school as part of my job, and it's such an empowering experience for them. When I do a lesson on privacy, I set up this special website that uses some known security issues to expose to them the difference between what a company/site may be "telling you" with what's actually going on under the hood and is possible. They absolutely love it.

This is not so an idea of it's own. But, the thing that still wows me when I really consider it, is scales. I don't think people outside of this field ever really consider just how small and just how fast these switching machines are. It used to amaze that a programmer of an 8-bit game machine in the early 80s would know how much time they had before a certain scan line was reached, what the computer would do while waiting for the TV to reach that point that is instantaneous to us. I've seen transistor projects built up to make an 8 bit adder. The transistors taken to a higher level of logic gates. You flip switches and different lights go on or off. Then extrapolate that to a chip with a few thousand such circuits switching on and off many times a second, then extrapolate that to modern machines doing that with millions of transistors at nano scale at ghz, so that the simple act of switching circuits on and off results in say, voice recognition or AI, or drawing pixels to the screen or working out geometry for 3D graphics. The many levels of abstraction to get there. You don't need fancy things, because just the most basic machines are actually pretty amazing, and then to think that they are just 'basic'. Then there is the networking of many of these machines just to send even a text message around the world and have someone get it seconds later (let alone millions of people doing the same thing at the same time). It's pretty ridiculous to think about, but we usually take it for granted or are completely unaware of just how complex this is. And so simple at the same time. It's surely humanity's greatest achievement.

If you want to get into some simple code examples, you can do something where the kids don't need to understand exactly what the code means, but they can still understand what it's doing. For 5th graders, that could be something like "multiply all the numbers between 1 and N together." They could do it themselves for N = 3 or 4, and you could spend a couple minutes making it a race to N = 5 or something. Then you could have the computer do it for N = 1000 and have it fill up the screen with digits, which is kind of an "ooo ahh" moment. You can have the kids try to guess the name of that number. ("What's the largest number you know the name of?" is a fun game. You can take a minute to tell them how Google got its name.) Then you can set N to some value where it actually takes the computer a few seconds to finish working, and the kids can get a sense of how computers are very fast but not infinitely fast.

I've done a fun exercise with grade 5 and 6 students where you build a computer that can taste food.

It takes about 30 minutes and the students simulate the algorithm by walking around the class, so it's engaging.

Training the algorithm:

The students line up along one of the classroom walls. I name a food like broccoli or chocolate and the students walk across the classroom a distance (out of 10) that represents how much they like the food. Most students would walk further across the classroom for chocolate than broccoli for example.

The class then comes up with an median score that represents how much they like the food based on the position of middle positioned student in the class. For example, for chocolate, the middle positioned student may be 80% of the way across the classroom. For broccoli, the middle student may be 30% of the way across the classroom.

We then talk about the visible features of the food. Chocolate, for example, is in a wrapper, is brown, is rectangular etc. Broccoli is green, round, small etc.

Testing the algorithm:

After repeating this for 10-12 foods, we then take a food we haven't looked at yet. An apple, for example. The students individually write down their rating of how much they like it out of 10 (but don't tell anyone their rating). We agree the features of the apple and then calculate the score based on the score of the features from the 10-12 foods that we scored in the training.

The students then go to the position in the classroom that represents their rating and we calculate how much the computer likes the food.


You need to carefully select your foods so you get multiple results for as many features as possible.

Class discussion:

There's lots to discuss:

Median, machine learning, bias etc

Just be honest about what you do. Some will be interested, some won't. No biggie. Much better than getting a bunch of grade-schoolers stoked on cherry-picked lies-of-omission about what we actually do.

More honest suggestions:

- Steve Broke the Frigging Build Again

- Apple Is My Pimp

- Dopamine Cycles for Fun and Profit

- Intro to Jira and Slack

- Xe or Xir?: Your Guide to Hooking-Up at the Python Convention

- The Eight-Hour Interview and You

- Office Politics, 101

In my experience its hard to impress kids these days with little experiments and devices. They are already growing up with magical things as an integral part of their lives. The real problem is to convert them from consumers to being producers.

To do this I would recommend having them build something as opposed to doing show and tell or wowing them. For example, take little robots like Cosmo and have them program it. Or have them build drone from the kit. Or use visual programming environment to create fractals. Snap circuits have many under $50 kits with fans and lights.

Also a lots of good toys in this list: https://www.amazon.com/hz/wishlist/ls/OXK2YDXOQCG2

[All low price ideas]

+1 for the Browsers Dev.tool

Live "code" in the browser using MachineLearning with the whole class interacting: https://teachablemachine.withgoogle.com

Code.org - Even my 2 1/2year old son love it! And he both laugh and have sympathy for the Ice Age character when he jumps into the water

Change/Show the traffic between Apps/phone and the server using using MITMproxy. Playing games on the phone will never be the same, when you see how easy it is to "hack" both the App and the leaderbords.

Change the cookies in code.org to make the browser display that you have finished games. These are "persistent" changes and reasonably easy to understand.

Teach them that they can count to 1023 on their fingers

I find that browser automation impresses both adults and children. It would help to find something content relevant to them like for example, some multi page website where they would have to fill forms or click on things. Skip headless and launch it visible and show them how the computer can automate away repetitive tasks. Ideally, pick something concise and give them a peek at how you can do this in say 100 lines of code and they should see the power behind tools like this.

One of my interns did something like this for himself as the school’s dashboard for grades worked inconsistently (high school) so he built a tool that logged in once per hour and checked his grades for any changes and notified him when there were.

If you have access to a Parrot AR Drone or other programmable drone, you can have them script out how to make the drone fly. I'm dating myself here, but you can use the Logo https://en.wikipedia.org/wiki/Logo_(programming_language) examples but in real life instead of a turtle drawing on the screen. Ask them what they want it to do, "do a flip" will be the most likely answer. Well, what do you need to do for that, we need to take off, then what do we need to do... and so on and so on.

I taught disadvantaged kids science and tech, they were REALLY into robots and drones. They were in astonishment at simple YT videos of Boston Dynamics bots, they flipped out at the robo-dogs and flea-jumper bot, and thought it was hilarious when the BD guys would try to push over their human-shaped bots.

They also LOVED LOVED our drones. Engineering, tech, software, and science converging onto a ridiculously fun toy? Check. Get them to be quiet or they are deprived of very fun toy? Check. One of them turned out to be ridiculously skilled because he plays helicopter games, and I made his year with a useful gadget? Check.

Do a presentation on all of the problems technology has caused for humans. Bring in a small aquarium full of fish and dump crude oil in it and dissect the fish. Talk about research on the effects excessive technology use and automation have on the human brain. You can use cardboard cutouts to represent different neurotransmitters. Show them videos of the war in Syria.

Then talk about how you're helping them by getting them addicted to technology early so that in adulthood they won't remember being sober.

My idea was to run a "smart" phone through wifi router & be amazed while i.d.'ing all the easter egg packets and servers connecting to fuel the surveillance economy. But alas, kids don't care and "have nothing to hide". Your idea sounds more better... let's skip hurting the inbred fry mill types, just grab one from a local water body & test for pharmacology, perhaps.

You have a point but there are ways to talk about the positive future. It is not all doom and gloom.

When I was at school maths, physics and computer science was for losers. Losers as in social misfits, people who weren't good enough to hang out with the cool kids.

Against this backdrop I had a father who would preface a lot of things with 'in Germany...'. So, according to my dad, the German kids did learn their science and engineering with the cool kids being the ones that excelled at those things in Germany. Allegedly the German 'loser kids' were the ones that aspired to the easy subjects.

Obviously my dad was egging the pudding a bit, however he did have a point.

In today's world there is this place called China. I know that is a tricky subject with people regurgitating whatever they have read in the New York Times about the place being an evil dictatorship, however, the fact of the matter is that the Chinese government are a bit more serious than the UK/USA governments when it comes to education. In China the cool subjects are tech, tech and more tech.

Sure there are some kids that want to be a footballer/air force pilot/pop star/actor but those kids are not in a teaching environment where the hard subject - STEM - are shunned. Tech is cool. You can have full on 'maker scene' in the class room in China, plus the kids have more than a tatty blackboard in the class rooms, I would say that the level of advancement is verging on the ridiculous.

The nit pickers will be able to say this ain't so in darkest Yunnan province where they haven't invented the wheel yet, but in the nation of 1.3 billion people there are some class rooms that put whatever school you are needing to guest teach in to shame.

It is possible to entertain the kids with some impressive demo of tech but this might be just that, entertainment, not education. There is also a mismatch with where the STEM education leads to, the jobs are perceived as boring.

With my dad's efforts to encourage me to do tech because the 'German kids do it', I could escape the local bubble whether at school or university where arts subjects were cool and anyone doing tech was to be ostracised. I 'knew' what they didn't know that I would be able to mix it with the German kids when I got older, I would have a wider world open to me. Back then Germany was as ahead as it is now, but, the better benchmark for today's world is China. In the UK/USA we are in danger of slipping miles behind, stuck with a class mentality in the UK that prevents tech being cool and similar mental hurdles in the US where everyone has to be famous or die trying.

Having China as the place where tech is cool and all the kids want to do it (allegedly) is definitely credible when you have every computer, phone and other high tech gadget seemingly made there. We don't want to be the B-team, second-11 in the UK/USA, English is the language of STEM and it can be fairly stated that opting out of science and tech is cowardly - 'those Chinese kids are not better, are they...?' Time to instil some competition and can-do mentality rather than convenient resignation.

Software engineering has to do a lot with your mind space and knowledge of how each tool available can be used to make something in your head do a thing in a black box (to the general public it's a black box executing the code) and sometimes present a result to a user.

I say avoid trying to teach them code at all cost and don't try to explain the black box. Also try to bring what you do into physical reality. Maybe a flashy arduino project where you change the code in front of them and the arduino does something markedly different. Like a 3d LED matrix or something maybe with spread sheet as input.

My niece is 7 and we make easy robots together all the time. The key is attention span, a sentence of explanation maybe two then do something. If you choose the right project maybe they can suggest changing variables too. Remember what tools they have, basic math and that's about it. So anything past if statements might be a bit to hard to grasp in the time you have to explain so I would suggest making the visible code they can suggest stuff about not use for or while loops or classes etc. Just so any kids thinking about it have an easier time day dreaming about what they can do. Also make sure your variable and function names are self explanatory maybe with comments that you never explicitly point out for the kids actually reading and trying to understand it.

I think though the code should definitely be visible even if you aren't going in depth about it. Just so they get the understanding that just ideas alone can make things happen in real life.

Also thinking about it right now, you might hate it but maybe mod minecraft with them. Like something goofy and easy like shooting chickens as arrows or something.

Good luck let us know what you ended up doing and how it went.

Arduino LED's was the first thing that came into my mind as well. Even as a 21 yr old I got absurd pleasure from lighting up LED's and changing their colors and patterns. If OP did want to show code, he could explain how computers understand RGB values, and then have the children convert their favorite colors to RGB and display it on the LED.

http://www.discovere.org/our-activities We perform the 'earthquake', 'wind turbine', and 'roller coaster' activities with children/teenagers at schools in our area. We have 100+ volunteers that take the kits to the schools and help children get interested in STEM.

You can take a look at what we are building at https://snips.ai to do a 100% on-device and private-by-design Voice AI, it works in english, french, german, japanese, spanish, italian, and more coming

It is 100% free for makers, and it is very easy to build your own voice assistants which work with it. I'm sure that the kids will love it ;)

This would be a cool demo to show, very "wow" factor

Programmable robot swarms.


I don't know how affordable the hardware would be for a hobbyist, but this would be so awesome for a kid. Ten little autonomous metal insects, roving around on the floor. The programming side has a lot of visually-intuitive aspects, such as pathfinding; show a child a graphical display of a robot's pathfinding algorithm and they will just "get it." And how cool would it sound to have all those little motors alive in the classroom? You could parlay it into a discussion about drones (one of your passions), and show them clips from e.g. the Superbowl, where coordinated drones with LEDs created an animated backdrop for the performance.

For bonus points, you could use genetic programming to evolve some kind of group behavior, then execute the variously-successful generations, and show them how the most evolved algorithms seem the most alive.

Depending on your interests and timeframe, here are some ideas:

- Teach them about color theory with three flashlights and a red, green, and blue gel taped over each one. Then, kill the lights and show them how additive color turns things white. For added fun, bring a water bottle and red, green, and blue food dye. Dye the water black with the dyes to show subtractive color... then chug the water and "die on stage".

- You mentioned drones... literally just bring a drone.

- Buy a some piece of wood from AC Moore and hot gun some components and a battery pack to simulate how electricity flows (battery to switch to led to battery). Add some permanent marker to point out the components

- I once bought an LED foam sword from Wal-Mart and took it apart in class to show the same thing as the LED board suggestion

- In a similar vein, any kids Arduino/Raspberry Pi project

- You also mentioned photography, so if you're willing to have kids touch your camera equipment, you could show them different ISO/aperture/exposure settings

- There are also Scratch/Snap!/CodeCombat exercises out there

Maybe build something cool on Raspberry Pi? Facial or object recognition, or google makes a cardboard AI kit so you can build a voice controlled digital assistant. Or a pi robot kit, or pi handheld gaming systems. I love these because it shows kids the technology of the future is not locked up in an ivory tower, it is available to anyone who wants to give it a shot.

Turing Tumble [0], where you trick pieces of plastic into doing arithmetic.

Kinda weird how a computer chip is 'just' a rock (molten sand) scared into calculating stuff for us by flashing it with bright lights and nasty chemicals. (OK, glossing over some minor details)

[0] https://www.turingtumble.com/

What ever you do, you should incorporate the say command. Have the computer talk to the students. It will be a great attention grabber.

Pico-8, discuss programming/gamedesign, agree on a simple design, allow them to each create a couple art or music music assets. Game can be simple. Complete game in school or shortly after. Make it available publicly so they can easily access it and show their parents and friends. I did this for a game design activity for cub scouts den and it was a hit.

I have shown the '7 minutes of terror' video every time I go in to my kids school for the Hour of Code events.


I gives me the chills every time I watch it and is a great starting point to talk about how software / engineering can solve cool problems. I also like that it has both men and women from various ethnic backgrounds.

Another video I've started showing is the Human-Machine brain implant helping this quadriplegic control his arm again: https://www.youtube.com/watch?v=_6oNoLWcDqw

With that all said, I show these specific video as they are enabled with the tooling my company produces and I think that's an important part of the message as it helps connect the dots between the presenter (me) and the uses cases shown.

Good luck!

I had to make a little power interceptor board with a current limiting IC to meet hazardous environment requirements for a product. During testing (shorting power through the chip) I decided to stick my finger on there and discovered a pretty cool phenomena. The thermal spike was so fast that it caused you to jerk your finger off every single time, but by the time your finger started to move, the heat was already dissipated to the point where it was completely safe to touch. Everyone in the office had to try it multiple times. No one was able to keep from jerking their finger away even though it was obvious that by the time your finger began moving involuntarily the heat was already gone. It perfectly demonstrated the perception/signal delay alongside reflexive behavior in the human body. Similarly you could use a simple transformer with a battery and use the collapsing EM field to shock them.

Walk through some IoT stuff using Stringify or ITTT. Let them help you create what is going to happen. Use the development tools on an Android device to change location to show geo-fencing triggers. Every kid there could use the "silence my phone when I get to school" routine, but you can always get more advanced than that.

Adafruit Circuit Playground.


This thing is quite amazing, very pretty visually, self-contained, and can interact with Bluetooth modules.

If you have the skill to program it, it will be impressive and bright LEDs will show well.

Make a LED level, for example, using the accelerometer. A sound meter using the microphone, thermometer using the temp sensor, light meter with the photo sensor etc.

As for the finishing touch, I would show that I have been using my free phone as a full desktop computer to both conduct this presentation and control the device. That should blow everyone's mind when they realize they have unrestricted computers disguised as phones in their pockets. :)

Some kind of software controlled drone/robot should do it, since there are 2 parts, software and hardware.

Perhaps using a Raspberry Pi and leveraging CV / NLP off the shelf tools.

Even easier-- go to adafruit and get a circuit playground. Lots of shiny lights LED patterns, easy to program.

Also, perhaps check if their are any makers, robot groups, model rocket groups, drones (look for a meetup) in your area. There may be someone around you. You might find someone with an interesting project to bring to the event.

Make some groups, teach them an easy method to encrypt messages (like Vigenère cipher) and let them play writing encrypted messages between groups or think about a game in which they need to decipher a secret code. It worked quite well for some adults I taught few years ago.

Get a long copper tube (3 feet is good) and a strong magnet that's an easy fit. Ask them to guess how long different objects will take to fall through the tube. Have them time them. Try a glass marble, steel marble. Then blow their minds with the magnet.

Google Teachable Machine is fun for kids of that age. You can for example have the kids train Google to learn what pictures of dabbing are.


Make sure you tell the kids how google (facebook and similar firms) make money by harvesting data (their data).

Teach them about persistent web tracking, clearing cookies, adblocking and the like and to use Firefox rather than chrome.

That is brilliant, I taught mine to say rock/paper/scissors then swapped hands to see how will it did.

I love the roomba that screams in pain when it hit objects:


Everybody find it funny, kids can record their own voice, you see programming (with python) and sensors (with raspi).

With a raspi, you can also make a big red button to make the sound of nuke on another computer, or a nerf dart gun attracted by sound.

With a computer, you can make a youtube video downloader, a password generator, or just a joke windows stating you have a virus.

Some thoughts:

1) pair up kids

2) Coordinate with teacher so every thing is ready before hand - you don't want to spend time in setup. (arrive early, scope out the space)

3) there is always 1 kid who is "smarter" than the others who is going to cause a problem - don't get distracted by them (or have a plan)

4) Have everything that you want to say in a powerpoint or something that can be displayed using equipment at hand - avoid wasting time writing.

5) Keep presentations short ( ~4min max) before activity.

6) More kids: more chaos; longer to get going. Cut in a third the time available - that is the actual time you will have for your project.

* They don't pay teachers enough. I can't stand getting my own kids to get work done. Let alone 30 other brats.

I did the same thing as lots of the comments here describe: Modify web pages in the browser using the developer tools for the first part. It was for a mixed class workshop from 4th to 6th grade. Called it "hacking", which was an instant win, but explained why it wasn't really illegal and what hacking used to mean. Most kids were really quick to get it, and some were pretty damn good ... funnily enough, the nerdy ones mostly ;) They progressed to writing their own website, some with a bit of Javascript in it and after the course I put their sites up on a server for a week so they could show their parents.

I hack, and I volunteer at a kids drop-in center in public housing. (Similar target audience to yours.)

Drones! Especially if they can control them.

Animations! If they have access to chromebooks, get a free stop-motion animation app and show them how to make their own cartoons.

Video chat, maybe. Again, use the chromebooks if they have.

Remote controlled robot gadgets, if you can get them. Kids love stuff where they can control something physical from a screen. https://www.sphero.com/ might have some good stuff.

Beware games. All kids know all about games. You'll be bringing peat to Newcastle, and you'll lose them into the game anyway.

I'm currently running a robotics course for ages 8-18. Drop me an email and I'll send you my lesson plans.

For everyone else(and you), what I just finished writing up is a course designed around taking technology back to basics.

Literally the first lesson is LED's , wires and batteries using cardboard as a breadboard.

My difficulties are slightly different than yours, as I need to keep English as a major goal of this, and I only have 12 weeks for each rotation of the course.

But if you want, I'll drop you my course notes, and respond here to any questions if this interests you (Note it's quite late here in Japan, so there will be a bit of a delay in responses).

Ever heard of Makey Makey[0]? It's crocodile-clip electronics. You can build a piano out of bananas. [0] https://makeymakey.com/

A lot of children do not even know what engineers are or how to become one.

I was blessed to have an EE stop by my 6th grade math class and give a presentation about engineers and what they do and about how it was a good career path for people who were interested in making things or technology.

I decided right then to be an engineer, making course selections when I had a chance to make it possible. Without that encounter, it would have been much harder as I would likely (a) not known about engineering, and (b) not known how important it was to take the right courses.

Try playing with door sensors. They are simply two magnets that are open or close. The detection effect is very visual. The sensor opens or closes and you get a signal.

Door sensors have come a long way and are wifi-enabled these days [1]. Link them to your phone (or iPad if doing a projection on TV). Tape the sensors to door, window, drawer, your jacket, etc. Open them and see the signal sent to your phone.

[1] https://www.amazon.com/s?k=door+sensor+wifi

I have a little C# 'game' I am working on where you can evolve images. The images are expression trees and I made al ittle "lisp" language you can edit in the game to edit your evolved images. I showed this to some 4th grade classes I was asked to talk to about programming as a career, and I let them pick what functions they wanted to try, "add, sign, multiply" etc and I would type those into the lisp and we would see what kind of images (and videos, I have a video mode too) resulted.

they had fun with it.

I'd grab a couple of Sphero robots (little bluetooth rolling balls) and show them changing colors/moving around the room via code. The apps for them have programming environments.

We do a club at my kid's school called What's Inside. It is modeled after the popular YouTube channel by the same name. But we don't simply smash stuff open like they do on that channel. We give the kids some tools and let them take apart various gadgets, then talk about the stuff inside. It has been a hit. We usually ask for broken gadgets to be donated for the club. They are usually electronics, but anything that is safe to take apart is fun and educational.

I did a demo to a younger classroom that was a big hit. I took a simple platforming example video game, had them draw characters and enemies and stuff on a whiteboard, then took a picture with my phone and dropped them into the game. The most-time consuming part was "magic wanding" the background away. They weren't animated or even cut out very cleanly but the kids just loved being able to control something that they drew themselves a few minutes earlier.

Something they can physically interact with.

Perhaps a FLIR camera rented + screen? Has "omg super power vision" vibe

Else something like a VR headset. Though maybe difficult if many people

Caveat that he designed it for 7th graders, and it was aimed as explicitly an educational program rather than a short show and tell, but my cousin put together a lesson around the "Routing and Deadlock" problem that seemed reasonably successful [0].

[0] https://www.paulcweidner.com/posts/stem-like-me/

There's an app called Novel Effect that's free that adds sound effects and music when you read a physical book out loud. It's limited to a list a of books and poems, so it won't just work with any book, but it's still a fun tech to demo. It's popular with teachers already, and has a pretty low bar when it comes to ease of use. And it's something they can do on their own too.

I bought a several dozen toy motors off somewhere cheap (~$20), soldered a couple of wires to the terminals, then handled that to the kids with a AA battery. They were able to make the circuit and see something move, and you can talk a little about how a circuits or a motor work, then pivot to how Engineering is about "making things", and this is part of it.

That worked for several classes of 3-6 grade.

- Demonstration of an evolutionary algorithm, e.g. http://boxcar2d.com/

- Things you can automate, e.g. scraping cartoons from the web with a simple shell script

- Capturing insecure web traffic with Wireshark, e.g. making someone post secret data with their mobile phone that you can eventually see

- Show how you can remotely access another computer

If you have a budget you can go for robotics. I'd recommend getting a Lego Mindstorms kit, they usually come with ideas for builds (both hardware and software).

When I was presenting this to 10 year olds couple of years back they loved it! With mindstorms you can make it very interactive, you could easily do a show and tell of programming it with block diagrams.

You will most likely have a lot of fun yourself!

How about a demo with Scratch or a LOGO turtle? You could start with a skeleton or simple sprite and let the kids suggest how to animate it or add behaviors. You'll need a laptop and projector but it would be interactive and provide immediate feedback.

When I was a kid, learning LOGO gave me the epiphany that software was "castles in the sky" and you could make anything you want.

Show them the life-sized animals in AR through Google Search since a lot of phones have ARkit now


My son is 9 and in 4th grade. I got him this https://kano.me/store/us/products/coding-wand and he loves playing and coding it. If you think your audience is into Harry Potter, give this a try. It's like magic!

I have run similar workshops and find that kids this age respond to technology that they can "program" in the broader sense. Setting up a microboard with LED lights that they can change via manipulation of switches or simple programming, and things of that nature. Programming is so abstract, I find kids respond to making it concrete.

Use a typewriter. Show them how technology began with innovations and machines, and how it transformed into the digital era.

Seeing AI from Microsoft on iOS to show them how people who are blind can get descriptions of the world around them through AI. https://itunes.apple.com/us/app/seeing-ai/id999062298?mt=8

Make water bottle rockets. You shouldn't need more than a coke bottle, wine bottle cork, bicycle inner tube calve and matching pump. Optimal water level in bottle is ca. 1/3 IIRC, but figuring that out could be an interesting exercise.

Or show them some SpaceX stuff with landings or how MSL/Curiosity landed on Mars, that kind of stuff.

Grab a makey-makey, some aluminium foil, some cardboard boxes and a laptop running Stepmania. It takes about 15 minutes for kids to hands-on make their own DDR machine. (Dance dance revolution). I've done this multiple times with upper primary and lower secondary, and it's always gone down really well.

I like the socratic method of teaching binary numbers to kids, especially the aliens with two fingers part -> http://www.mathmaniacs.org/lessons/01-binary/socratic.html

How about a project on Raspberry Pi? Something that teaches them how easy it is to control other things with a computer ? Some ideas here https://electronicsforu.com/raspberry-pi-projects

https://teachablemachine.withgoogle.com is pretty straightforward and accessible for most kids.

Start by training it on different facial expressions or objects in the room, and transition into how ML is changing our lives at scale.

I'd find Bret Victor's stuff interesting at that age and maybe the coding made by jtnimoy for Tron Legacy too. Anything from Siggraph. Cool dataviz. Or I don't know. Wireshark. But the comments in here that are question/answer driven are great depending on the group of kids.

There's some great rpi projects you can do that are impressive.

You can build your own alexa with your own commands & make some kind of simple game that you control with your voice.

Image recognition with some kind of speech on it.

Build a game using simple scripting tools (there's some easy game builders with pre-made animations).

With simple hardware from backyard brains you can make one person's movements match someone else by recording EMG on one person and stimulating the other's muscles. It sounds a little ridiculous but can be done with $100 worth of hardware and is a wonderful and surprising demo

I once attended a banquet dinner and shared a table with a female FBI agent and her husband. The entire table was enthralled by her fascinating stories of the field. Someone finally asked the husband what he did. He said “IT”. The conversation quickly shifted back to his kick-ass wife.

clearly he was a secret agent. Well played.


That exercise is excellent to teach kids how to count in binary and why computers are based on it.

When I tried to make a little class for programming, my go to option was scratch.mit.edu , a little hub for coding with blocks. But since this is 5th graders, I recommend code.org , which is "coding" AKA using blocks to get steve from minecraft from point A to B.

Pico 8 would have really impressed me at 5th grade.. I think you can get an education license as well

I've had great fun with a webcam showing the difference between consecutive frames.

Once they understand the idea, you show them the three-line code that does the computation (using opencv for python), and you let them change the math formula in whatever crazy way they want.

A mechanical calculator might be interesting, if you can get your hands on one for reasonably cheap, as a way to show how the ideas behind computers have been around for a long time (relatively speaking), even though modern computers are a new invention.

Interactive AR sandbox. It would take some time to built and have some cost with it, but I bet it will blow their tiny minds. https://arsandbox.ucdavis.edu/

Maybe I'm old school but I think it would be neat to bring an old rotary phone and pull out your cellphone and explain how modern phones would be magic to someone 50 years ago!

edit: this is probably boring and would not be age appropriate

The way area codes of major cities (e.g. 212) are compressed is really clever, but sadly, I don't see it impressing fifth graders.

How about something like that "make it juicy" keynote for game developers?

It went from simple pong to a fully loaded game with shakes and sounds and particles.

But you set it up so you can show how adding bits of code makes the games they play awesome.

Try out lostcircles.com to let them visualize their facebook network. You can teach them data visualization and awareness for the data which they are sharing every day. It‘s used by many university classes.

Hint: I am one of the authors.

kids aged 10 or 11 won't have facebook accounts.

Hey man I dont have any ideas to offer but you are my superhero for the day for atleast trying to inspire the next generation of kids!

Kudos to you and good luck. Please update your post with the final idea and let us know how it went :)

Always Fun - kids react to Old Technology > https://www.youtube.com/watch?v=PF7EpEnglgk

Animation, their favorite cartoon is not possible without technology.

showcase a simple HTML page and explain some tags (real simple tags). Show how you can save / update and view results in the web browser.

This is really old school but effective way of showcasing both coding and providing a bit of 'wow' factor to the kids.

Avoid using HTML frameworks or advanced concepts such as nested divs, complex CSS etc. But a real simple 'hello world' javascript popup would be awesome!

Goal should be to explain to kids of whom 75% are probably not technically inclined to begin with.

Head over to adafruit.com and you will find some cool ideas

I hear making a clock out of an Arduino goes over really well in the classroom environment. Just be sure to notify all authorities before attempting it.

If you have a scrapped Kinect and a laptop with CUDA capabilities (even 4/5 years old), you can run the KinectFusion and perform live 3D reconstruction

I'll throw in a vote for using p5.js to make some cool generative art. Setup is less than 5 lines of code, and you can make some really nice art.

If you pick up a virtual orange or type on a virtual keyboard, they will be impressed.

If you move a robot arm, they will be inspired. Future is certainly augmented.

Simple: Show them how they could automate a repetitive task they have to do (e.g. 30 times the same type of math calculation as homework).

I would recommend things like https://littlebits.com/

You should show them LaTeX and its powerful features, and how VIM is such a great and way better editor than emacs.

Hmmm, maybe some and arduino based led system for your drone. Kids could learn about for loops, if statements, etc.

I was at a museum recently and I got to play with my kids and Ozobots.

My 3 year old and 9 year old were enthralled with them.

You could bring in a Raspberry Pi and show them how they can modify Minecraft on the fly with Python.

This might not be what you're looking for, but interactive sorting can be fun. An old professor ran this with 5th graders where each help a number and they would physically move according to the sorting algorithm. Show's the number of compares and moves in a visceral way and demonstrates the difference between bubble / quick sort in an approachable way.

Can you create something interactive and put it on a tablet for them to pass around and play with?

Pinhole cameras and DIY chemistry for development (coffee + soda) is pretty darn impressive IMHO.

Drag and drop game development. Do a space shooter and you will mint some great future engineers

With a wireless phone charger and led and a coil of wire you can make a wireless led light up.

Take in a few Pocket Operators from Teenage Engineering and let the kids make some music!

A $20 USB microscope can turn almost every object in a classroom into an amazing image.

The wheel, fire, plumbing.

Speaking to a comment down thread, show them how to wire a three way switch.

Just explain all the anti-counterfeit measures found in a modern $20 bill.

maybe this is a bit complex but setup facial recognition demo?


Just explain all the anti-counterfeit measures found in a modern $20 bill

Show off a programmable persistence of vision display?

- Voxatron & Pico-8 video game platforms - kinect

Bring some VR headsets and Beat Sabre. You win.

Real time object recognition/tracking

Tesla coils are always a big hit.

Easy. Augmented reality sandbox.

bring in a C64, Mac LC, ipad. So many ways to illustrate the advances in 20-30 yrs.

how about lego mindstorm?

I second that, I mean, how do you impress kids ... well with a robot that reacts to their actions and that they can program themselves, I thought about that robot the Anki Cozmo (company just went bankrupt) and is super fun to play with, but hard to code your own stuff, my second thought was to do something fun with an arduino or raspberry pi and maybe those big colorful buzzer buttons (I did a music quiz like that: https://github.com/chrisweb/arduino-nodejs-music-quiz-game ;) ) but I don't think this is suited for kids, it's more something for teenagers, so yeah for ages 10-11 probably mindstorms is the best

But not just mindstorms, maybe LEGO boost is actually better suited: https://www.lego.com/en-us/themes/boost

Everything related to coding and LEGOs can be found here: https://education.lego.com/en-us/coding

try VR headsets !

Google lens

3D printer

Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact