EXPEDIA GROUP TECHNOLOGY — SOFTWARE

We Taught Code to School Kids — Here’s What We Learned

Introducing code to children is a rewarding experience which might impact their career choice

Carlo Sales
Expedia Group Technology

--

First coding pilot inside Hotels.com Rome Offices

A classroom full of young kids is staring at us. Despite the young ages, poker faces are all around. Outside, the sun begins to raise the temperature of the room.
My colleagues and I stand still, near the teacher's desk. A woman starts talking, and presents what we are going to do in the next couple hours:
We work for Hotels.com™ - Expedia Group™.
We are programmers. And coding can be fun.

TL;DR;

A group of volunteers from Hotels.com Rome office periodically goes out to schools around the city, in order to show young kids that coding can be fun, and inspire them to consider a career as developers for their future.

Our mission

The percentage of female employees inside tech companies is less than 30% than men on average (see https://www.statista.com/chart/4467/female-employees-at-tech-companies/).

At Expedia Group we are always working to improve the diversity of our teams and we look at this from both short and long-term perspectives.

With that in mind, a group of volunteers in Rome gathered with an ambitious objective: going out to schools and making young kids aware that coding exists, it can be a passion, and eventually become a profession too.

We contacted public primary schools, where mixed classrooms are formed with kids aged 8–13, since we didn’t want to address girls specifically.
Why mixed? Kids are surrounded by these “tech=male” misconceptions, but probably they are not aware of the biases we are dealing with. Thus we didn’t want to be explicit by addressing only groups of female students.

Our sessions

There are plenty of pre-defined coding lessons online, for example, the ones at raspberrypi.org. But the most compelling ones are written in English (and usually young children aren’t fluent in foreign languages at that age in Italy), so we decided to create a personalized path, with an activating introduction and some engaging exercises.

Images from the first school in which we held our session.

The Quiz

One of the most compelling moments during the session is the “guess what?” game. We present a photo and ask them if they know what is represented, and who is the person behind that image (e.g. Apple logo, Fortnite, Apollo 11, Ada Lovelace portrait).

We try to make an unconscious statement on their beliefs: half of the images represent the result of a woman’s work.
The game ends with Ada Lovelace, the first programmer in history.
Pretty, huh? 🥳

When we showed Corinne Yu and told she’s one of the programmers of Halo game, one boy said “Ah! It’s a woman!”, with a disappointed tone.

An 8 years old girl made a similar exclamation, but with a proud tone, when she saw the famous Margaret Hamilton’s portrait near the printed source code for the Apollo project.

Corinne Yu and Margaret Hamilton — Free of use images taken from wikipedia.org

The light bulb moment 💡

Every time we start a new session, the audience is listening in silence (often thanks to the teacher that screams and threatens the classroom 🤫), and stares at the colleague who’s started talking.
It’s difficult to interpret the silence in the room. Are they interested? Or are they bored?

Then, about 15 minutes later, they start the coding exercises, and the magic happens: most of them proudly smile after the first successful execution of their code.
Minute after minute, they are more and more engaged and have fun with their computer mate (most of the time they do a sort of pair programming since the teacher assigns two children per computer).

Then the Turtle moment arrives: they begin to experiment, to call each other to admire their creation.

Yes, we see children face changing during the session. Their eyes illuminate.
And so do we.

The tools we used

The languages

Python is one of the most used languages in the world these days.
Python has the Turtle to draw.

So, we decided to go for Python, even if none of us is a Python developer and… yes, we had to search for online documentation many times when the kids received errors while coding 😅!

We also made a couple of sessions in a first-grade primary school (kids aged 8 on average), and we went for Scratch (and an ambitious version of PacMan!).
They had a lot of fun… well, so much fun that at some point it was nearly impossible to make them follow the steps on the board, stop changing the colours of the sprites, moving things around the canvas creating draws and scenery.

The IDE

With so many concepts to deliver in only two hours, we don’t want to waste time installing software (we have a room with 10/20 desktops on average) or let the kids bother with folders and file creation. So, online editors to the rescue!

At first, we used repl.it, then we switched to trinket.io, because the first one has two different panels: one for the console output and one for turtle graphics, and it was confusing for the kids to switch between panels to find the results of their code.

Smiling faces from some of us during sessions.

Biases

It turned out that most of the biases were our own.
For example, we thought that kids see a programmer as an ugly nerd who’s sitting upset in front of a monitor. But they don’t seem to share this same vision nowadays.

A new era

Programming is about computers, a monitor and a keyboard, right?
This was true until the Smartphone era came.
Most of us are above 30 (and some above 40 😅), and we grew up in a completely different world.

We saw monochromatic terminals, with no graphical interface, so we still have a strong imaginary of programming as the act of writing lines of code on an ugly console (and… some of us still do, right ? 😇).
However…

  • kids don’t use physical keyboards at all, apart from the one from that older brother, or the ones they find in their technology room at school. And this leads to the next topic:
  • they hardly know how to type. They don’t know (on average) keyboard shortcuts, Copy&Paste, Selecting, the RETURN key.
  • And… not even the mouse 🐁 !
  • And that’s because… they use smartphones to write and play!

An interesting story is when our senior developer Simona said something like “we have to write programs because… well… we can’t tell the computer to do what we want by voice!”
And someone in the class replied “…why not? There’s Siri!”.
We looked at each other, knocked out by that simple statement.
Pretending that nothing happened, we went on with the session, unable to reply with a satisfactory concept.

Later on, we talked about it, and we understood that the kid was right: Siri (or Alexa, or whatever) are interfaces that allow you to tell a machine to do something, potentially a hard task for a human with no machine (telling the weather is hard as dressing-up/going outside/buy a newspaper/read the forecast).
You have to tell in a certain way: Hey, <assistant>, <command>, <parameters>

That’s not so different than an IDE where you write your code, with indentation and spaces between keywords.
Spoken language instead of writing programs. 🤯

Coding concepts

One of the examples we tried to give in order to teach the concept of variable is that a variable is like a box 📦, where you put things inside. Then we presented this simplistic code, about a hypothetical game to program:

score = 3000
. . .
score = 1000
print ”Your score is “, score

We asked, “what does the result will be, in your opinion ?”
And surprisingly, many of them told “4000”.

Here we understood that we took for granted (because we know already) that the "=”sign means deleting first, and then replace.
It’s the same concept as the mathematics expressions they do, but apparently “our” kids didn’t match them immediately.

Small, funny and moving stories

There are plenty of great moments that either amused us or filled us with joy.
These are some random ones:

  • That time when you tell them to insert a parameter in the loop, but the “brave” ones (both boys and girls) use a gigantic number to discover what would happen, and the browser breaks… and we have to restart it 💥!
    Interesting note: a teacher blamed the kid who didn’t follow our instructions, but it’s exactly the opposite of what we want them to do while coding: experimenting, have fun, don’t let the fear of breaking things stops you!
  • Our female colleagues received a couple of lovely hugs from younger girls. Some even called them “mum”!
  • There was a boy who acted differently than others. It was curious, he stared at what we were doing and spoke aloud about things related to his interests (football). Later on, we were told he had a form of autism, and that he had never been so interactive during the ordinary lessons in his class.
    We were amazed and moved. And proud.

What’s next?

After more than 10 sessions so far, we reached about 80 girls and about 80 boys. We really want to continue with this experiment, improve our sessions, simplify the concept, learn from what kids tell us, and make these two hours more and more educational and engaging.

What we learned

As developers, we can refresh our motivation and recognize some of our biases when we go out to schools to teach a few programming concepts.
Teaching code is fantastic: it’s funny, engaging, motivating, joyful.
And…we deal with children, and with their future!

It’s a HUGE thing.
It’s not like “Humm, I think I have to buy pasta for this evening dinner…”.
Nope. We’re sowing seeds among them. And yes, some seeds will grow up, some others not, but it’s a gigantic and fantastic responsibility.

I like to think that, someday, one of them will choose technology as a path because “that day a strange group of people showed me how to code, and it was funny”.

--

--

Carlo Sales
Expedia Group Technology

I'm a software engineer with over 20 years of experience in web applications. Currently, I am working on Expedia iOS app, leveraging Swift(UI) and UIKit