Sprogfærdigheder er en stærkere forudsigelse for programmeringsevne end matematikkundskaber, ifølge en ny undersøgelse fra University of Washington. Her, studiets medforfatter Malayka Mottarella demonstrerer kodning i Python, mens hun bærer et specialiseret headset, der måler elektrisk aktivitet i hjernen. Kredit:Justin Abernethy/U. af Washington
Vil du lære at kode? Læg matematikbogen fra dig. Øv disse kommunikationsevner i stedet for.
Ny forskning fra University of Washington finder, at en naturlig evne til at lære sprog er en stærkere forudsigelse for at lære at programmere end grundlæggende matematikkundskaber. eller regnefærdigheder. Det er fordi at skrive kode også involverer at lære et andet sprog, en evne til at lære sprogets ordforråd og grammatik, og hvordan de arbejder sammen om at kommunikere ideer og hensigter. Andre kognitive funktioner knyttet til begge områder, problemløsning og brug af arbejdshukommelse, spiller også nøgleroller.
"Mange barrierer for programmering, fra forudsætningskurser til stereotyper af, hvordan en god programmør ser ud, er centreret omkring ideen om, at programmering er stærkt afhængig af matematiske evner, og den idé er ikke født ud i vores data, " sagde hovedforfatter Chantel Prat, en lektor i psykologi ved UW og ved Institute for Learning &Brain Sciences. "Det er svært at lære at programmere, men er stadig vigtigere for at opnå kvalificerede stillinger i arbejdsstyrken. Information om, hvad der skal til for at være god til at programmere, mangler kritisk på et felt, der har været notorisk langsomme til at lukke kønskløften."
Udgivet online 2. marts i Videnskabelige rapporter , et åbent tidsskrift fra Nature Publishing Group, forskningen undersøgte de neurokognitive evner hos mere end tre dusin voksne, da de lærte Python, et almindeligt programmeringssprog. Efter en række tests for at vurdere deres udøvende funktion, sprog- og matematikfærdigheder, deltagere gennemførte en række onlinelektioner og quizzer i Python. Dem, der lærte Python hurtigere, og med større nøjagtighed, havde en tendens til at have en blanding af stærke problemløsnings- og sproglige evner.
I dagens STEM-fokuserede verden, at lære at kode åbner op for en række muligheder for job og udvidet uddannelse. Kodning er forbundet med matematik og teknik; programmeringskurser på college-niveau har en tendens til at kræve avanceret matematik for at blive tilmeldt, og de har en tendens til at blive undervist i datalogi og ingeniørafdelinger. Anden forskning, nemlig fra UW psykologi professor Sapna Cheryan, har vist, at sådanne krav og opfattelser af kodning forstærker stereotyper om programmering som et maskulint felt, potentielt afskrække kvinder fra at forfølge det.
Men kodning har også et fundament i det menneskelige sprog:Programmering involverer at skabe mening ved at kæde symboler sammen på regelbaserede måder.
Selvom nogle få undersøgelser har berørt de kognitive forbindelser mellem sprogindlæring og computerprogrammering, nogle af dataene er årtier gamle, bruger sprog som Pascal, der nu er forældede, og ingen af dem brugte naturlige sproglige evner til at forudsige individuelle forskelle i at lære at programmere.
Så Prat, som har specialiseret sig i de neurale og kognitive forudsigere for at lære menneskelige sprog, satte sig for at udforske de individuelle forskelle i, hvordan folk lærer Python. Python var et naturligt valg, Prat forklarede, fordi det ligner engelske strukturer såsom afsnitsindrykning og bruger mange rigtige ord i stedet for symboler til funktioner.
For at evaluere de neurale og kognitive egenskaber ved "programmeringsevner, "Prat studerede en gruppe engelsktalende som modersmål mellem 18 og 35 år, som aldrig havde lært at kode.
Denne graf viser, hvordan studiedeltagernes færdigheder, såsom regnefærdigheder og sproglige evner, bidrage til indlæringen af Python. Ifølge grafen, kognition og sproglige evner er større forudsigere for læring end regnefærdigheder. Kredit:Prat et al./Scientific Reports
Før du lærer at kode, deltagerne tog to helt forskellige typer vurderinger. Først, deltagerne gennemgik en fem-minutters elektroencefalografiscanning, som registrerede den elektriske aktivitet i deres hjerner, mens de slappede af med lukkede øjne. I tidligere forskning, Prat viste, at mønstre af neural aktivitet, mens hjernen er i hvile, kan forudsige op til 60 % af variationen i den hastighed, hvormed nogen kan lære et andet sprog (i så fald, Fransk).
"Ultimativt, these resting-state brain metrics might be used as culture-free measures of how someone learns, " Prat said.
Then the participants took eight different tests:one that specifically covered numeracy; one that measured language aptitude; and others that assessed attention, problem-solving and memory.
To learn Python, the participants were assigned 10 45-minute online instruction sessions using the Codeacademy educational tool. Each session focused on a coding concept, such as lists or if/then conditions, and concluded with a quiz that a user needed to pass in order to progress to the next session. For help, users could turn to a "hint" button, an informational blog from past users and a "solution" button, in that order.
From a shared mirror screen, a researcher followed along with each participant and was able to calculate their "learning rate, " or speed with which they mastered each lesson, as well as their quiz accuracy and the number of times they asked for help.
After completing the sessions, participants took a multiple-choice test on the purpose of functions (the vocabulary of Python) and the structure of coding (the grammar of Python). For their final task, they programmed a game—Rock, Paper, Scissors—considered an introductory project for a new Python coder. This helped assess their ability to write code using the information they had learned.
Ultimativt, researchers found that scores from the language aptitude test were the strongest predictors of participants' learning rate in Python. Scores from tests in numeracy and fluid reasoning were also associated with Python learning rate, but each of these factors explained less variance than language aptitude did.
Presented another way, across learning outcomes, participants' language aptitude, fluid reasoning and working memory, and resting-state brain activity were all greater predictors of Python learning than was numeracy, which explained an average of 2% of the differences between people. Vigtigere, Prat also found that the same characteristics of resting-state brain data that previously explained how quickly someone would learn to speak French, also explained how quickly they would learn to code in Python.
"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. Further research could examine the connections between language aptitude and programming instruction in a classroom setting, or with more complex languages such as Java, or with more complicated tasks to demonstrate coding proficiency, Prat said.