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

Thursday, April 28, 2016

'Take Your Kid to Work Day' Coding Workshop with ScratchJr

A new professional development day was recently added to our local school board's calendar. One of my colleagues, John Duff, made the brilliant suggestion to have a 'take your kid to work day' instead of scrambling to find babysitting. Naturally, I suggested we also add a coding workshop.

Little did I know that most of the kids in attendance – my own included – were between 4 and 7 years old. Grade 4 or so was the youngest I'd ever worked with before, and the idea of teaching kindergartners was especially foreign. Thanks to the helpful advice of a few kind folks (especially Kate Arthur of kidsCODEjeunesse), the workshop turned out great!

To prepare, I read through a bunch of The Official ScratchJr Book from No Starch. The book is awesome, and I definitely plan to use it to continue working with Molly. One thing that I especially liked was the curriculum connections listed out at the end of each chapter. If you happen to be a kindergarten teacher, and have access to tablets, I highly recommend checking this book out.


In case you want to run a similar workshop, here's a bit of info on what we did. The workshop was held in our coffee shop. We moved away a bunch of tables and set up our bear beanbags in a semi-circle in front of the projector screen. I AirPlayed an iPad to the screen for demonstration purposes. To get the attention of the kids, we did a "hands on head" thing: everyone, parents included, had to have their hands on their heads before I talked about the next thing.


Before the workshop, I sent out a doc with information for parents containing the following key information.

 What we'll be doing
We will be working with ScratchJr, which is a visual block-based programming tool. While not required, you might like to learn a bit about the tool ahead of time. On the website, you can get an overview of the interface, the sprite editor, and what each block does. There are also videos with tips
ScratchJr is officially intended for ages 5-7, but the appeal for this workshop should be broader. That said, older children might prefer being a “helper” for a younger sibling and/or trying out the web-based Scratch instead. The older kids could get the basic ideas in ScratchJr first, and if they get bored, they should be able to pick up the main ideas of Scratch fairly easily. 
We have arranged to bring iPads for those who said they needed them.
We recommend bringing your laptop with you, both to look things up about ScratchJr, and to switch to Scratch if desired.
During the workshop
The assumption is that you, as the parent, will sit with your kid the whole time and work with them on their projects.  If you are bringing two kids, you may choose to have them work together or separately. We are hoping to have extra volunteers who would be able to help if they end up working separately. 
We hope to have those participating in the workshop up near the projector, “circle time” style. We should use comfy chairs and beanbags to sit on in a generally circular shape. 
One of the techniques we plan to use to gain attention of the kids is “hands on head” – when we ask kids to do this, it would be great if parents did it as well. Once everyone’s hands are on their heads (and therefore not touching the tablets/computers), we can starting talking up at the front. 
Super important: Try as much as possible to not do anything for your kid. Make sure that you guide them, ask them questions, perhaps even make suggestions, but not do it for them. 
Try to stop your kids from playing with other apps on the iPad at first (perhaps turning off wifi will help?). Later on, if they get bored of working on their own projects, they might enjoy sharing their favourite apps with the other kids.
General workshop plan
  1. How to add a new sprite and edit it.
  2. How to add a new background.
  3. Example blocks (will ask kids what they think the blocks do before showing them; time to play will be after all blocks):
    1. Move right (what does the number change?)
    2. Turn left (what does the number change?)
    3. Say (how could you have it say your name?)
    4. Play recorded sound (try recording your voice!)
  4. Example of snapping blocks together (can you guess what will happen?)
  5. Start on Green Flag:
    1. Have them add this block to the beginning of a script (suggest a bunch of movement blocks to make the character dance)
    2. Have them press the green flag button at the top
    3. What happens?
  6. Repeat forever
    1. What happens if you put a repeat forever at the end of the script, then press the green flag?
  7. Save your project! Go back to the home screen to save
--

I was pleasantly surprised that we managed to keep the attention of the youngest kids for a whole hour. Later, at lunch, several of the girls excitedly exclaimed how much they loved working on the iPads / playing with ScratchJr. Music to my ears!




Sunday, April 17, 2016

Mastering Difficult Conversations

Do you dread bringing up a problem in your relationship because you know your partner will be blinded by emotion? Are your 1:1s at work just happy recaps of your weekend because nobody wants to bring up the hard issues? Sometimes conversations are just plain hard, but it is possible to learn how to have them effectively. I've personally learned a lot from Difficult Conversations: How to Discuss What Matters Most, and have even put some of it into practice already.


