This coming week is Computer Science Education Week, an annual event dedicated to inspiring students to take an interest in computer science. It may start with an ‘Hour of Code’ in some schools, but the goal is to reach “Computer Science for ALL.” That means planning for more than a couple of programming exercises, and thinking deeper about how to create programs that teach computer science to every student.
Where can schools start? Here are three guiding principles that have led to the success of the computer science programs at Los Altos School District (LASD) where I work as a teacher and computer science integration specialist. At our K-8 district in Northern California, all 4500 students learn computer science through programs that have been growing over the past seven years.
1. Inspire creativity by letting kids code projects of their choice.
To get kids interested in coding, offer them the opportunity to make something that is personally relevant. Instead of assigning students the same structured projects (such as the age-old puzzles that move a robot through a maze), empower students to write code for something they really care about. Let them create stories, music videos, animations, art and games.
In LASD, we’ve endeavored to give students flexibility so that they see coding as a creativity tool. “I enjoy coding because it’s fun to create computer programs and there are no limits to your creativity,” says one LASD sixth grader. “You can make anything you want. And you can always improve on it.”
Giving students more choice is not easy. Students quickly get frustrated when they find that their coding skills do not match their creative ideas. That’s why it’s critical to have a teacher who knows the students and can encourage or guide them before the project is abandoned.
2. Integrate coding into a core class, instead of pushing it to the side as an elective.
Instead of introducing computer science as an elective program, integrate it into a class that is required for all students. Computer science can be added to any core curriculum—math, science, language arts, social studies, history, or even art.
In LASD, computer programming using MIT’s Scratch started out as part of an art class called Digital Design, but today, it is integrated into a required class for sixth graders called CSTEM (the C stands for creativity, collaboration and computer science). For 7th and 8th graders, coding is integrated into science class as a unit on simulations. And in grades K-5, computer science is an integral part of the STEM program and added when possible to larger project-based learning activities.
If content integration is difficult to implement (the issues can be numerous, from schedule conflicts to teacher uncertainty), create a technology class or even one class unit that is required for all students for as many weeks as possible.
Integrating computer science into everyday classes gives every student exposure to coding—even those who may not think computer science is for them. Coding encourages trial and error, as it does not have to be correct at the first try. This allows English language learners in my LASD classes to safely experiment without worrying about how to communicate at each step. Special education students often tell me that it is their favorite class since they can experiment and learn about technology.
“I really enjoy programming,” a student at LASD wrote in a survey. "I'm so glad that this is something we do during school. Otherwise, I never would have discovered programming.”
The biggest success from integration at LASD is that many girls who did not think they would like programming have discovered that they like it. I recommend starting girls early in a required computer science class, and you may find that the infamous computing “gender gap” gets a lot smaller or almost disappears.
3. Collaboration and group work is fundamental.
Beginner coding exercises are simple and fun to start with. But as students work on more advanced projects, the tasks can quickly get difficult. Here’s where collaboration is key.
When students work together, they often make the extra effort to solve difficult debugging challenges for far longer, often working on it after class. You can hear the excitement in my class when students cheer when they get a project to run after fixing a bug. Group projects make coding more fun by turning coding into a social activity that engages all students, especially girls. In my classes, I let students pick who they work with whenever possible; they learn coding and collaboration at all skill levels, and working with friends means they like the class even more.
“Computer science for all” is a goal that nonprofits, government agencies, the tech industry and educators are all rallying around. It is one of those rare issues that even crosses political party lines. The ideas of creativity, integration and collaboration have worked in our school district to engage all students and give them access to computer science education, and they can work in yours, too. Good luck!