Rethinking How We Teach Coding To Teens
President Obama wants all students in America to learn to code. He’s joined by leaders from Google, Facebook and other tech giants who are throwing their names — and dollars — behind this national push to expand computer-science education.
Teaching kids to code is, among other things, what we do for a living. But at this moment of national enthusiasm, we want to pose a key question to the “code for all” movement.
Code for what?
It’s great that earlier this year, Obama set aside more than $4 billion in federal fundingto help teach teens to code, so they can drive innovation and power the future economy with well-paid jobs. All this investment will help teens become successful creators in the digital age while achieving upward mobility — something we work toward every day at Youth Radio. Most of our students are youth of color whose schools don’t teach coding, and who don’t see themselves reflected in the tech workforce, which is still mostly male and white.
But not all code does good in the world. While a weekend hackathon or Javascript summer camp are great for exposure, it’s disingenuous to suggest these isolated experiences would prepare a young person for a full-time engineering gig at Snapchat. Laboring for months to make a glitchy website no one visits can leave kids discouraged, not hungry for more. Not surprisingly, plenty of projects built with code — video games, for example — reinforce stereotypes of the communities least likely to be among their makers: women and people of color.
To realize the promise of next-generation, computer-science education, coding needs to be seen as a place to begin, not an end in itself. Students need to be prepared to ask themselves, again and again: What is the purpose, value and impact of the thing I’m making? Is my product, and my process, part of a solution or part of a problem?
We frame this approach to computer science education, which puts civic questions front-and-center, as a form of “Critical Computational Literacy.”
Here’s an example from our recent class. Teens are given a challenge: Build an app that promotes youth health. The group decides to develop a simple tool that allows teens to reflect on how they’re feeling on a day-to-day basis, without causing harm to themselves or others. Namiye Peoples and her team work on a set of designs for a mobile app based on surveys with 70 of their peers plus interviews with mental health professionals.
The app, Mood Ring, invites teens to track their feelings through any combination of nine emojis plus written reflections. “After user research, we added daily affirmations,” Peoples says, because teens wanted to see something positive each time they logged on. The Mood Ring team is now refining the functionality that prompts users to reach out to a select network of trusted friends when they’re feeling down.
To make Mood Ring and other projects like it, young people had to learn to code. But they also had to tap their deep knowledge of unmet needs in their communities. For example, the team made sure their app didn’t pathologize sadness or anger in youth who are regularly exposed to violence and other sources of trauma.
Instead, Mood Ring builds self-awareness and combats isolation. “There are a lot of other kids right now going through a lot of life problems,” says Peoples. “Their phones are what they keep so close to them.” Anticipating the publication of Mood Ring, Peoples says, “It will create a change. And we did that.”
That’s Critical Computational Literacy, a process of creating technology that combines computational thinking and consciousness about social issues. The idea is to connect individual gain to public good.
There’s a side benefit to Critical Computational Literacy: unstoppable student engagement. When young people produce tools that communicate and transform challenging issues in their communities, they keep cranking out line after line of code — not to win a prize, or to get a grade, but because what they’re doing is that important.
The public and private investment that’s coming in to expand computer science learning is a huge opportunity. But promises of future employment are not enough. We need to look carefully at specifics in the curriculum we support. Do programs make an explicit connection between computer science skills and a larger social purpose? That’s what’s needed for youth truly to become active, empowered citizens in our technology-driven world.