Age of Awareness
Published in

Age of Awareness

ABCD If For While.

Coding as a linguistic skill.

I’m certainly not the first to write about the value of teaching computer science to kids. There are numerous people from Tech CEO’s to teachers who will tell you why CS education should start young. The reasons range from economic equality to problem-solving, to technical literacy but I think there is another argument to be made from the point of view of linguistics.

A teachers desk with books, an apple, and ABC blocks.

Start them young.

Why are second language kindergartens and daycares so popular among parents? Because, the common wisdom says, it’s easier for children to learn a second language when they are young. While the long theorized “critical period” may be falling out of favor with linguists, the point stands that children who acquire a second language later in life have better grammatical usage of that language.

What is grammar?

You have probably heard the typical usage of grammar to mean making sure that your sentences have comma’s in the right place, or to use there, their, and they’re in the correct manner but when linguists talk about grammar it means something else. Grammar, according to The Linguistic Society of America is “simply the collection of principles defining how to put together a sentence.” In particular, grammar refers to syntax governing which words can be put in which order.

Not only does every language have syntax, but similar syntactic principles are found over and over again in languages. Word order is strikingly similar in English, Swahili, and Thai (which are utterly unrelated); sentences in Irish are remarkably parallel to those in Maori, Maasai, and ancient Egyptian (also unrelated); and so on.

-Linguistic Society of America

Wait… Syntax, that’s a coding word!

Yup. The first most people hear of syntax, assuming they aren’t linguists, tend to be in any intro to computer science course. I often start by telling my students that syntax is the “grammar” of code. Of course, to any linguist, this is obvious. However, syntax is a part of coding that is crucial to becoming “fluent” in any coding language. What is crucial to teaching coding, is that linguistic syntax is something that young people are particularly intuitive at.

Two children play in an interconnected web of threads creating two colliding spheres with their interscetions.

Pattern recognition. The human superpower.

Artificial intelligence enthusiasts love to tout the power of pattern recognition. But there is truth to the fact that human expertise is largely driven by our strong ability to recognize patterns in the world around us. In linguistics, this pattern recognition expresses itself in the way that children create language. For example, when two distinct linguistic populations come into contact for the first time, they create what is known as a pidgin. When children learn this language, it becomes a creole in a process called creolization.

“There are several possible fates for a pidgin. First, it may eventually drop out of use. This has happened to Hawaiian pidgin, now almost entirely displaced by English, the prestige language of Hawaii. Second, it can remain in use for generations, or even centuries, as has happened with some west African pidgins. Third, and most dramatically, it can be turned into a mother tongue. This happens when the children in a community have nothing but a pidgin to use with other children, in which case the children take the pidgin and turn it into a real language, by fixing and elaborating the grammar and greatly expanding the vocabulary. The result is a creole, and the children who create it are the first native speakers of the creole.”

-(R.L. Trask, Language and Linguistics: The Key Concepts, 2nd ed., ed. by Peter Stockwell. Routledge, 2007)

How exactly do children “fix” the grammar of a language that does not yet exist? They regularize it. That is, they recognize existing patterns in the language and then change the parts of the language that don’t fit within these patterns to create a rule-based pattern of syntax. They also add important elements like particles, “the” “and” “a” etc. Children, it would seem, are grammar making machines. Any language spoken as a native tongue by children has this regular grammatical structure.

So what does that have to do with teaching Computer Science?

Well, as we mentioned before, syntax, is the grammar of computer languages. When children are taught a computer language at a young age, they learn to grammatically interpret that language and are able to use the grammar patterns they learn to become fluent in that language or any similar programming languages. Because children are particularly good at this sort of pattern recognition, they have an advantage when it comes to learning to code. As a society, we should expose kids to code early so that they can gain this intuitive grammatical understanding of programming languages. Additionally, children would be best equipped to develop these systematically designed programming languages into intuitive easy to read code.

A lego toy holds up a keyboard key.

What does childhood computer science look like?

One crucial point about this view of learning programming languages as a foreign language as opposed to a skill set is that the goal young kids exposure to programming should be immersion. Just as with a second language kindergarten, we should rely on children’s natural ability to recognize patterns rather than try to teach them those patterns in tedious and boring lessons. This mimics what I’ve heard many hackers say “if you want to learn to code just start writing code,” of course, what they mean is “if you want to learn to code just start copying code from stack overflow and pasting it together to make it do what you want.” But while this might sound like a terrible way to learn a skill, after all, you would never learn math if all you did was look up the answers, its a pretty solid way to learn programming, because it gives you the maximum exposure to programming language. When we talk about teaching children literacy, we don’t ask them to write a novel, we ask them to read one then try to write a paragraph.

But what about crucial computer science building blocks? What about loops? What about variables?

Don’t we have to teach children these basic concepts? Perhaps. A good explanation of variables and loops probably won’t hurt in CS education. However, I think that the importance of “teaching” these concepts directly is overemphasized. After all, do we need to teach children what pronouns are before they can use them? Most children start using the words “I”, “it” and “you” quite early in life. They understand the concept that these pronouns substitute for the actual name or object they are referring to. This referencing, is actually a very challenging problem for computers, as it is a more complicated form of variable declaration than a simple “=”. Why then do we assume that children can not understand x=7 given adequate context and exposure? Similarly, fully understanding the grammatical usage of the word “until” requires nearly the same understanding as the programming usage of the word “while.” When teaching 5–7-year-olds to program in scratch, I rarely encountered much confusion about how to use a while loop, I simply told them that it would repeat what was inside until the bit at the top told it to stop. But that explanation was mostly ignored by them until they saw the examples of flashing letters and bouncing balls. These computer science “concepts” are essentially grammar, and we can teach them using immersion the same way we can teach past tense, present and past participles and gerunds. Perhaps you forgot what “present participle” means. But I’m pretty sure you still understand the sentence, “I was jumping with joy.” Which of those understandings is more important to teach to our children? Which of these understandings is more intuitive?

What can you do?

Well luckily lots! If you are a parent you can expose your children to code young. One simple recommendation is just to teach them how to view the source code of any website they visit. You can also teach them about sites like Scratch for kids 4–10 or Open Processing for kids 8+. If you have the money, enroll them in a tech camp or afterschool program. But most importantly, let them see the source code behind whatever games and apps they love. I learned tons of web design by making my Tumblr theme because I was a huge Doctor Who fan. My sister got exposed to Java by modding Minecraft. It doesn’t matter what they are doing as long as they read code.

We should see coding literacy the same was we do book literacy. It is a language skill, and it can be applied to anything. In the modern-day world, artists, journalists, photographers, biologists, academics, all utilize code. If your child can learn to code as a native language, you will give them a huge leg up in the world. Perhaps more importantly, you will help whatever their contributions are to the world be impactful and permanent.

A globe covered in green cityscape.

Why does this matter?

I look at learning to code the same way I look at speaking English. The people who know it are at an advantage in the world because it is a global language. Around the world, schools teach English younger and younger because learning the second language earlier leads to more native grammar and more success in the global economy. We should see code as a linguistic instruction, with all the same benefits to learning early as language has.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Samantha Lincroft

Samantha Lincroft


A student at Wellesley College and Monash University studying CS with an interest in math, philosophy, disability advocacy, and social entrepreneurship.