Teach kids to code. You can’t get away from
this advice lately. Today everyone — from educators to industry leaders to
policy makers — is talking about computer programming. In the past few years, it
has gone from the once obscure purview of computer geeks to one of the hottest topics in
education. Now startups and nonprofits are creating products and services to
meet the demand. Online courses, iPad apps, after-school clubs, weekend
hackathons and summer camps are sprouting up every day to teach kids to code.
But is that enough? If coding is to reach every student, can we really
relegate it to these outside sources? I would argue that coding is an essential
skill in the digital age, so it should be part of our core education system — an
in-school program in every public school — so that all students get the chance
to learn it, not just the lucky few who have access to after-school clubs and
Not everyone agrees with me. The main argument against this idea is that
public schools lack the resources, in both time and money, to add yet another
core competency. But the truth is, it’s possible to use school resources to
teach every student to code. We’re doing it in my district right now.
Los Altos School District (LASD), a K-8
district in the heart of Silicon Valley, California, has been growing its coding
program over the last five years. Here are three key features that have led to
1. Integrate coding into the curriculum.
Instead of starting with an elective for computer science, create a class
that is required for all students. Better still, integrate it into the core
curriculum for a math or science class, or maybe even art.
This approach gives every student exposure to coding instead of just the ones
who are already into computer science. It will include students who may not be
doing well in math as well as those who don’t think computer science is for
them. It will include English language learners and even special education
“I really enjoy programming,” one LASD student wrote. “When I create a game,
I feel a huge sense of accomplishment. I'm so glad that this is something we do
during school, otherwise I never would have discovered programming.”
In LASD, computer programming using MIT’s Scratch started as part of an art class
called Digital Design. Today it is integrated into a required class called CSTEM (the C
stands for creativity, collaboration and computer
on Khan Academy’s CS platform and Arduino
, to create art,
make math games, build science simulations, and program fun games for their
siblings and friends.
LASD started its CSTEM program with the sixth grade, since this is the
critical entry point into middle school where students have not yet developed
set gender roles. Both girls and boys participate in equal numbers in our
district computer science showcase, which is evidence that this approach works.
Many girls who did not think they would like programming are surprised when they
discover it. Give every student a chance to try this skill and you may find that
the infamous computing “gender gap” never arises in your school.
Coding is for students of all ages too. Last year, LASD extended the program
to all K-5 students through our elementary school STEM program. Our K-2 students
program Bee-Bots to move
on the floor, and the third through fifth graders bring Lego projects to
life using Scratch. These young students are getting ready for the more
intense computer science classes they’ll have in upper grades.
2. Encourage collaboration.
Computer science can quickly get difficult. Working with a partner can make
the difference between giving up in frustration and moving on to finish a
project. Collaboration also makes coding more fun. Group projects turn it into a
social activity, which engages all students, including girls. Let students pick
who they work with whenever possible and they will like the class even more!
At LASD, we often have our students do pair programming projects. We have
found that this approach is very efficient. There are fewer projects for
teachers to monitor, the students solve more problems together, and everything
The rules of pair programming are simple:
- Each pair of students must share a single computer.
- One student acts as the “driver” and takes control of
the mouse and keyboard.
- One students is the navigator, whose responsibilities include checking
instructions, reading code and finding errors as they occur.
When students are working together, they stay on a difficult debugging
challenge for far longer, often working on it after class. You can hear the
excitement in class when students cheer after getting a game to run by fixing a
small bug. And check out the photo below of a group of our students who were so
busy debugging their Scratch game that they didn’t even notice school was over.
3. Focus on creativity.
To really get kids interested and invested in coding, you must empower them
to make their own projects. This means that, instead of assigning projects that
involve simply modifying a sample project or solving a puzzle — such as moving a
robot through a maze — let students write code for something they really care
This is not always as easy as it sounds. Students can quickly get frustrated
when they find their coding skills don’t match their creative ideas. That’s why
it’s critical for a teacher to step in before the project is abandoned to guide
and redirect as needed so the students stay motivated while accomplishing
“I enjoy coding because it’s fun to create
computer programs and there are no limits to your creativity,” wrote one sixth
grader. “You can make anything you want. And you can always improve on it.”
In the final month of LASD’s coding class, students get to tackle a larger
project using any tool they have learned about during the course. Last year,
implementation to create a multi-page yearbook. This was not an easy project,
but it was something they were interested in. And that internal motivation drove
them to work hours and hours outside of class and find many ways to share code
to build the pages of their yearbook.
Here’s a photo of the cover page and some of the code the students used to
LASD is committed to advocating for early CS education
since we have seen it work in our schools. We measure our success in the
positive attitudes so many of our students now have toward computer programming.
And we believe that this fundamental knowledge of coding will empower them to
not only understand the digital world around them right now, but also be more
informed as they make decisions about their future, in school and beyond.
Sheena Vaidyanathan has been teaching computer
science to sixth graders for the last five years and is helping to develop a K-5
computational thinking program in the Los Altos School District, California.
Before becoming a teacher, she worked for more than a decade as a computer
scientist and technology entrepreneur in Silicon Valley. She is an ISTE
presenter, the K-8 rep on the
Computer Science Teachers Association
Board of Directors and an education advisor for
Code.org. Learn more about her
work at www.computersforcreativity.com.