Teach children how the internet works through a role-playing game
We currently have to host our CoderDojo Bruges sessions online due to Covid-19. We had our first try in October, which didn’t go very well. Our spontaneous approach didn’t work through video chat. We had to be more prepared to make this work.
So for the November edition, we decided to prepare activities. For the Scratch-track coach Margot prepared ‘Saint Nicholas’-themed challenges. That worked like a charm.
For the more advanced I wanted to create an activity in which a group of children could partake. A wild idea popped up in my head: to make a role-playing game to learn how the internet works.
The internet has many layers of abstraction, and I certainly didn’t want to overwhelm the kids. So I decided to approach it through Socratic questioning.
Here’s a slightly condensed version of our conversation:
- Coach: Did you ever wonder, when you type an address in your browser, where the website comes from?
---- Kid: Wifi?
---- Another kid: Google?
- Coach: Not exactly. Google is like a phone book to look up names of websites. But it doesn’t help you to get the website. It only tells you which websites match your question.
The wifi isn’t the internet either. It is the wireless network in your home. From there on, it goes with a cable to the internet. The cloud, as some call it. So, do you think the internet really is a cloud?
---- Kid: No
- Coach: No right. That’s not possible. So what is this cloud exactly?
- Coach: Computers! Just many many computers that are connected together all around the world. All computers do different things. And they’re all essential to make the internet function. Let’s see it for ourselves through a game.
After this we went hands-on. I prepared a role playing game with multiple characters:
- Bruna Browser
- Denise DNS
- Family Router: Tom, Lisa, their father Marc, their grandpa Oscar, their aunt Marie, their cousin Nick and their cousin Nina
- Web Server Angèle
- Web Server Willy Pizza
I put the characters on a canvas in Adobe Illustrator and shared my screen. Every child was assigned a character.
And then I continued to ask questions:
- Coach: How does the internet know which computer to ask for the website you want?
It just hands over its request to the router that its connected to. Then that router does the same, until it reaches its destination.
- Coach: But… you think every computer knows all the domain names?
No, there are 1.7 billion websites! That’s too much for every computer to remember. And there are new ones coming and old ones leaving all the time. So there’s a trick: domain names can be translated to IP addresses! Those IP addresses are composed of logical parts instead of words. That’s much easier for a router to handle.
- Coach: How does your browser know which IP address goes with which domain name?
Because of DNS servers. They have a list of all the domain names and their corresponding IP adresses. And they work together, so that when one doesn’t know the answer, they can ask to their friends.
- Coach: Let’s look at how a DNS server works. (Denise DNS comes in the picture)
Let’s ask Denise for the IP address of willypizza.be. Which IP address should Denise answer?
- Coach: That’s right, 188.8.131.52. Now that we have the IP address, let’s try to give it to Tom. He’s the router that we (Bruna Browser) are connected to. To who should he hand the package?
- Coach: Well, it isn’t 184.108.40.206, and it isn’t an address starting with 144.12, so he has to pass it on to his father Marc. To who should father Marc pass it on?
This way we continued until we reached the web server. The kid that acted as a web server had a little flow chart that checks for the hostname, the endpoint, and then gives the html code to answer. Then the kid had to reson which IP address would be the destination, and which IP address the origin. And then passed it back to its nearest router.
At the bottom you can see rectangles. We used these to keep track of the info that’s being sent and received.
It was exciting and somewhat scary when I started. I hoped that children from various skill levels would be able to follow, and remain interested. Luckily, they did! It gave them a tangible feeling for what happens when they’re using the internet.
One of the key take-aways for the children was that all the separate parts were actually quite stupid. And that by doing those simple things very efficiently, and cooperating well, those parts make the internet work. So they understood that there’s no magic, only a lot of clever engineering. Exactly what we learn and do in CoderDojo. :-)
Oh, and they also experienced that we as humans are terrible at being internet. Given that a request can reach the other side of the world in less than a second. And that it took us dozens of seconds to go through the diagram. However the internet couldn’t have designed itself, so that’s where we as humans excel at.
We also used nslookup to look up an IP address and traceroute to show the hops made by an actual request.
In the next session we’ll introduce Firmin Firewall, and introduce the children to the concept of ports. And when we’re allowed again to have physical meetings, we will try to do this game in person.
I hope this brief summary inspires you to build your own role playing games!