Beyond The Technology

Teaching Girls To Think Computationally To Solve Problems

Kim Bonnette
Women in Computing Newsletter
7 min readAug 22, 2017

--

Every year, my employer, Next Century Corporation, plans and hosts a Women In Computing Day to expose girls (aged 15 and under) to computing as a potential career path. I’ve volunteered in years past to assist various activities, but for the past two years, I’ve stepped up to be a session lead. As a lead, I get to:

  • Choose an area of computing to share with the girls who attend.
  • Plan a fun activity that’s engaging, educational, and (most importantly) fun!
  • Lead multiple groups of girls through the activity, tailoring it based on the group’s ages and abilities, and sharing ideas for additional exploration after the event.

This year, my session focused on computational thinking as applied to the medical condition known as “Locked-In Syndrome.” (described below).

What’s My Motivation?

I began each hour long session by introducing myself to the group of girls.

“Hi, everyone! I’m Miss Kim, and I’m a software engineer here at Next Century. I want to start by asking you all a question. Do you think computers are ‘smart’ or ‘dumb’?”

I gave them a few moments to think about the question, then asked them to share their responses.

Girl 1: “I think they’re smart because they can, like, help us do so much stuff. And they’re super fast!”

Girl 2: “Well, I think they’re dumb because you have to tell them what to do. They need directions.”

Most responses fell into one of these categories, and it was awesome that the girls were thinking through the how of their prior experience and knowledge of technology.

“Well, what do we call those directions or instructions for computers?”

Girls: “Code!” “Software!” “Programming!”

I explained that part of why I’m good at my job is because I’ve always loved logic games and puzzles, and I love my job because it gives me the opportunity to help people using problem solving.

Source: #WOCInTech

Although it’s important to expose the girls to the cool results of computing — what it can accomplish — and the process of designing and implementing code, I wanted to focus on the motivation. Why are we designing this software? Why are we writing lines of code using our programming language dejour?

When boiled down to its essence…

Computing is really just about solving problems for people.

So, what problem were we trying to solve? We wanted to help someone with locked-in syndrome to communicate. Locked-in syndrome is a condition (typically resulting from a stroke or traumatic brain injury) where a person is totally paralyzed except for the ability to move their eyes and to blink. They can see, hear, and think but aren’t able to speak.

We based our algorithm on the actual method used by journalist Jean-Dominique Bauby to write his own memoir The Diving Bell And The Butterfly after his . How was he able to accomplish such a feat?

  • His helper would read the letters of the alphabet.
  • When she got to the next letter in the word he wanted to spell, he would blink.
  • She wrote down the letter, then began the process again for the next letter.

Bauby and his assistant were faced with a critical problem (how to use his extremely limited mobility to communicate), so they devised a repeatable method to solve the problem. This problem-solving process is they key to computational thinking, and once this plan is devised (similar to a recipe), anyone — human or computer — can follow the steps and utilize the solution.

Journalist Jean-Dominique “dictating” his memoir to Claude Mendibi. (Source: http://io9.gizmodo.com/patients-suffering-from-locked-in-syndrome-can-speak-wi-1041389723)

Putting It Into Practice

The girls paired up and each took a turn as the person with locked-in syndrome and as their assistant. How did it work?

  1. The assistant would read through each letter of the alphabet. “Is it A? B? C?…”
  2. When the assistant reached the next letter needed in the word or phrase, the person with locked-in syndrome would blink.
  3. They jotted down the letter.
  4. The assistant would then repeat steps 1 through 3 until they’d written the whole message.

Without much guidance, the girls immediately began problem-solving and thinking about ways to improve efficiency in what was, essentially, a brute-force search strategy.

  • What happens if the locked-in person needs to blink “for real”?
  • What happens if you have two of the same letters in a row? Do we really have to start all the way back at the beginning of the alphabet?
  • Some of the letters hardly every get used. It sucks to have to go past them every time to get to the “good” ones.
  • It would probably save a lot of time to try predicting the word based on the first few letters like our cell phones do (i.e., a predictive text algorithm).

After everyone had a chance to try the brute-force method of searching for the desired letters (also known as a linear or sequential search algorithm), I introduced them to a more efficient method (known as a divide-and-conquer or binary search algorithm).

Source: Computational Thinking: searching to speak Presentation Slides

While the linear search takes an average of 13 questions for every letter (and 26 questions at worse if the letter is “Z”), binary search takes no more that 5 questions per letter.

Example of the basic linear (or sequential) search algorithm (bottom) vs. the divide-and-conquer (binary) algorithm (top). (Source: Penjee.com’s Blog)

So, What Did We Learn Today?

Without writing a single line of code, our aspiring technologists-to-be were able to think through a potential algorithm, find some of it’s shortcomings, and compare its efficiency to a revised algorithm.

They also learned:

  • Software engineering is about more than writing code that works — it’s about understanding the problem from the perspective of potential users and then coming up with a solution.
  • An algorithm is a precise, detailed way of accomplishing a task. Once the algorithm is created, people or computers merely have to follow the instructions.
  • Once we have a solution to our specific solution, we can generalize the strategy to be applied to other problems. For example, we used a divide-and-conquer method of playing the game 20-Questions. Rather than guessing every famous person we could think of, we asked questions that would eliminate large portions of the population (e.g., Is is a woman? Are they fictional? Are they alive?…)
  • When comparing our potential solutions, it’s important to look at the best, worst, and average case scenarios.

Oh, and for those who love trivia (such as myself), here are some fascinating tidbits about the inspiration for our locked-in activity, Jean-Dominique Bauby. The girls were amazed by some of these facts.

  • Bauby wrote the entire book by blinking just his left eyelid. (The right eyelid was apparently sewn shut due to medical complications.)
  • The writing process took ten months (approximately four hours a day).
  • It took Bauby about 200,000 blinks to write the book.
  • The average word took approximately two minutes for Bauby to “dictate”.
  • The book received rave reviews, sold its first 25,000 copies on the very first day, and went on to become a bestseller.
  • Two days after the book was published, Bauby died of pneumonia.
  • The book was eventually made into an award-winning and critically acclaimed film.

Resources & Additional Information

If you’d like to learn more about the activity or Jean-Dominique Bauby, links to additional resources and information are below.

--

--

Kim Bonnette
Women in Computing Newsletter

Tech geek, adjunct prof. of Computer Science, Sunday School teacher, writer, amatuer policy wonk, and self-advocate for mental health/illness and LGBTQ+ issues.