Why coding for everyone?
Part of education is vocational and a million well-paying computer science jobs certainly fits that mold. But an equally important part of the education experience is inspiring curiosity, teaching children how to think, and helping them learn about the world around us. I still remember when my favorite sixth grade teacher taught us about circuits. I spent a week gluing tin foil to cardboard to create a pin ball game. The end result barely worked, but if you gently rolled a metal ball in just the right way, it beeped. Sometimes.
Most of us will never use electronic circuits in our jobs. Even after working in computer software for 15 years, I’ve never even had to think about circuits. But learning the fundamentals of electricity helped me understand how the lights in my house work; the concept of alternative energy; and encouraged me to explore the world. For years, we’ve taught these types of fundamentals in K-12 education: how plants turn sunlight into energy through photosynthesis or how our body breaks down proteins during digestion.
In today’s world, understanding how the internet works or how computers break down problems is a fundamental, relevant part of students’ lives. Even if they don’t go on to major in computer science, it can help them understand the computer systems they’ll be using every day—in college, career, and beyond. And, for many, computer science will be a part of their career no matter what field they go into. In fact, two-thirds of the computer science jobs are outside of the tech industry.
Today, we see marketing and political teams using computers to analyze the data from their campaigns and track how their messages are landing with customers. Doctors are using computer programs to analyze proteins and design new drugs. Technical artists are creating animations in movies and software. Other applications are similarly changing the face of law, manufacturing, and even education.
When to start
Many teachers don’t consider starting computer science education in kindergarten, but that’s precisely where to begin. In elementary school, kids approach computers with curiosity. In particular, girls are more likely to pick up computer science when they are young, before anyone has told them they can’t do it. And they are eager to learn: kids love the kinds of logic puzzles programming involves. (In fact, the first course on Code.org, the organization I work with, is designed for children who can’t yet read.)
Another huge misconception that steers students away from computer science is that you need to be stellar in math. While it is true that there is some math in computer science, much of it is not math focused, and you can easily start with concepts that don’t require any math. Our K-5 classes teach students how to think logically and break down a complicated problem into a series of steps—both skills that will hopefully benefit math instruction, but don’t require math prerequisites themselves.
A long way to go
Currently, 25 states still don’t allow students to count computer science courses toward high school graduation, so while we are seeing some progress, there’s much to be done. And the population taking computer science does not represent our society. In fact, in U.S. AP computer science classes, only 15 percent of the students are girls and eight percent are African American or Hispanic.
Another alarming statistic, courtesy of Girls Who Code, finds that only 12 percent of computer science bachelor’s degrees are awarded to women, despite the fact that 57 percent of all bachelor’s degrees are earned by women. Embedding computer science into the curriculum gives all students—not just those initially interested—the opportunity to spark an interest in coding.
Speaking in blocks
There are a handful of code languages out there and their shelf life changes rather quickly. The languages used today may or may not be the language used 20 to 30 years from now, so rather than concentrating on a specific language, we should first be focusing on the basics of computer science. At Code.org, the first “language” we use is blocks, and these foundational concepts can translate across any of the coding languages that the students will learn in the future.
Starting students with a traditional coding language can be discouraging, as they have to get all the punctuation correct in order for their applications to work the way they expect. We’d rather let the student focus on the goal than the punctuation. Using blocks also means that students don’t have to know how to type to begin learning computer science. They can drag and drop blocks with a mouse on the PC or with their finger on a tablet. However, once a student has the foundational concepts, learning a specific language comes easily.
A great way for teachers to get started and introduce students to computer science is to take part in the “Hour of Code”—a one-hour introduction to computer science, designed to demystify code and show that anybody can learn the basics. Anybody can host an Hour of Code at anytime. Some of the tutorials even work “unplugged”—that is without computers in the classroom.
Computer science foundations, even at the lowest level, are an important and powerful set of skills to have, especially in this economy and this enriched digital era. Educational institutions have the opportunity to recognize and support the need for these skills. Teaching computer science will help us produce graduates that are fully college ready and prepared for the workforce, no matter what career field they end up pursuing.