Teaching Girls Who Code: Week One

Today was my first day volunteering for Girls Who Code — a charity enabling girls between grades 6 through 12 to code. It was also my first time in the Bronx, a sorry record to have accrued over five years living in New York. At least it was my own actions that brought about this change — it’s never too late, right?

It didn’t start well. I’d felt thrown into the deep end — expected to run a course over the fall with limited teaching experience and nothing but a Google Drive full of READMEs and checklists. The other volunteer was late, so I twiddled my thumbs for half an hour and made small talk.

The other volunteer is an international student who is interning — she is a post-grad at MIT. Thankfully she has helped with the summer session that just ended and has some grounding in the curriculum. She is also a lovely human being, which helped me work through my frustrated state.

Only three students were there, and they were friends, so we got started with a few questions to test their levels. All beginners to programming, but familiar with the machines. The other teacher delved into the intro material and I started to balk. Nothing is less exciting to kids than the words “computer science”. I kept referring to it as coding — as cool as NdGT (@neiltyson) is, the word “science” still conjures up images of stolid white men in lab coats.

The motivation behind this volunteering effort for me is finding ways to inspire a young generation to learn the skills they need to express their ideas. To create their art. It’s also damn handy that said skills are ever in demand and show no signs of slowing.

I tried out an approach I’d been mulling over to explain the idea of a “program” to newcomers.

I told them I was starting a program called “pencil”. I asked each student their name, and then handed them a colored pencil. I wrote down the steps of “pencil” in basic English: ask student their name, give student pencil.

I then asked them how many times I gave out the pencils. They said 3. I said what does that number represent — why 3? They answered: three is the number of students.

So the program had become:

for each student
— ask student their name
— give student a pencil

Voila — simple loops and blocks. It didn’t completely cement, but I do think there is something in this approach. Coding is often defined as telling a machine what to do. The approach I’m going with is that coding is a way to articulate activities or tasks that exist throughout the everyday world — from simple interactions though to complex relationships — the things they already understand, if only at a subconscious level.

The majority of the course revolves around a visual programming language called Scratch (https://scratch.mit.edu/). The students got started and figured their way around the app quite quickly. It reminded me of a cross between the Flash authoring tool and something out of a Brett Victor (@worrydream) presentation.

As they figured it out, I followed along and started to get it as well (Sprites, Costumes and Backgrounds were distractions I could have used without). As one picked something up, I’d encourage them to teach it to another.

A few more students came, and inevitably, the dynamic shifted, as the newbies were excluded (didn’t help that the lab had only three machines per row). However, they slowly started catching up and making some progress, as both the other volunteer and I had the time to help where we could. Unfortunately — the latter group were less grounded and distracted each other often.

Nonetheless, I was pretty pleased with how the entire class had absorbed the main lesson of the day: loops.

Right near the end however, something quite extraordinary happened. One of the students — the youngest — completely astounded both of us volunteers with a little tweak to her program (see the video below).

One student’s creation

The energy that rippled across the students as they saw this beautiful shape she created was palpable. All of a sudden these 12 year olds were frantically writing down code and exploring all the ways they could make unique and colorful drawing algorithms.

The beauty of that simple discovery, and the endless possibilities of creation that started dawning on them as they started tinkering with their programs, was an incredible thing to behold.

I have no illusions every week will be as positive or as satisfying. But if even I, a seasoned engineer, could walk away feeling inspired by the simple beauty of a child’s creation after a couple of hours tinkering, then the gift I’m giving has already returned itself in kind. Tenfold.