The book introduces three conversations that are really taking place in a difficult conversation: what actually happened, how feelings factor into it, and how the participants' identities might be affected. When you're about to embark on a difficult conversation with someone, you should first walk through each of these three conversations to sort out where your story came from as well as the other person's, to "explore your emotional footprint," and to reflect on what's at stake in terms of how you see yourself.

Then, you need to determine what your real purpose in the conversation is. Generally, it's a good idea to come from a place of learning, which means keeping your mind open to the fact that you could have been wrong about how you viewed the situation.

When it's time to talk, you want to start from the "third" story – that is, you need to "describe the problem as the difference between your stories." You have to pretend you're an innocent bystander, and invite the other person to become your partner rather than your adversary in sorting out the problem in front of you.

During the discussion, you have to be an amazing active listener (so much easier said than done!). Acknowledge, paraphrase to check understanding, question...and continually reframe to keep on track. Then, finally, you can get to the problem-solving stage.

A few key takeaways for me:

  • Never lay blame; instead, talk about contribution, and try to reframe the conversation to help the other person do the same. Every problem arises because of contributions from both sides, even if the split is 95% to 5%.
     
  • Pay special attention to feelings. They are always there, and they can get really complex. Even in a professional situation, it is ok – and important – to discuss how various actions and outcomes make you feel. It can help to sort through feelings before the conversation so you can unpack complex bundles of emotions and better explain your perspective.
     
  • Be mindful of your identity, and how it has been affected by the problem you are facing. The reason that the conversation is so difficult might be because you have to face the fact that you may not be acting in alignment with how you see yourself.
     
I've used the ideas in the book already to talk through how a friend might be able to approach their next 1:1 at work. The feelings story was of particular importance in this case, and not something that my friend would have talked about normally.

