science >> Wetenschap >  >> anders

Geen wiskundig persoon? Je bent misschien beter in het leren coderen dan je denkt

Taalvaardigheden zijn een sterkere voorspeller van programmeervaardigheid dan wiskundige kennis, volgens een nieuwe studie van de Universiteit van Washington. Hier, studie co-auteur Malayka Mottarella demonstreert codering in Python terwijl ze een gespecialiseerde headset draagt ​​die elektrische activiteit in de hersenen meet. Krediet:Justin Abernethy/U. van Washington

Wil je leren coderen? Leg het wiskundeboek neer. Oefen in plaats daarvan die communicatieve vaardigheden.

Uit nieuw onderzoek van de Universiteit van Washington blijkt dat een natuurlijke aanleg voor het leren van talen een sterkere voorspeller is van leren programmeren dan elementaire wiskundige kennis. of rekenen. Dat komt omdat het schrijven van code ook het leren van een tweede taal inhoudt, een vermogen om de woordenschat en grammatica van die taal te leren, en hoe ze samenwerken om ideeën en intenties te communiceren. Andere cognitieve functies gekoppeld aan beide gebieden, zoals het oplossen van problemen en het gebruik van het werkgeheugen, spelen ook een sleutelrol.

"Vele barrières voor programmeren, van basiscursussen tot stereotypen van hoe een goede programmeur eruitziet, zijn gecentreerd rond het idee dat programmeren sterk afhankelijk is van wiskundige vaardigheden, en dat idee komt niet uit onze gegevens, " zei hoofdauteur Chantel Prat, een universitair hoofddocent psychologie aan de UW en aan het Institute for Learning &Brain Sciences. "Leren programmeren is moeilijk, maar wordt steeds belangrijker voor het verkrijgen van geschoolde arbeidsplaatsen. Informatie over wat er nodig is om goed te kunnen programmeren ontbreekt op een gebied dat notoir traag is in het dichten van de genderkloof."

Online gepubliceerd 2 maart in Wetenschappelijke rapporten , een open access tijdschrift van de Nature Publishing Group, het onderzoek onderzocht de neurocognitieve vermogens van meer dan drie dozijn volwassenen terwijl ze Python leerden, een gemeenschappelijke programmeertaal. Na een reeks tests om hun uitvoerende functie te beoordelen, taal- en rekenvaardigheden, deelnemers voltooiden een reeks online lessen en quizzen in Python. Degenen die Python sneller hebben geleerd, en met grotere nauwkeurigheid, hadden de neiging om een ​​combinatie van sterk probleemoplossend vermogen en taalvaardigheid te hebben.

In de STEM-gerichte wereld van vandaag, leren coderen opent een scala aan mogelijkheden voor banen en uitgebreide opleidingen. Coderen wordt geassocieerd met wiskunde en techniek; programmeercursussen op universitair niveau vereisen meestal geavanceerde wiskunde om zich in te schrijven en ze worden meestal onderwezen in computerwetenschappen en technische afdelingen. ander onderzoek, namelijk van UW psychologie professor Sapna Cheryan, heeft aangetoond dat dergelijke vereisten en percepties van codering stereotypen over programmeren als een mannelijk veld versterken, mogelijk vrouwen ontmoedigen om het na te streven.

Maar coderen heeft ook een basis in menselijke taal:programmeren houdt in dat er betekenis wordt gecreëerd door symbolen op een op regels gebaseerde manier aan elkaar te rijgen.

Hoewel een paar studies de cognitieve verbanden tussen het leren van talen en computerprogrammering hebben aangeroerd, sommige gegevens zijn tientallen jaren oud, talen gebruiken zoals Pascal die nu verouderd zijn, en geen van hen gebruikte natuurlijke taalvaardigheidsmaten om individuele verschillen in het leren programmeren te voorspellen.

Dus Prat, die gespecialiseerd is in de neurale en cognitieve voorspellers van het leren van menselijke talen, uiteengezet om de individuele verschillen te onderzoeken in hoe mensen Python leren. Python was een natuurlijke keuze, Prat legde uit, omdat het lijkt op Engelse structuren zoals het inspringen van alinea's en veel echte woorden gebruikt in plaats van symbolen voor functies.

Om de neurale en cognitieve kenmerken van "programmeervermogen, " Prat bestudeerde een groep moedertaalsprekers van het Engels tussen de 18 en 35 jaar die nooit hadden leren coderen.

Deze grafiek laat zien hoe de vaardigheden van studiedeelnemers, zoals rekenen en taalvaardigheid, bijdragen aan het leren van Python. Volgens de grafiek is cognitie en taalvaardigheid zijn grotere voorspellers van leren dan rekenen. Krediet:Prat et al./Wetenschappelijke rapporten

Voordat u leert coderen, deelnemers namen twee totaal verschillende soorten beoordelingen. Eerst, deelnemers ondergingen een elektro-encefalografiescan van vijf minuten, die de elektrische activiteit van hun hersenen registreerden terwijl ze ontspanden met hun ogen dicht. In eerder onderzoek is Prat toonde aan dat patronen van neurale activiteit terwijl de hersenen in rust zijn tot 60% van de variabiliteit kunnen voorspellen in de snelheid waarmee iemand een tweede taal kan leren (in dat geval Frans).

"Uiteindelijk, deze hersenstatistieken in rusttoestand kunnen worden gebruikt als cultuurvrije metingen van hoe iemand leert, " 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.

uiteindelijk, 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. belangrijk, 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.