Language skills can help a user learn to code, rather than numeracy, since programming is similar to learning a new language. (Image Credit: Justin Abernethy/U. of Washington)


Anyone who wants to learn to code won’t need to rely as much on mathematical or engineering skills, but instead, on problem-solving and language skills. Researchers at the University of Washington discovered that people with a natural aptitude for learning languages have a better understanding of programming than those who have basic math knowledge or numeracy skills. That’s mainly because programming is equivalent to learning a second language, which involves vocabulary and grammar, and how they work together to communicate ideas. Problem-solving skills and working memory also contribute to the effectiveness of coding. The researchers published their findings in Nature’s Scientific Reports journal on March 2, 2020.


“Many barriers to programming, from prerequisite courses to stereotypes of what a good programmer looks like, are centered around the idea that programming relies heavily on math abilities, and that idea is not born out in our data,” said Chantel Prat, an associate professor of psychology at the UW and at the Institute for Learning & Brain Sciences. “Learning to program is hard, but is increasingly important for obtaining skilled positions in the workforce. Information about what it takes to be good at programming is critically missing in a field that has been notoriously slow in closing the gender gap.”


The study observed neurocognitive abilities of over three dozen adults as they learned Python, while undergoing a battery of tests that assessed their language and math skills, resting brain activity, attention to problem-solving, and memory. Participants who learned Python quickly and more accurately have a mix of strong problem-solving and language, along with good memory and reasoning abilities.


Their discoveries have considerable implications in today’s STEM programs, which tend to exclude those who have strong language skills. Since coding is mainly associated with math and engineering, college-level programming courses require advanced math to enroll, which is usually taught in computer science and engineering departments.


To assess cognitive and neural characteristics of programming aptitude, Prat observed a group of native English speakers who hadn’t learned to code before.


Before learning to code, each participant underwent two different assessments. The first one involved a 5-minute electroencephalography scan, which recorded their brain’s electrical activity in a relaxed state with their eyes closed. Research conducted in the past showed that while the brain is at rest, patterns of neural activity can predict 60% of the same speed as someone learning a second language.  “Ultimately, these resting-state brain metrics might be used as culture-free measures of how someone learns,” Prat said.


Afterward, the participants underwent an additional eight tests. One test was numeracy-focused, one specified in measuring language aptitude, and the remaining assessed their problem-solving, attention, and memory.


The participants were given ten 45-minute online sessions, which focused on a programming concept, such as if/then conditions or lists. Users were then given a quiz they were to pass so they could advance to the next session. They could also ask for help by using a “hint” button, a blog from previous users, and a “solution” button.


A researcher, from a shared screen, then observed each participant and determined how quickly they were able to successfully complete each lesson, as well as how often they requested help and their quiz accuracy. When they finished all their sessions, users completed a multiple-choice quiz on the purpose of functions and the structure of coding. Their final task was to program a rock, paper, scissors game, which helped to observe how they were able to write code from the information they learned.


Overall, researchers discovered the scores from the language aptitude test were the strongest predictors of the users’ learning rate in Python. Numeracy and fluid reasoning test scores were also linked with the Python learning rate, but these factors showed less variance than the language aptitude.


”This is the first study to link both the neural and cognitive predictors of natural language aptitude to individual differences in learning programming languages. We were able to explain over 70% of the variability in how quickly different people learn to program in Python, and only a small fraction of that amount was related to numeracy,” Prat said.


Additional research could also explore connections between language aptitude and programming instruction in a classroom, or with different programming languages, like Java, or with more difficult tasks to show programming proficiency.


Have a story tip? Message me at: cabe(at)element14(dot)com