The task: explain what you do at work to a group of 6 years old kids.
Level: high (my own daughter was among the kids).
Many people shared their ideas of such “lectures” – you can find some really interesting examples on Stack Overflow (e.g. here). Many of them are based on the idea of presenting how computers are stupid and that you need to tell them very precisely what and how to do things to succeed. Fun guaranteed, but I seriously doubt if afterward kids understand anything about programming.
My ideas for a successful presentation were:
Keep them engaged by asking questions and drawing. The original drawings were pretty big (flipchart) and I drew them while talking – which BTW is a nice way to keep a young audience engaged (they had so much fun laughing at programmer straw man or pointing out that Peppa Pig doesn’t look like this, etc). I do not have the original drawings (forgot to take pictures) but I drew them once again so you get the idea.
Build upon what they already know (YouTube, laptops, tablets, DVDs). Nowadays every kid watches cartoons on YouTube, plays games on tablets and observes mom or dad working on their laptops. They also know the movies are kept on CDs/DVDs and that the smartphones and tablets are pretty similar (when it comes to games and movies).
I started with the basic question, “Who knows what a programmer does?” I knew they had some discussion about this yesterday so I wasn’t surprised they had some idea. I gave them my own definition: “Programmer is someone who writes computer programs, who knows the languages used to tell the computer what it should do. A programmer knows a lot about computers.”
Then I draw a programmer at work.
The next step was to discuss computers. All kids started talking about laptops of their parents (it is really lovely how they mention the same thing over and over again). I interrupted after some time pointing to them that there are many computers in different places – like smartphones or watches, but also in cars and lifts. I draw each of the mentioned items and discussed in few words what a computer is used for in each case. I also asked them how they think the weather forecast works (one smart kid answer: “the satellite knows what the the weather will be the next day”) and told them about computer calculating the prognosis based on data coming from thousand of measurement devices.
I wanted to move to computer programs next so I mentioned that computers do what they do thanks to the programs which instruct them to do certain things.
I moved to YouTube because I knew they would know a lot about it. I started by drawing UI that they are all familiar with.
I asked how many movies there are on YouTube. Some of them were confused, but a few shouted “millions” or “infinity”. So I asked if it is possible that all the movies fit on one disc. Then I drww many discs and asked “how it happens that after you tell YouTube to watch certain episode of Peppa Pig it finds the right disc?” They responded with silence so I draw a database and quickly described its role.
I wanted to give them some idea that what they see is only a tip of an iceberg and that the programmers are responsible for much more. I explained how we must take care of various stuff like:
- protecting the movies against bad people (“what would happen if someone changed the database so that instead of Peppa Pig you would see some football match?” – answered with horror silence)
- making backups (“what would happen one disc broke? then you would never be able to watch this Peppa Pig episode in which Daddy Pig tried to hang a picture?” – horror silence again)
- so that YouTube works on different devices (smartphone, tablet, laptop)
- presenting ads
- counting the number of people watching each movie
- showing thumbnails of similar movies, etc.
This was a good time to remind them that the programming is teamwork. The programs are big and demand knowledge of different areas so that many people are involved in their creation. At this point, I updated the first drawing, adding another programmer so that two were sitting close to each other.
The next topic was how computers work – very roughly of course. All I told them was that:
- mouse and keyboard are for people to give commands to a computer
- a computer screen is for computers to respond
- inside every computer there is a processor (you can think of it as of a brain of the computer)
- there is also some disk which allows computers to store information
I concentrated on processor telling them that it uses a funny language which consists only of zeros and ones. Then we had a bit of a fun when I pretended to talk in a language using only As and Bs. Then I explained that the programming languages used by programmers were created so that it is easier to talk with processors.
I followed with the simplest possible examples of programming languages statements (using some pseudocode). I wanted to show them some more but I felt they were losing their focus so I did not even present the for loop.
To finish my lecture I drew, once again, symbols of what we talked about. I drew them one by one and asked questions like “what is this?” and “what do you remember about it?” and so on. It went pretty well.
Additional comments, do’s and don’ts, tips & tricks:
- It was more fun than I expected! I treated this seriously and I was well prepared, and it paid off. The kids were interested and I think they might even remember something. 🙂
- Drawing pictures is the right way to go. It grabs their attention and lets me remind them about things we have discussed few minutes ago by pointing to a certain drawing.
- Be prepared for repeating things over and over again. When I asked about languages they know then one guy raised his hand and said: “I know a little bit of English.” And then his colleague did the same. And then one more. And another. And then rest of the group joined one by one (or few at once). All saying exactly the same about English. It gets even more chaotic when you touch the subject they love like cartoons.
- Some kids will get bored no matter what you do. Their attention span is simply too short.
- Write carefully – e.g. they will protest when you write 1 so it looks like 7.
- During the presentation I understood that there is no point in correcting them – for example, I think they understood that YouTube keeps cartoons on DVDs and when you ask for one then computer selects the right disc and plays it. I think this is perfectly fine. I wanted them to understand the concept (how the search looks like and what does a database do) and not the technical details. I feel this is the right way to go.
- The presentation took me ~25 minutes. No sense to make it longer.
Top comments (19)
I highly recommend using a children-friendly programming language like Scratch (scratch.mit.edu/) to explain programming to kids.
Don't focus on the low level computer science (like how binary and assembly works).
While that's certainly going on in the background, it's not what programming is really "about". Programming is about applying logic to solve problems.
You can demonstrate simple programming concepts in plain language, like so:
You have an example that is perfect for demonstrating usage of variables, lists, loops, conditional logic, and methods!
You can express this programming example on a whiteboard in plain language, or in any number of actual programming languages.
For example, in Python:
Great post Tomek. I shall try this on my 6 yr old, as she thinks my job is basically watching tv... :)
My wife thinks the same of me. Do you think, I could try this on her? 😅
:D Same here.
There's an exercise I use where we act out different parts of a computer. Someone plays Customer who sets out the goal. Another plays the Programmer with help from a scribe/coder who writes the steps on a flipchart/whiteboard. Programmer tells the Input to do something, a step from the program. They pass this on to the CPU who says thanks. CPU passes info (like a number to added) to Storage/Memory. CPU does the task (like adding three or four numbers by talking to storage. CPU passes the result to Output who tells the programmer the answer. Fun, confusing sometimes, but you get to deconstruct something and understand about giving good instructions, bugs, etc.
One thing I did with explaining some programming to my daughter was to have her "control" a robot. I'm the robot and she has to tell me how to go to the kitchen, open the fridge, and get a drink. She quickly figured out that I would only do the exact command that she told me to do. Some of those were, "walk forward", "lift arm", "open door", etc. It was a great experience and both her and her sister got a huge laugh out of "controlling daddy robot".
This is brilliant! Such a good real world interpretation of programming.
I followed the ideas from this post along with the one abover, from your comment Phil. The kids (aged between 9 - 13) were very delighted and they enjoyed the role play.
Thank you for these ideas that worth spreading.
It is related to the topic so i will share it here :)
More and more there are stories on how we teach others about programming and tech.
It started as a book but have became so much more -> helloruby.com/
Perhaps this proves useful ^_^
Thank you for sharing helloruby.com. I didn't aware about it!!
Just ordered!!
Thank you Tomek. Do you think the act of drawing affected their attention in any way? Would pre-printed images be more helpful or it's just irrelevant?
great post!
I would love to see you and your class in action 😊👍
Great post! I teach Python programming to 6th grade boys, and I will try your idea of drawing pictures and see if it helps.
Hi Tomek, good post. I once volunteered to work as a "computer dad" at the school of my daughter. Very funny to be working with children of about 6-7 years old. I found their openness lovely.
This kind of reminds me of when I explain stuff to my grandma, because she isn't really good with computers. It's fun to explain what you are doing to someone who isn't good with computers :P