程式設計是更像數學還是人類語言?- MIT News
關於大腦如何學習編碼,存在兩種思想流派。有人認為,要精通程式設計,就必須精通數學;另一個建議認為,由於編碼和語言之間的相似性,語言技能可能更相關。在某些方面,學習計算機程式設計與學習新語言相似。它需要學習新的符號和術語,必須正確組織這些符號和術語以指導計算機執行操作。計算機程式碼還必須足夠清晰,以便其他程式設計師可以閱讀和理解。
為了闡明這個問題,研究人員著手研究在閱讀計算機程式碼時大腦活動模式是否會與語言相關的大腦活動重疊。
研究人員在本研究中重點關注的兩種程式語言以可讀性著稱-Python和ScratchJr,這是一種專為5歲及5歲以上兒童設計的視覺化程式語言。研究物件均為精通測試語言的年輕人。當程式設計師躺在功能磁共振(fMRI)掃描器中時,研究人員向他們展示了程式碼片段,並要求他們預測程式碼將產生什麼動作。
研究人員幾乎看不到大腦語言區域對程式碼的反應。相反,他們發現編碼任務主要啟用了所謂的多需求網路。這個網路的活動遍佈整個大腦的額葉和頂葉,通常是為需要同時記住許多資訊的任務而招募的,它負責我們執行各種心理任務的能力。
儘管閱讀計算機程式碼會啟用多需求網路,但與數學或邏輯問題相比,它似乎更多地依賴於網路的不同部分,這表明編碼也不能精確地複製數學的認知需求。
先前的研究表明,數學和邏輯問題似乎主要取決於左半球的多個需求區域,而涉及空間導航的任務比右半球更能啟用右半球。麻省理工學院的小組發現,讀取計算機程式碼似乎可以啟用多需求網路的左側和右側,而ScratchJr啟用右側的程度要比左側高一些。這一發現違背了數學和編碼依賴相同大腦機制的假設。
經驗的影響
研究人員說,儘管他們沒有發現似乎專門用於程式設計的任何區域,但這種具有特殊大腦活動的人可能會在具有更多編碼經驗的人中發展。
Fedorenko說:“如果您聘用了以30年或40年的特定語言編寫程式碼的專業程式設計師,您可能會開始看到某些專業化知識,或者是多個需求系統某些部分的結晶。” “對於那些熟悉編碼並且可以有效地完成這些任務,但經驗相對有限的人來說,似乎您還看不到任何專業化知識。”
約翰·霍普金斯大學的一組研究人員在同一期eLife上發表的一篇伴隨論文中也報告說,解決程式碼問題可以啟用多需求網路,而不是語言區域。
研究結果表明,對於編碼應該以基於數學的技能還是基於語言的技能進行教授,尚無定論。研究人員說,部分原因是因為學習程式設計可能會同時依賴語言和多種需求系統,即使學習後程式設計也不依賴於語言區域。
兩個陣營宣稱,程式設計必須與數學結合在一起;或者程式設計必須與語言結合在一起。但是看來,電腦科學教育者將不得不開發自己的獨特方法來最有效地教授程式設計。
相關文章
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- python是函數語言程式設計嗎Python函數程式設計
- [譯] Bob,函數語言程式設計是什麼鬼?函數程式設計
- 【譯】需要學習的是程式設計,而不是程式語言程式設計
- 語言是 Go 還是 Golang?Golang
- 近乎函數語言程式設計是不起作用的 - Erik Meijer函數程式設計
- [譯] JavaScript 的函數語言程式設計是一種反模式JavaScript函數程式設計模式
- JavaScript函數語言程式設計學習JavaScript函數程式設計
- Go語言引數傳遞是傳值?還是傳引用 ?Go
- 程式語言設計,程式設計哲學程式設計
- 入門Python程式設計是培訓還是自學好?Python程式設計
- 新手學程式設計,到底是PHP好還是python好呢程式設計PHPPython
- 瞭解 JavaScript 函數語言程式設計 -- 什麼是純函式JavaScript函數程式設計函式
- 函數語言程式設計函數程式設計
- 我今天才知道:學習程式設計和學習程式語言是兩碼事程式設計
- 深入學習javascript函數語言程式設計JavaScript函數程式設計
- Python學習之函數語言程式設計Python函數程式設計
- Haskell學習-函數語言程式設計初探Haskell函數程式設計
- 學習C語言還是學習Python爬蟲?C語言Python爬蟲
- JavaScript 函數語言程式設計JavaScript函數程式設計
- Java 函數語言程式設計Java函數程式設計
- python函數語言程式設計Python函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- 函數語言程式設計,真香函數程式設計
- go語言引數傳遞到底是傳值還是傳引用Go
- 為什麼你還是學不會程式設計程式設計
- 都說python是最佳程式設計入門語言,為什麼你學習卻是如此坎坷?Python程式設計
- .NET併發程式設計-函數語言程式設計程式設計函數
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- Java語言程式設計——物件和類09Java程式設計物件
- 幽默:函數語言程式設計只是少數人的消遣? - Mike Hadlow函數程式設計
- 無需數學就能寫AI,MIT提出AI專用程式語言GenAIMIT
- 5分鐘學會 Python 函數語言程式設計Python函數程式設計
- 函數語言程式設計前菜函數程式設計
- 函數語言程式設計雜談函數程式設計
- 初見函數語言程式設計函數程式設計
- python函數語言程式設計一Python函數程式設計
- python函數語言程式設計二Python函數程式設計