人文科普:編程究竟是數學還是語言?
發布時間:2021-04-19
瀏覽次數:752
雖然編程與語言的相似性並非我們想象的那樣,但兩者似乎都是越早學越受益。

 

image.png

圖片來源:Pixabay

 

作者 青蘋果

來源 公眾(zhong) 號“數據實戰派”

 

2016 年蓋洛普民意測驗(Gallup poll)調查發現,在美國,大多數學校希望開始教授編程,且 66% 的美國基礎教育(簡稱 K-12 教育)學校的校長認為(wei) ,非計算機專(zhuan) 業(ye) 的學生也應該考慮學習(xi) 計算機科學。

 

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

 

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

 

盡管各行各業(ye) 在編程的教育上做了如此多的努力,但對於(yu) 如何教授編程仍然存在一些困惑。比如說,我們(men) 至今都沒搞明白,它究竟更像一種語言,還是更像數學?

 

尤其從(cong) 腦科學的角度來看,計算機編程是一種新穎的認知工具,已經改變了現代社會(hui) 。哪些認知和神經機製支持這項技能?這個(ge) 問題至關(guan) 重要,因為(wei) 它將決(jue) 定著我們(men) 的傳(chuan) 授該領域星空体育官网入口网站的方式應該遵循怎樣的底層方法。

 

正如麻省理工學院的神經科學家安娜・伊萬(wan) 諾娃(Anna Ivanova)所說:“我們(men) 有興(xing) 趣探討語言和計算機編程之間的關(guan) 係,部分原因在於(yu) ,計算機編程是一個(ge) 新的發明,我們(men) 知道不可能有任何結構上的硬件機製(hardwired mechanisms)讓我們(men) 成為(wei) 優(you) 秀的程序員。”

 

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

 

 

編程語言本質是什麽(me) ?兩(liang) 種不同的解答

 

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

 

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

 

在某些方麵,學習(xi) 計算機編程也與(yu) 學習(xi) 新語言相似。它要求學習(xi) 新的符號和術語,必須正確組織這些符號和術語以指導計算機該怎麽(me) 做。計算機代碼還必須足夠清晰,以便其他程序員可以閱讀和理解。

 

因此,依附於(yu) 該觀點之下,還有一個(ge) 頗為(wei) 時髦的縮寫(xie) :CAL, Coding as Another Language。而與(yu) 之對立的是,有些人認為(wei) 編程更像是學習(xi) 數學中的邏輯,即借助公式和算法來創建輸入和輸出。

 

究竟哪種方法更貼近真理?自編程進入到教育體(ti) 係以來,爭(zheng) 論就從(cong) 未休止,但目前看來,“語言派” 顯然已占據上風。比美國得克薩斯州、俄克拉何馬州和佐治亞(ya) 州的法律均允許高中生選修計算機科學課程,以完成他們(men) 的外語學分。

 

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

.

因此,去年年底麻省理工學院(MIT, Massachusetts Institute of Technology)的神經科學家試圖觀察人們(men) 在處理計算機編程時會(hui) 用到大腦的哪些區域和所對應的功能係統。

 

他們(men) 認為(wei) ,“解釋計算機代碼的能力是一種非凡的認知技能,與(yu) 包括一般執行功能、數學、邏輯和語言在內(nei) 的不同認知領域有著相似之處。”

 

image.png

 

考慮到一個(ge) 人成年後可以學會(hui) 編程的事實,它一定是依賴於(yu) 我們(men) 大腦中某些預先存在的認知係統。

 

由此看來,以下兩(liang) 個(ge) 大腦係統似乎是可能的 “候選者”:要麽(me) 是大腦的語言係統,要麽(me) 是處理複雜認知任務的係統,如解決(jue) 數學問題或填字遊戲的 “多需求網絡”(multiple demand network)。

 

 

大腦中的編程

 

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

 

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

 

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

 

image.png

實驗中的代碼示例和難題

 

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

 

其次,研究的控製任務包括兩(liang) 項:其一記住網格上的一係列方塊,以激活參與(yu) 者的多重需求係統;其二閱讀一個(ge) 正常和一個(ge) 無意義(yi) 的句子,以激活他們(men) 的語言係統。

 

最後,研究結果表明,當參與(yu) 者在閱讀代碼時,大腦的語言部分反應微弱,論文作者認為(wei) ,這很可能是在整個(ge) 過程中未涉及口語和聽力的原因。相反地,這些任務主要由多需求網絡處理。

 

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

 

該網絡大致可以分為(wei) 負責邏輯的左側(ce) 部分和主管抽象思維的右側(ce) 部分。此外,MIT 的研究人員發現,閱讀 Python 代碼似乎可以同時激活多需求網絡的左、右兩(liang) 側(ce) ,而在 ScratchJr 語言的實驗中則顯示,相對於(yu) 左側(ce) 來說,右側(ce) 激活的比例更大。

 

他們(men) 寫(xie) 道:“我們(men) 發現,盡管代碼和自然語言之間有許多相似之處,但語言係統在代碼理解過程中的反應並不一致。”

 

編程似乎進化出了新的處理網絡

 

有趣的是,解碼過程激活了多需求網絡的部分,而這些部分在解決(jue) 數學問題時沒有被激活,因此,大腦並沒有把它當作語言或邏輯來處理,它更像是自己獨立的一個(ge) 部分。

 

盡管閱讀計算機代碼可以激活多需求網絡,但與(yu) 數學或邏輯問題相比,它似乎更多地依賴於(yu) 網絡的不同部分,這表明編程並不能精確地複製數學的認知需求。

 

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

 

同時作者指出,這並不排除經驗豐(feng) 富的程序員可能有專(zhuan) 門用於(yu) 編碼的大腦區域的可能性。

 

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

 

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

 

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

 

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

 

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

 

Refenrence:

https://elifesciences.org/articles/58906


關(guan) 注【深圳科普】微信公眾(zhong) 號,在對話框:
回複【最新活動】,了解近期科普活動
回複【科普行】,了解最新深圳科普行活動
回複【研學營】,了解最新科普研學營
回複【科普課堂】,了解最新科普課堂
回複【科普書(shu) 籍】,了解最新科普書(shu) 籍
回複【團體(ti) 定製】,了解最新團體(ti) 定製活動
回複【科普基地】,了解深圳科普基地詳情
回複【觀鳥星空体育官网入口网站】,學習(xi) 觀鳥相關(guan) 科普星空体育官网入口网站
回複【博物學院】,了解更多博物學院活動詳情

聽說,打賞我的人最後都找到了真愛。
做科普,我們是認真的!
掃描關注深i科普公眾號
加入科普活動群
  • 參加最新科普活動
  • 認識科普小朋友
  • 成為科學小記者