Computational Thinking

Rachel Pottinger is teaching UBC's first computational thinking class. Photo: UBC Science.

With the introduction of new K-12 curriculum in BC classrooms, phrases like computational thinking have begun popping up in the media. But while the term conjures images of coding camps, computational thinking isn’t about coding.

“Computational thinking is still thinking, but it’s thinking more precisely and in a systematic enough way that you could tell a computer how to perform a task,” says computer scientist Rachel Pottinger, who teaches Computational Thinking 101 at UBC.

This fall a team led by Pottinger and Will Evans, with the assistance of UBC CS alumni Piam Kiarostami and Jessica Wong, and Science Teaching and Learning Fellow Jessica Dawson, launched UBC’s first computational thinking course. It’s designed for incoming students who have no interest in becoming computer scientists.

The term computational thinking was popularized by Jeannette Marie Wing, formerly with Carnegie Mellon University and now a vice president with Microsoft Research. In 2006, Wing published a widely shared article pushing for computational thinking in schools.

“Professors of computer science should teach a course called Ways to Think Like a Computer Scientist to college freshmen, making it available to non-majors, not just to computer science majors,” wrote Wing. “We should expose pre-college students to computational methods and models.”

A lot has changed in the 10 years since Wing’s article. The United States unveiled a Computer Science for All Initiative this January, which integrates computational thinking into the curriculum. The United Kingdom has required computing in schools since 2014.

UBC’s call to action came courtesy of computer scientist and UBC alumnus David Cheriton in 2014. Cheriton, a Stanford professor and a founding Google investor, donated $7 million to establish a new chair in computer science, and $535,800 to create the first-year course in computational thinking. Cheriton doesn’t believe the job of a university is to cram students’ heads full of facts, but to teach them how to think and problem solve.

David Cheriton donated $7 million to create a new chair in computer science and $535,800 to create a new first-year course in computational thinking. Photo: UBC.

Digital native? Not so fast

All this might not give you a good picture of what computational thinking looks like. So, imagine you want to teach someone how to perform a magic trick: pulling a rabbit out of a hat. You’re going to write the trick down. You would need to specify what materials you need. A top hat or a baseball hat? A live rabbit or a stuffed one? You might need to specify a sequence of actions. Are there any words you should say? Once the process is carefully broken down a computer should be able to read your instructions and pull out any number of rabbits out of hats. But if you’re not precise—say you forget to specify a type of hat and the computer decides to use a beret—programmatically, your trick won’t work.

This is what computational thinking is about. But there’s more.

In Pottinger’s class students learn basic concepts used in computer science, such as the definition of an algorithm, and then explore its applications, for example, artificial intelligence. Importantly, they discuss the impact these applications have on our everyday lives, analyzing how computer animation changed the motion picture industry or why certain ads “follow you” around the Internet.

You might think today’s undergrads don’t need these kinds of lessons. That they are somehow hard-wired to technology and instinctively come equipped with the knowledge they need to navigate digital environments.

But to Pottinger, that image doesn’t ring true. Dealing with technology isn’t any more natural to a student than learning how to read just by holding books in their hands.

“Many students have misconceptions about what artificial intelligence is capable of,” she says “I've had students ask me if HAL from 2001 is real. I've had students tell me that they think that Google Translate does a bad job on purpose so that they can make people actually pay for translation software. No, that's not the case! It's just a very hard problem!”

Pottinger says two decades ago life with computers was simpler. “Today we're sent e-mails with links in them from legitimate sources. Showing a student how to know when a URL is actually likely to be affiliated with the organization that it claims to be from teaches them how to protect themselves.”

UBC's computational thinking class looks at fundamental computer science principles and concepts, not just programming. Photo: UBC Science.

Although computational thinking is not a coding course, students at UBC work on a visual language in lab called Snap, which allows them to understand some programming concepts.

Shifting perspectives

Aside from providing students with analytical skills, computational thinking could help close the gender gap in computer science.

We are not sure why the enrolment of women in computer science dropped in the 1980s, but some researchers believe a narrative that computers are for boys took hold. A 2015 study of 270 high school students by University of Washington researchers showed that three times as many girls were interested in enrolling in a computer science class if the classroom was redesigned to be less ‘geeky’ and more inviting. Other studies seem to show women prefer computer science classes which emphasize the practical applications of coding.

Kiarostami earned a degree in biology from UBC Science before deciding to complete a second degree in Computer Science. Since then he’s worked at startups in the Bay Area. The background meant he was well positioned to help develop modules and labs for UBC’s computational thinking class.

“People have this idea that people studying computer science are robotic, but that’s not true,” he explains. “Computer science is more about humans than about computers. There’s a lot of us who don’t love programming—it’s a means to an end.”

Kiarostami believes classes like computational thinking can teach students that the field is broad, and that they don’t need to be engineers to take advantage of certain tools. He’s a perfect example of someone who didn’t initially see himself as a computer scientist.

There are road blocks, though. The introduction of the new K-12 curriculum in BC has generated anxiety around funding issues and inadequate access to computers. Critics have also said many educators don’t have the training to teach the new classes.

However, many educators, such as Pottinger, believe computational thinking is here to stay. In her class, students have looked at the mobile game Pokemon Go to understand the concept of secure and insecure servers, discussed what businesses can do with your personal information, and talked about the possible impacts of artificial intelligence on the workplace.

Arthur C. Clarke famously claimed “Any sufficiently advanced technology is indistinguishable from magic.” At UBC, the hope is students will learn computer science is helpful and tangible—more sleight of hand than Harry Potter. And the ultimate goal for Pottinger is to empower students, so that instead of viewing themselves as passive users they can become creators.