偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

編程究竟是數(shù)學(xué)還是語言?程序員的大腦又如何處理計算機語言?

開發(fā) 后端
2016 年蓋洛普民意測驗(Gallup poll)調(diào)查發(fā)現(xiàn),在美國,大多數(shù)學(xué)校希望開始教授編程,且 66% 的美國基礎(chǔ)教育(簡稱 K-12 教育)學(xué)校的校長認(rèn)為,非計算機專業(yè)的學(xué)生也應(yīng)該考慮學(xué)習(xí)計算機科學(xué)。

 2016 年蓋洛普民意測驗(Gallup poll)調(diào)查發(fā)現(xiàn),在美國,大多數(shù)學(xué)校希望開始教授編程,且 66% 的美國基礎(chǔ)教育(簡稱 K-12 教育)學(xué)校的校長認(rèn)為,非計算機專業(yè)的學(xué)生也應(yīng)該考慮學(xué)習(xí)計算機科學(xué)。

大多數(shù)歐洲國家都在學(xué)校課程中增設(shè)了編程課和計算機科學(xué),其中法國和西班牙早在 2015 年就開設(shè)了這些課程。很顯然,在這樣高速增長的勢頭之下,新生代程序員持續(xù)涌現(xiàn),預(yù)計會將全球開發(fā)人員的規(guī)模從 2019 年的 2390 萬增加到 2024 年的 2870 萬。

而在中國,編程教育有多火熱就更不用贅述了,“內(nèi)卷” 這個詞便被頻頻用來形容該領(lǐng)域。

盡管各行各業(yè)在編程的教育上做了如此多的努力,但對于如何教授編程仍然存在一些困惑。

比如說,我們至今都沒搞明白,它究竟更像一種語言,還是更像數(shù)學(xué)?

尤其從腦科學(xué)的角度來看,計算機編程是一種新穎的認(rèn)知工具,已經(jīng)改變了現(xiàn)代社會。哪些認(rèn)知和神經(jīng)機制支持這項技能?

這個問題至關(guān)重要,因為它將決定著我們的傳授該領(lǐng)域知識的方式應(yīng)該遵循怎樣的底層方法。

正如麻省理工學(xué)院的神經(jīng)科學(xué)家安娜・伊萬諾娃(Anna Ivanova)所說:“我們有興趣探討語言和計算機編程之間的關(guān)系,部分原因在于,計算機編程是一個新的發(fā)明,我們知道不可能有任何結(jié)構(gòu)上的硬件機制(hardwired mechanisms)讓我們成為優(yōu)秀的程序員。”

安娜・伊萬諾娃也和她的同事進行了一項新的研究,嘗試通過觀察受試者在閱讀 Python 代碼時的大腦活動,來回答這個問題。

編程語言本質(zhì)是什么?兩種不同的解答

目前,針對上述疑問,存在兩種思想流派 ——“語言派” 和 “數(shù)學(xué)派”。

其中,較為流行的觀點是,編程是一種語言,必須遵循自己的語法規(guī)則和語義規(guī)則。畢竟,它們被稱為編程語言是有原因的。

在某些方面,學(xué)習(xí)計算機編程也與學(xué)習(xí)新語言相似。它要求學(xué)習(xí)新的符號和術(shù)語,必須正確組織這些符號和術(shù)語以指導(dǎo)計算機該怎么做。計算機代碼還必須足夠清晰,以便其他程序員可以閱讀和理解。

因此,依附于該觀點之下,還有一個頗為時髦的縮寫:CAL, Coding as Another Language。

而與之對立的是,有些人認(rèn)為編程更像是學(xué)習(xí)數(shù)學(xué)中的邏輯,即借助公式和算法來創(chuàng)建輸入和輸出。

究竟哪種方法更貼近真理?自編程進入到教育體系以來,爭論就從未休止,但目前看來,“語言派” 顯然已占據(jù)上風(fēng)。

比如說,在美國德克薩斯州(Texas)、俄克拉何馬州(Oklahoma)和喬治亞州(Georgia)的法律均允許高中生選修計算機科學(xué)課程,以完成他們的外語學(xué)分。

但這場辯論對神經(jīng)科學(xué)家似乎有著特殊的意義:由于計算機編程才出現(xiàn)了幾十年,大腦還沒有進化出任何特殊的區(qū)域來對其進行處理,所它必須重新利用大腦中通常用來處理其他事情的區(qū)域。

.因此,就在去年年底,麻省理工學(xué)院(MIT, Massachusetts Institute of Technology)的神經(jīng)科學(xué)家試圖觀察人們在處理計算機編程時會用到大腦的哪些區(qū)域和所對應(yīng)的功能系統(tǒng)。

他們認(rèn)為,“解釋計算機代碼的能力是一種非凡的認(rèn)知技能,與包括一般執(zhí)行功能、數(shù)學(xué)、邏輯和語言在內(nèi)的不同認(rèn)知領(lǐng)域有著相似之處。”

 

考慮到一個人成年后可以學(xué)會編程的事實,它一定是依賴于我們大腦中某些預(yù)先存在的認(rèn)知系統(tǒng)。

由此看來,以下兩個大腦系統(tǒng)似乎是可能的 “候選者”:要么是大腦的語言系統(tǒng),要么是處理復(fù)雜認(rèn)知任務(wù)的系統(tǒng),如解決數(shù)學(xué)問題或填字游戲的 “多需求網(wǎng)絡(luò)”(multiple demand network)。

大腦中的編程

在這支 MIT 團隊的實驗中,研究人員要求精通代碼的參與者躺在磁共振功能成像(fMRI, Functional Magnetic Resonance Imaging)機器中,以方便測量他們的大腦活動,規(guī)則是要求被試者閱讀編程問題并預(yù)測輸出答案。

