Friday, May 13, 2016

Innovation Needs Computer Science

On Wednesday, I gave a talk at an event called Ignite that brought together government and business folks to talk innovation. There were four lightning talks of about 5 minutes each, and mine was on computer science education. Below is a transcript of my talk.

This event is not focused only on technology innovation, but let’s face it: technology is everywhere. Computers are everywhere. And yet, most of us are just consumers of technology, rather than producers. I’m willing to bet that this applies to many of us in this room.

There is so much to gain from learning computer science, not least of which is to think in a new way: we call this computational thinking. You gain skills applicable to so many areas of life, like decomposition, pattern recognition, abstraction, and algorithm design.

And, if you learn to program on top of it, you can learn how to automate the really boring, menial tasks you may be completing manually right now. ;)

More generally, with some computer science knowledge, you can create things instead of relying on others to do it. How empowering!

Based on the benefits, I believe that innovation will increase as more Canadians understand at least some computer science.

So why aren’t more of us learning it?

There are two big factors that contribute: misconceptions about what computer science is, and problems with computer science education.

One of the biggest misconceptions of computer science these days is that it is just about programming computers. Many people aren’t interested in learning to program for the sake of it. However, computer science is actually not equivalent to computer programming; it’s about solving problems. It just so happens that programming is one of the tools used to realize a solution.

We have some cultural problems for computer science as well. Who do you picture when asked to imagine what a computer programmer looks like?

The Nerd

Perhaps more importantly, what does Hollywood have to say about it?

Even worse, an awful lot of people believe in the “geek gene”: you either have the brain for logic and programming, or you don’t. This is known as fixed mindset, but what we really want is growth mindset: the belief that anyone can do it if they are willing to put in the time and effort. You don’t have to be a genius to learn computer science; you don’t even have to love math.

And best of all, your main job doesn’t even have to be as a computer programmer! Because computers are everywhere, you can pick your passion and use computing to solve problems in that area. (That’s the thing that excites me the most about CS – you can use it to the solve problems you care about and made a real impact on the world.)

Unfortunately, even if we are able to clear the misconceptions of computer science and get more folks interested, we still have the issue of effectively educating them. A lot of people are interested in learning computing in theory, but don’t pursue formal education opportunities. The way we teach computer science just isn’t appealing to most.

For example, women are severely underrepresented in computer science. It’s difficult to recruit women and other underrepresented groups, and it’s even harder to retain them. Members of these groups face issues like stereotype threat and low confidence in their abilities compared to the majority group of white and Asian men.

Ensuring students get insight into what computer science is in K-12 is a big help. But K-12 teachers are generally not trained in computer science, and don’t know how to teach it. Beyond that, the lack of confidence many have of their ability to learn and do computer science affects their students’ beliefs as well, not unlike what happens with math.

Computing education research is also in its infancy. We are just scratching the surface on how to effectively teach computer science, especially to beginners. Pushing this research forward, and finding more effective ways to share results with teachers, is important.

So what can we do?

  • We need to give students in K-12 a more accurate picture of what CS is, and teach them fundamental skills so they can become producers sooner.
  • We should also scale informal education to help achieve this goal.
  • Curriculum and pedagogy at all levels should be carefully redesigned to be inclusive and engaging to a broader range of students.
  • Related to this, we need to support and encourage faculty in Canada to pursue computing education research.
  • We need to actively recruit underrepresented groups – “build it and they will come” does not work here.
  • We need to change the culture around CS and programming. This may be the hardest task of all if we don’t get broad buy-in, including in Hollywood.
At Shopify, we recently started building a new team that hopes to contribute to each of these issues. My role is Manager of External Education Programs.

Since we began earlier this year, we’ve started forming partnerships with educational institutions and experimenting with new learning models for computer science. We care about making learning computer science better for everyone, where “everyone” is as inclusive as possible.

I hope that everyone here today will also play their part, even if it’s just to spread the word about what computer science is really all about to the people you know.

Let’s make change together.

Photo by Matthew Usherwood