” I think I fixed it, can I upload my program? ”
“‘Can you test my ‘app’?’.”
“I just need to add a help menu.”

These are not remarks at a Silicon Valley technology startup, but from an animated conversation in a classroom of 10 and 11-year-olds in the Los Altos School District in California. These fifth and sixth graders are experiencing the excitement of computer programming through Scratch, a tool designed by MIT. They are creating their very first fully functional program.

As part of a district wide program called Digital Design that I teach, every 4th-6th grader is exposed to computer programming in addition to 2D and 3D design. The first assignment this trimester was to create a drawing program – a computer version of the popular Etch-A-Sketch toy. The students learned some fundamental programming concepts and then wrote their own program. The project was deliberately open ended and the creative results surprised me.

Most of these students have never programmed before, and certainly did not think of themselves as computer experts. However, in less than 2 hours (3 classes), these students created programs with help menus, keyboard shortcuts, menus to change colors, brushes, paper and more. Imagine what they could do with a little more time and experience!

The second project was to create a simple video game, and it was constructed in 5 classes. Students learned programming concepts such as iteration, conditionals, and variables in the context of game design. As before, the the students showcased their originality. Here are some examples:Simple games(Read Project Notes for instructions, press the green flag to start)

About 900 students have learned programming through Scratch in the last 2 years via the Los Altos School District’s Digital Design program. The examples shown are just a small sample taken from the last trimester. More Scratch projects can be found on the Digital Gallery on this website.

What is particularly remarkable about these results is that every student in the public school district takes this class. These results are not just from students who are already predisposed to computers – the wanna-be computer geeks. The students who took this class include a girl who told me right at the beginning that she does not like computers. The class also includes English language learners who just transferred to the school district. There are also several special education students who are mainstreamed for this program. This is a case of everyone learning programming in school, not the select few who know that they want to and can afford to take an expensive computer camp.

These students may not choose to be computer scientists, but they have learned computational thinking, an important digital age skill. (See more on computational thinking on the ISTE website). They will be able to use these skills to solve problems in a wide range of fields in the future. There has been much written about the need to go beyond teaching the use of computer programs and to actually teach how to make computer programs. Douglas Rushkoff makes a good case for learning programming in his book, Program or Be Programmed: Ten Commands for a Digital Age, “When human beings acquired language, we learned not just how to listen but how to speak. When we gained literacy, we learned not just how to read but how to write. And as we move into an increasingly digital reality, we must learn not just how to use programs but how to make them. ”

The most exciting part for a computer scientist and Silicon Valley resident like myself is that some of these kids are now passionate about programming. They are working on Scratch projects during recess and at home (Scratch is a free download from MIT). Eventually, one of these kids may go on to create the next Hewlett Packard, or the next Apple or the next Google. I like to think that the future of Silicon Valley is in good hands; this new generation of creative computer programmers will keep our innovative spirit alive.