Aujourd’hui je code!: teaching girls to code

By: CriteoLabs / 29 Jan 2018

The last day of November 2017 was a special day: about 40 students came to visit Criteo, discover our company and learn to code with close monitoring from experienced programmers.

Why holding “Aujourd’hui, je code!”?

At Criteo, we are coders and we thoroughly enjoy the creativity that computer programming unlocks. Programming is a lifelong learning experience, which is enjoyable whether you start earlier or later. But starting earlier is clearly the best!

As we use computers of all kinds in our every day life, it becomes even more important that more people get access to coding lessons, and that more teenagers prepare for computer science careers. Philosopher Gilbert Simondon wrote in 1958: “Les objets techniques qui produisent le plus l’aliénation sont aussi ceux qui sont destinés à des utilisateurs ignorants.” (technical objects that alienate the most are those targeted at ignorant users).  If we don’t want people to become alienated from their own computers and other smart devices, we need to keep teaching programming.

A day to discover the world of engineering with women

With the Women in Engineering group, we wanted to share our knowledge of programming with younger people, and more specifically girls. Indeed, statistics are telling: women are a minority in computer science. Criteo R&D is no exception. Girls are clearly more prone to alienation from technical objects than boys. They also tend to receive less encouragement to follow a computer science career. Strengthened by a push from the upper management, we organized a full day for them to discover our environment and make them code.

We partnered with the CGenial foundation to find volunteers from underprivileged high schools. Thanks to their help, close to 40 students came with their teachers from a variety of backgrounds, aged between 16 and 19.

We had close to 20 Criteos to help for the teaching sessions, and a dozen more to present Criteo, explain a programmer’s daily life and find the best food and goodies.

Muleine presented Criteo R&D at large. We then split into four groups for the first coding session. After a delicious lunch (hamburgers!), the students were guided through a tour of the office, during which a few Criteo teams presented their work:

  • The Integrate team explained how the software that our clients use to validate Criteo banners works and interacts with other softwares,
  • The Infrastructure team talked about the role of infrastructure in a web company and showed off pieces of hardware: a server and a rack, as can be found in our datacenters,
  • The Reco team taught the basics of recommendation algorithms.

Aïda talking about Infra

The tour ended on the amazing Criteo rooftop, a nice opportunity to take group photos and selfies with the Eiffel Tower and Sacré-Coeur. After a second coding session, the day ended with a soft drinks cocktail around a chocolate fountain. Organizing all this required a lot of hard work, with a large part of the effort put on creating programming lessons tailored for our visitors.

Tour of Criteo’s rooftop

A real coding experience

We prepared 4 coding exercises, tapping on diverse creative skills:

  • Creating music with Sonic Pi,
  • Writing code to explore their Facebook data,
  • Creating their own image filters,
  • Build a working game.

With two sessions of one hour and half each, the girls were given the chance to discover different aspects of programming. Most of them had only very basic, if any, experience with coding. We wanted to give them a real feel of the coding experience, and most online programming platforms were too constrained for that. Scratch is great, but targeted at younger kids.

Some of us had experience using Sonic Pi for teaching. It’s very useful to teach basic concepts to beginners, and it allows for infinite creativity. We loved it and wanted to use it. We also decided to build new teaching programs with the following ideas in mind:

  • Allow for maximum creativity: they should be able to play indefinitely with the program,
  • Have a diversity of creative skills involved: we had music, we wanted something around images/videos, storytelling, gaming…
  • Make them implement code of increasing difficulty,
  • To limit the risk of blocking on “stupid bugs”, create a working program, and let them modify it:
    • either to add some new functionalities,
    • either to make it work again after removing some key elements.

That’s how we came up with Facebook explorer, Picturesque, and a ColorSwitch-like game.

With the close help of the teachers, the teens discovered new uses of what they learned in maths or physics classes, like using trigonometry to draw a star or how to reproduce the feel of gravity laws to make a ball move in a game.
They learned gaming programming tricks, how to adapt the code to animate objects, handle the mouse, connect widgets. They learned how colors work for digital images and how they can play with pixels. They colorized the output of the webcam with fancy flag colors. They learned how to extract statistics from their Facebook feeds – and showed us old people that Facebook isn’t trendy anymore (they had almost no data on Facebook!). They also learned how to write music as code.

Teaching sessions and snapshots from our programming lessons

The students displayed some nice creativity, though most of them clearly were not used to learning by trial and error, with no barriers on what’s allowed. They tested the limits of our programs (“what if I add a thousand widgets?”, “what if I repeat the camera image a 100×100 times?”, etc.)
Most importantly, they learned that programming was much more than just sitting behind a computer and writing line after line of code. As a lot of teachers were women, they could relate to us and see how obvious it was we were passionate and happy programmers.The students displayed some nice creativity, though most of them clearly were not used to learning by trial and error, with no barriers on what’s allowed. They tested the limits of our programs (“what if I add a thousand widgets?”, “what if I repeat the camera image a 100×100 times?”, etc.)

Students were grateful: we want to reiterate this event!

These young women are at a turning point in their lives as they are thinking of a career choice. Even though they might not choose coding as a career, at the very least they will be able to take an informed decision. At the end of the day, seeing the bright smiles on their faces was the best of rewards. We had a very positive written feedback from a few students. Here’s an extract, loosely translated from french: “I loved the joy they communicated, and their desire to create and program while discovering new things”.

Stay tuned! More goodness is coming up:

Thanks to the Criteo Women in Engineering for the valuable feedback and improvements on the article!

Post written by:


Anne-Marie Tousch

Machine Learning Scientist

Twitter: @amy8492

 

  • CriteoLabs

    Our lovely Community Manager / Event Manager is updating you about what's happening at Criteo Labs.