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 coding camps.
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 its success:
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 students.
" "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." "
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 just works!
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 about.
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 something meaningful.
" "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." "
Here's a photo of the cover page and some of the code the students used to create it.
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.