在這項研究中使用的兩種編程語言是以 “可讀性”(readability)著稱的 Python 和 ScratchJr。其中,后者是以符號為基礎(chǔ),專門為兒童開發(fā)的語言,以便尚未學(xué)會閱讀的兒童也可以使用它。

首先,研究的主要任務(wù)包括給定一個人的身高和體重參數(shù),讓參與者計算一個人的身體質(zhì)量指數(shù)(BMI, Body Mass Index)。

 

 

 

 

實驗中的代碼示例和難題

這個問題要么以 Python 風(fēng)格的代碼的形式呈現(xiàn),要么以普通句子的形式呈現(xiàn)。類似地,ScratchJr 也采用了同樣的方法,只是參與者被要求去追蹤小貓走路和跳躍時的位置。

其次,研究的控制任務(wù)包括兩項:其一記住網(wǎng)格上的一系列方塊,以激活參與者的多重需求系統(tǒng);其二閱讀一個正常和一個無意義的句子,以激活他們的語言系統(tǒng)。

最后,研究結(jié)果表明,當(dāng)參與者在閱讀代碼時,大腦的語言部分反應(yīng)微弱,論文作者認(rèn)為,這很可能是在整個過程中未涉及口語和聽力的原因。相反地,這些任務(wù)主要由多需求網(wǎng)絡(luò)處理。

具體來說,多需求網(wǎng)絡(luò)分布在我們大腦的額葉(frontal lobes)和頂葉(parietal lobes),它主要負(fù)責(zé)處理復(fù)雜繁重的心理任務(wù),即日常生活中我們需要努力思考的部分。

該網(wǎng)絡(luò)大致可以分為負(fù)責(zé)邏輯的左側(cè)部分和主管抽象思維的右側(cè)部分。此外,MIT 的研究人員發(fā)現(xiàn),閱讀 Python 代碼似乎可以同時激活多需求網(wǎng)絡(luò)的左、右兩側(cè),而在 ScratchJr 語言的實驗中則顯示,相對于左側(cè)來說,右側(cè)激活的比例更大。

他們寫道:“我們發(fā)現(xiàn),盡管代碼和自然語言之間有許多相似之處,但語言系統(tǒng)在代碼理解過程中的反應(yīng)并不一致。”

編程似乎進化出了新的處理網(wǎng)絡(luò)

有趣的是,解碼過程激活了多需求網(wǎng)絡(luò)的部分,而這些部分在解決數(shù)學(xué)問題時沒有被激活,因此,大腦并沒有把它當(dāng)作語言或邏輯來處理,它更像是自己獨立的一個部分。

盡管閱讀計算機代碼可以激活多需求網(wǎng)絡(luò),但與數(shù)學(xué)或邏輯問題相比,它似乎更多地依賴于網(wǎng)絡(luò)的不同部分,這表明編程并不能精確地復(fù)制數(shù)學(xué)的認(rèn)知需求。

“這些發(fā)現(xiàn)表明,大腦將編碼視為一個獨特而復(fù)雜的過程。理解計算機代碼似乎是獨立的事件。它和語言不一樣,和數(shù)學(xué)和邏輯也不一樣……”,麻省理工學(xué)院研究生、該研究的主要作者安娜・伊萬諾娃說。

同時作者指出,這并不排除經(jīng)驗豐富的程序員可能有專門用于編碼的大腦區(qū)域的可能性。

去年,日本神經(jīng)科學(xué)家做的另一項實驗,支持解釋了計算機代碼所涉及的大腦獨特過程。

在那項研究中,分別向新手級、經(jīng)驗級和專家級程序員展示代碼片段,與此同時,他們需要躺在 fMRI 中完成將這些代碼片段分類到四種類型算法的任務(wù)。

正如預(yù)期的那樣,具有更高技能的程序員可以更好地分類代碼片段。

不過,研究人員還發(fā)現(xiàn),與自然語言處理(natural language processing)、情景記憶檢索(episodic memory retrieval)和注意力控制(attention control)相關(guān)的大腦區(qū)域的活動,也隨著程序員的技能水平而加強。

由此看來,雖然編程與語言的相似性并非我們想象的那樣,但兩者似乎都是越早學(xué)越受益。

責(zé)任編輯:華軒 來源: 數(shù)據(jù)實戰(zhàn)派
相關(guān)推薦

2011-02-28 09:51:43

內(nèi)省

2010-06-28 14:47:45

云計算

2018-07-05 16:15:26

緩存數(shù)據(jù)cache miss

2019-06-04 14:15:08

JavaScript V8前端

2019-07-22 15:29:53

JavaScriptGitHub語言

2021-02-03 05:25:39

存儲層次化代碼

2009-02-27 09:25:28

編程語言程序員C#

2009-07-28 08:28:15

2019-10-21 13:58:22

爬蟲互聯(lián)網(wǎng)程序員

2012-08-20 10:34:07

軟件開發(fā)開發(fā)軟件

2016-11-01 15:16:52

QQ狀態(tài)即時通訊

2019-04-26 13:55:02

Istio微服務(wù)架構(gòu)

2009-05-06 16:10:17

Java傳值引用

2011-02-16 16:13:40

Debian

2021-01-05 09:23:49

網(wǎng)頁端消息

2024-10-18 14:43:31

2020-07-08 08:09:08

邊緣計算邊緣云云平臺

2019-09-10 12:58:03

電腦編程語言硬件

2010-03-26 17:50:17

Python設(shè)計理念

2019-02-14 10:10:11

系統(tǒng)廠商芯片
點贊
收藏

51CTO技術(shù)棧公眾號