Is it worth teaching young kids to code?
How young can we teach kids to code? Is it worth teaching really young kids to code? The argument below is missing the whole point of the difference between natural and artificial languages. Programming requires specification of details that do not occur in natural language (as seen in John Pane’s work, and related to the “Communicating with Aliens” problem). Why should our evolved language acquisition systems help with that?
The article linked below is pretty good as these things go, but they’re missing a lot of nuance in what it means “to code.”
- The article argues that students can start learning computer science “before they learn to read and write.” What does it mean to learn computer science then? Can we talk about manipulating symbol systems? About notation? If you pull out literacy, what are you teaching?
- The reports I’ve read about kids learning to program (like Roy Pea’s reports from decades ago, to Yasmin Kafai’s reports on students working in Scratch) suggest that young kids who “program” tend to build sequences of statements, with few conditionals or loops or defining named chunks of code (functions or procedures or whatevers). Is that what most of us think about when we’re suggesting “learn to code”?
- So, let’s say that you successfully teach some 5-6 year old to write some programs that we’d agree looks like “coding.” Do you really expect that to have an impact 20 years later when they reach working age (as is suggested as the potential value in the article below)? Especially if there’s almost no use of programming in formal education over the following 12 years?
I am not convinced that we can fruitfully teach five or six year olds to code — though it’s certainly worth exploring and experimenting with. I would not expect it to have much effect, though. If we had a school system that used code in interesting and powerful ways across the curriculum, then starting to teach kids to program at five or six as steps toward computational literacy would make lots of sense. But if only 12% of US high schools have computer science, and far fewer middle and elementary schools have it, and CS is still just this little class in the corner that doesn’t connect to anything else — then you can’t expect the coding that happens at that age to have much effect.
But that pessimism is at odds not only with the experiences of Gibson and other pioneering teachers but also with the science of language acquisition. Extensive research has shown that because young brains are so adept at picking up languages, it’s best to introduce children to foreign tongues as early as possible. This is why so many ambitious parents are now clamoring for kindergartens that offer intensive Mandarin—they want to give their kids the best possible shot at learning a key language of the Asian century.
What those parents likely don’t realize is that the same neural mechanisms that make kids sponges for Mandarin likely also make them highly receptive to computer languages. Kindergartners cannot become C++ ninjas, but they can certainly start to develop the skills that will eventually cement lifelong fluency in code.