I have also found the knowledge useful when faced with a difficult conversation started by someone else. Where I might have normally become defensive and frustrated, we were able to resolve our problem somewhat quickly. (Now I just have to make sure I don't do the same dumb thing again.)

I think this book would likely have something useful in it for just about anyone. If you're in a leadership position of any kind, it will be all the more valuable.

Wednesday, March 23, 2016

Annedroids: A STEM Show with a Positive Impact on Girls

Some time ago, I shared info about a STEM show that premiered on TVO back in 2014: Annedroids. Recently, the show's PR specialist followed up with me to share some really interesting research about the positive impact the show has had, which I'd like to share here.


A recent study led by the International Central Institute for Youth and Educational Television (IZI), involving 301 girl and boy participants from the United States of America and Canada, revealed the following: TVO’s and Amazon Prime’s show Annedroids helps increase self-esteem, foster interest in STEM (Science, Technology, Engineering and Math) in girls, and reduce gender stereotypes in girls and boys.

The need for positive role models for girls in STEM areas

There is still a considerable degree of catching up to do in regards to fostering interest in STEM subjects, especially among girls. As scholars have noted, the reasons why girls don’t get interested in STEM issues and don’t choose their professions from among STEM areas to the same extent as boys are complex. The stereotypical assumption that STEM is – by gender – a strength of boys, still prevails and there is a need for positive role models to demonstrate that girls can be competent in science and technology fields. The media, especially children’s leading medium, television, can play a key role in this respect, but so far it is still an exception that girl and woman characters apply technology at all. Unfortunately, children’s TV overall misses its gender equality mission especially in what concerns STEM. One of the few exceptions: Annedroids, a series showcasing 12-year-old Anne who builds and operates androids and robots. Together with her lively and slightly overweight friend Shania and her Afro-Canadian friend Nick, she experiences various adventures with the technical companions. In every episode, the humorous and child-appropriate plots pick up a STEM-relevant topic.

A study in the U.S. and Canada

In a recent study led by the International Central Institute for Youth and Educational Television, research was conducted with 301 6-to-12-year-olds (U.S. N=203, Canada N=98). The children watched two episodes of the Annedroids series. Before and after watching these episodes, they filled out questionnaires assessing their attitudes toward STEM and girls, positioning in regards to gender stereotypes, specific scientific knowledge, and interest in having various jobs in the future. With open questions and drawings, children gave feedback on the show and its characters.

The results of the study give clear indication that the program Annedroids helps increase children’s interest for STEM issues, with girls in particular benefitting in the process. This is because children have an opportunity to see in this TV series girl characters who are interested in STEM, are skilled in operating new technologies, and are good at problem-solving, and because these characters can serve as role models for girls. Thus, the program makes STEM issues accessible to children by providing access to knowledge that is more restricted for girls than it is for boys due to their gender-specific socialization. The study further suggests that regular viewing of the programs can help reduce gender stereotypes by promoting gender fairness and equality in regards to STEM education and professions – for a small (yet statistically significant) number of children this was the case after watching just two episodes.

Dr. Sorin Nastasia, a contributor to the research and a professor at Southern Illinois University Edwardsville, states: “The Annedroids series is successful by featuring fictional characters who show that it is possible to be enthusiastic about and competent in science and technology regardless of gender, colour of the skin, or other social factors.” The lead researcher in the study and director of IZI, Dr. Maya Götz, concludes: “The show offers girls the inspiration that they can be what they want to be and can use technology to make this world a better place.

Episodes of Annedroids are available on tvokids.com and on air on TVOKids Wednesdays at 6:30 pm (episodes repeat on Saturdays at 11:00 am and Sundays at 12:30 pm).

Tuesday, March 8, 2016

My Nonlinear Career Path

I've had a really nonlinear career path. One step forward, two step sideways, new goal, start it all again...


My interest in computers started at a young age. I was lucky that my dad, a government worker, was able to bring home the computers his office was done with. As a result, I have had access to computers, and even had a computer in my own room, from a young age.

I've always loved to create with computers. From writing stories to designing newsletters for my Guiding troupe, I was always making things. Even today, I make digital scrapbook pages!


In high school, I started becoming more and more curious about how things work "behind the screen," so to speak. How do you write code to make a word processor? What's the math behind vector graphics? How does computer hardware, at the lowest level, add two numbers?

I decided I wanted to take computer science in university so I could learn all this and more. I didn't learn how to program in high school; instead, I took drama and music while I still could. But I was pretty sure I'd love the world of code whenever I eventually entered it.


Turns out I was right. I also loved working in the industry during my co-op terms. One of my jobs was at Ross Video, working on software for a video production switcher. The other was at Corel, where I worked on the text engine for Corel DRAW, software I had used for many years in my personal projects.

Nearing the end of my undergrad, the most difficult decision I faced was which of these two companies I would try to work at full-time. I never thought I'd do anything other than go to industry.

I was going to be a software developer.

Until, that is, a professor approached me and convinced me to consider graduate school. The catch? The application for the big scholarship was due in a week. Well then.

Image adapted from Ivory Tower by OfTheDunes

I applied, and I got the scholarship. So I went to grad school for my Masters. I had a great time, and even got my start in outreach, but learned something very important: I didn't care for the low-level, experimental nature of my thesis topic, and wished I did something more applied.

I decided to continue on to my PhD, choosing storytelling in videogames as my thesis topic. I engaged in educational games and computer science education research on the side. I also took the opportunity to gain more teaching experience. I eventually realized that education was my passion and I wanted to teach.

I was going to be a university instructor.

After some contract work, I got a two-year term position as a full time faculty instructor. I made an impact with some innovative course designs and a lot of hard work in outreach and diversity. But when I tried to get a permanent instructor job, I missed it by a hair. Although I was not yet finished my PhD, I didn't really fancy going back to being a full-time student. Instead, I figured: why not go back to industry and be a software developer again?

So off to Shopify I went. I joined the Home team, working on the first page merchants on the Shopify platform see when they log into their admin. I learned both Ruby and Rails, and finally had a chance to try real-world web development.

I quite enjoyed working as a developer, but it was a step sideways from my goal of teaching. However, in the fall, an opportunity arose.

I was going to jump back into education once again!

Starting this past January, I became Manager of External Education Programs. I'm working on some really exciting education projects, including a sponsorship of the Ottawa Network for Education's AppJam. I get to create curriculum, teach, and even create a team of similarly passionate folks here at Shopify.


So while I have taken some steps back in my career, and some other steps sideways, I find myself feeling very fortunate to end up where I am now. So if you ever find yourself on a really windy career path, don't fret: go with the flow, and see where it takes you. You might find yourself ahead of where you expect, even if it you hit your goal at a bit of a strange angle.