Imagine if you never learned addition in elementary school — and when you went to middle school, it wasn't part of the curriculum. Then came high school, where no one breathed a word about it. By the time you were a college freshman, however, you could at long last enroll in an addition course and tackle the topic as an adult.
This scenario may seem a little ridiculous, but it's a familiar timeline when it comes to computer science says Jeff Gray, a professor of computer science at the University of Alabama. It's not uncommon for a student's first formal education in coding to come in college, says Gray, also a member of the 10-person Education Advisory Panel for Code.org, an advocacy group for computer science education.
Much of what he teaches to elementary school kids is the same material as an introductory college course — with a few age-related adjustments.
"When we're teaching these concepts to school age children, we're teaching these concepts at the appropriate level," he says. "There's nothing magical about the concept of coding, but we've never integrated it in students' curricula like the topic was a first-class citizen."
With support from Code.org and the National Science Foundation, Gray has trained elementary and secondary teachers across the U.S. in ways to incorporate computer science into their lessons. When contacted by HowStuffWorks, Gray had just left a meeting at the White House where he'd been part of a discussion about the Computer Science for All, President Obama's initiative to empower American students from kindergarten through high school to learn computer science.
The Best Time Is Now
So is there a proper age for kids to learn coding? According to Gray, it's never too early. Even children who can't yet read or spell can grasp the logic of coding, thanks to the use of symbols. In early childhood, for example, young coders can compose a series of blocks with arrows to make an animal move across a screen to a particular destination.
"There are environments for non-readers," Gray says, "and we also have unplugged activities, so rather than being on a computer writing code, students can do kinesthetic activities and learn computer science through these unplugged activities as they move about the classroom."
With basic programming languages like Scratch, devised by the Massachusetts Institute of Technology, to teach more young children the roots of coding, and statewide commitments to boost students' digital skills, Gray says he feels encouraged.
In 2015, New York added computer science to all levels of public school curricula, and Arkansas became the first state to pass a comprehensive law requiring public and charter high schools to offer computer science courses.
In February 2016, President Obama announced Computer Science for All, an initiative boost American students' digital skills. The initiative calls for $4 billion in funding for states and $100 million directly for school districts to expand teacher training and instructional materials, which will be proposed as part of the next national budget. In addition, the initiative will receive $135 million in computer science funding from the National Science Foundation and the Corporation for National and Community Service.
A Greater Good
While these coding skills are designed to give American students the computer science skills they need to thrive in a digital economy, the benefits are even more far-reaching, Gray says.
"It's all about problem-solving and analytical abilities beyond what see in traditional curriculum," he says, "skills that come with developing grit and perseverance. The programs they are writing are solving puzzles. We see students who have may have given up in earlier assignments, but are now driven and sticking to it."
This "growth mindset" is the difference between a student encountering a difficult problem and giving up or pushing on. "These children go off in life and succeed more," says Gray. "We are seeing in students that in the context of writing code, it engenders that kind of life."
This mindset, borne of writing code, can have far-reaching implications. "Maybe the next time they see a math problem they can't solve, they don't give up," he says, "and instead appreciate the challenge. These are the side benefits of writing code."