程式設計是更像數學還是人類語言?- MIT News

banq發表於2020-12-16

關於大腦如何學習編碼,存在兩種思想流派。有人認為,要精通程式設計,就必須精通數學;另一個建議認為,由於編碼和語言之間的相似性,語言技能可能更相關。在某些方面,學習計算機程式設計與學習新語言相似。它需要學習新的符號和術語,必須正確組織這些符號和術語以指導計算機執行操作。計算機程式碼還必須足夠清晰,以便其他程式設計師可以閱讀和理解。
為了闡明這個問題,研究人員著手研究在閱讀計算機程式碼時大腦活動模式是否會與語言相關的大腦活動重疊。
研究人員在本研究中重點關注的兩種程式語言以可讀性著稱-Python和ScratchJr,這是一種專為5歲及5歲以上兒童設計的視覺化程式語言。研究物件均為精通測試語言的年輕人。當程式設計師躺在功能磁共振(fMRI)掃描器中時,研究人員向他們展示了程式碼片段,並要求他們預測程式碼將產生什麼動作。
研究人員幾乎看不到大腦語言區域對程式碼的反應。相反,他們發現編碼任務主要啟用了所謂的多需求網路。這個網路的活動遍佈整個大腦的額葉和頂葉,通常是為需要同時記住許多資訊的任務而招募的,它負責我們執行各種心理任務的能力。
儘管閱讀計算機程式碼會啟用多需求網路,但與數學或邏輯問題相比,它似乎更多地依賴於網路的不同部分,這表明編碼也不能精確地複製數學的認知需求。
先前的研究表明,數學和邏輯問題似乎主要取決於左半球的多個需求區域,而涉及空間導航的任務比右半球更能啟用右半球。麻省理工學院的小組發現,讀取計算機程式碼似乎可以啟用多需求網路的左側和右側,而ScratchJr啟用右側的程度要比左側高一些。這一發現違背了數學和編碼依賴相同大腦機制的假設。
 

經驗的影響
研究人員說,儘管他們沒有發現似乎專門用於程式設計的任何區域,但這種具有特殊大腦活動的人可能會在具有更多編碼經驗的人中發展。
Fedorenko說:“如果您聘用了以30年或40年的特定語言編寫程式碼的專業程式設計師,您可能會開始看到某些專業化知識,或者是多個需求系統某些部分的結晶。” “對於那些熟悉編碼並且可以有效地完成這些任務,但經驗相對有限的人來說,似乎您還看不到任何專業化知識。”
約翰·霍普金斯大學的一組研究人員在同一期eLife上發表的一篇伴隨論文中也報告說,解決程式碼問題可以啟用多需求網路,而不是語言區域。
研究結果表明,對於編碼應該以基於數學的技能還是基於語言的技能進行教授,尚無定論。研究人員說,部分原因是因為學習程式設計可能會同時依賴語言和多種需求系統,即使學習後程式設計也不依賴於語言區域。
兩個陣營宣稱,程式設計必須與數學結合在一起;或者程式設計必須與語言結合在一起。但是看來,電腦科學教育者將不得不開發自己的獨特方法來最有效地教授程式設計。




 

相關文章