Proponents of the teach children to code movement say the payoffs are immediate: Children learn a new way to express themselves, as well as problem solving and building block concepts at a young age.
Efforts to promote computer science and coding are increasing. A bill currently pending in the state of Washington would allow two years of public school study in computer science to count as two years of world languages for college admission. A bill in the state of Kentucky has a similar goal: to amend education regulations to allow programming courses to be accepted by postsecondary institutions as meeting foreign language requirements. The bill was passed and sent to the state House, where it now resides in an education subcommittee.
"When you code you develop new, dynamic forms of expression,’’ observes Mitchel Resnick, professor of Learning Research and director of the Lifelong Kindergarten group in the Massachusetts Institute of Technology (MIT) Media Lab. "You can create new stories, games and animation,’’ and children can communicate new ideas.
Resnick believes children can start learning the concepts of coding at a very young age. "I like to make an analogy from coding to writing: there is no one specific age when children to learn to write,’’ he says. "They tell stories from an early age and at some point they are ready to write them down. Typically the same is true with coding."
MIT’s Media Lab developed Scratch and Scratch Junior, online communities where children learn to program and can share interactive stories, games and animation. Scratch is geared at children ages eight to 16, and Scratch Junior is designed for children ages five to seven. More than 5 million people have joined the Scratch community, according to Resnick, and more than 7 million projects have been shared on the website.
Weinstein says programming is well suited for teaching logic and learning to read through something; without those skills, there are ambiguities and different ways to interpret things, he says. "With programming, sorting something or figuring out how to do something has to be broken down into small parts. It teaches a lot about composition, building things up, and knowing exactly what you’re talking about."
While programming teaches structured thinking, it also allows someone to be more creative and make something happen, says Weinstein, who is also a software engineer at RenttheRunway.com. "I think kids respond well to that."
The book, geared for ages 10 and up, emphasizes thinking through problems and providing a precise solution, "but the solution is whatever you want it to be,’’ Weinstein says. "So it’s trying to present a balance of a precise question of correctness, but with creativity." He says the syntax of Ruby "is very, very clear and English-like. I wanted kids to have as little friction in languages they knew … and programming languages as possible."
Exposing children to computer science as a whole is "a fundamental part of our education system that every student should have access to,’’ maintains Cameron Wilson, chief operating officer at Code.org. To Wilson, "The major payoff is students will not only learn about computer science, but how to think and tackle problems through computational thinking skills and abstracting out details that are meaningful."
The benefits start to emerge early on, Wilson says, and coding should be taught at the elementary school level.
MIT's Resnick says some people who encourage children to learn to code believe the main payoff is preparing the next generation of professional programmers and computer scientists. "To be honest, that is not my goal. Learning to code is important for everyone,’’ he says. "Everyone needs a better way to solve problems, create projects, and express themselves."
However, not everyone feels so strongly that all children should be taught to code.
Chris Tonkinson, founder of software development company Forge Software, says there is nothing wrong with encouraging young children to cultivate an interest in technology as a tool to learn, explore, and grow, but "the problem is that the software industry has drunk its own Kool-Aid,’’ he says. "We spent so much energy trying to take the stigma away from computers that we're starting to believe it's actually sexy. We're starting to believe there is something fundamentally more useful, more attractive, more lucrative, or more noble in writing software than anything else. And that's just not the case."
When President Obama makes a speech about getting more people to code, Tonkinson says, he "doesn't seem to care how many people learn to cook, change oil, patch jeans, or solder pipes. When ‘coding’ is encouraged to the exclusion of other trades, that presents a significant economic problem for the nation."
Children should not be encouraged to code, Tonkinson says, "not with a single breath more than they should be encouraged into metalwork, plumbing, locksmithing, or baking," or any other trade. If a child came to him and wanted to know more about what he does, Tonkinson says he would applaud that and would encourage that interest. "But to advertise software as fundamentally different … from any other trade en masse is wholly misguided at best."
Chase Felker, a software engineer at Slate magazine who has been a vocal opponent of the notion that everyone should learn to code, says it is fine to teach programming to children, but he worries they might be taught "useless things" and "a set of arbitrary instructions that you give to an unreliable machine, as opposed to a discipline with really beautiful and interesting ideas, or as a do-it-yourself way of making technology for yourself."
Says Resnick, "It’s not that people want to learn to program. People want to express themselves. That’s universal."
Esther Shein is a freelance technology and business writer based in the Boston area.