“怎麼培養數學邏輯思維?來點編程試試?”大概這是很多人的既有認知,畢竟感覺程序員們的數學都挺好的。巴特,反轉來。來自巴黎大學的研究人員發現,小學生改用編程課學數學後,對成績不僅沒有明顯幫助,甚至會產生一些負面影響。
在歐幾裡得除法、加法分解、分數運算幾個方面,影響范圍為-0.16 ~ -0.21(值為負數即代表表現不如標準組)。而且編程軟件的可視化界面,還影響孩子的註意力集中能力。
沒錯,這裡說的就是風靡少兒編程圈的 Scratch,它最大的特點就是通過動畫塗鴉的表現方式,讓小孩子喜歡上編程。
△ 圖源百度百科
要知道,很多傢長給小孩報編程課就是為提高數學成績…… 怎麼現在反倒成絆腳石?
從編程邏輯轉到數學邏輯才是關鍵
其實這事兒的關鍵就是,小孩子們到底能不能把從編程裡學到的邏輯思維,轉化到數學方面。按照學習遷移的思路,通常認為計算機思維和技能是能夠輕松轉移到其他領域的。尤其在解決問題這方面,編程和數學被認為密切相關。
話雖如此,一直以來卻沒什麼有力的研究證明。
為搞清兩者之間的關系,2017 年 10 月到 2018 年 2 月,大概 4 個月的時間裡,研究團隊招募四、五年級共 2472 名學生進行實驗。這些學生年齡在 9-11 歲之間,來自 46 所學校的 107 個班級。
以學校為單位,學生隨機分配到兩個組別:編程組(28 所學校,68 個班級,1519 人)和對照組(18 所學校,41 個班級,953 人)。簡述一下實驗方法,就是讓兩組小孩分別上編程數學課和普通數學課,然後對比期末成績。
教學內容涉及三個部分,分別是歐幾裡得除法、加法分解和分數。以歐幾裡得除法為例,所有小孩都需要在數學寫作中構造一個方程,如 a = b*q + r。小孩們花同樣的時間來理解新的數學概念。看看教學實踐的具體操作。
假設有這樣一道題目:
把 23cm 的絲帶切割,分成幾個 5cm 的絲帶段和一個 3cm 的絲帶段。
編程組的小孩需要構建一種算法,使用指定長度(這裡是 5)的幾個跳轉和一個較短的(這裡是 3)通配符跳轉,移動數字條上的光標,以達到目標。
△ 編程組的練習截圖
對照組的小孩則采取傳統方法,用剪刀把絲帶剪成幾個部分,然後寫成代數公式:23 = (4*5) + 3。介紹一下,編程組小孩用的是 Scratch 圖形化編程。
Scratch 是 MIT“終身幼兒園團隊”在 2007 年發佈的一種圖形化編程工具。使用者可以不會英語,也可以不會鍵盤,隻要玩一個類似搭積木的動畫遊戲,就能避開復雜語法來學習編程思維。作為少兒編程入門課程,國內少兒編程班用的基本都是它。
回到實驗本身,在入學前、三個教學內容前後這七個時間點,兩組學生進行數學測驗。測驗內容大體分為三年級水平的數學知識、計算和解決問題的能力這三個知識點,旨在衡量相同技能。
每次測驗都會產生一個全局分數,並被居中和降低,以便比較不同概念的效果大小,如此一來,得到三次測驗後的是三個因變量。由於學生屬於各個班級,因此采用多級模型統計方法,它可以將因變量歸因於正確的水平。
模型規范過程包含四個步驟:
1、對空模型的每個概念進行估計,以估計類內方差和類間方差;
2、添加 1 級變量(學生特征);
3、添加 2 級變量(類別特征);
4、添加實驗變量(編程與傳統方法)。
為擬合解釋每個知識點最終表現的簡約模型,模型中刪除非顯著變量。模型中涉及變量的描述性統計如下。
△ 歐幾裡得除法的描述性統計
△ 加法分解的描述性統計
△ 分數的描述性統計
研究結果顯示,每個知識點的前測得分對最終成績有顯著的正向影響;入學分數對最終成績也有積極而顯著的影響,但這個效應小於前測效應。
而相比上普通數學課的小孩,上編程數學課的小孩影響都是負數:編程思維對最終性能的平均影響為−0.16 SD(歐幾裡得除法)、−0.19 SD(加性分解)和−0.21 SD(分數)。也就是說,對比對照組,編程組的學生進步更小。
盡管這些效應量在大型隨機試驗的預期范圍內,但效應量位於數學學習隨機試驗分佈的下尾。
研究人員認為,這些負面影響表示出,即使在老師指導水平不賴、且擁有“近遷移”假設的最佳條件下,從編程思維到數學思維的學習遷移並不能自發進行。
編程和數學的關系沒那麼簡單
實際上,如果從大腦活動角度來看,編程和解決數學邏輯問題時,激活的范圍也並不相同。此前研究表明,人類大腦在處理數學邏輯問題時,主要依賴於左腦的多需求(multiple demand,MD)網絡的分佈式網絡。
但是在 MIT 神經科學傢發現,當人在讀代碼(Python)時,似乎同時激活 MD 網絡的左右兩個部分。並且,讀 Scratch 可視化代碼(ScratchJr)時,對右側大腦的激活程度略高於左側大腦。也就是說,讀代碼和處理數學邏輯問題時的大腦活動並不相同。
有網友看最近的這項研究也表示,這次實驗之所以會得出一個出乎意料的結論,關鍵點或許不在編程上,而是 Scratch 到底適不適合小孩拿來學數學。
還有人提到,編程更像是結合邏輯、推理等方面的學科,而不是數學。
如果一定要把數學和編程聯系在一起,可能大傢更認可的是數學對編程的影響。
有位網友就想到自己的辛酸史 —— 他因為沒有拿到加拿大大學要求的數學成績,沒法攻讀計算機學位(好在最後他還是從事軟件開發)。
(在加拿大等國傢和地區,大多數大學級別 CS 課程的錄取都要求較高的數學成績,整個專業也會偏愛對數學有高度熱情的同學。)
但不可否認的是,的確有很多人在學編程後,數學物理都有提升。
隻能說編程肯定能幫助小孩學到一些技能,但會不會像一些機構吹得那麼神乎其神、宛若是學數學的捷徑,這事兒還有待驗證。
一作曾在南京大學任教
本篇論文的一作及通訊作者為 Manon Laurent。她現在是巴黎大學社會系的博士。此前曾在南京大學、康考迪亞大學、巴黎大學有過任教經驗。研究的興趣領域為中國城市社會關系。
話說,你學編程後,數學成績有提高嘛?
參考鏈接:
[1]https://www.sciencedirect.com/science/article/abs/pii/S0959475222000883#!
[2]https://www.publicbooks.org/author/manon-laurent/
[3]https://news.ycombinator.com/item?id=32728636
[4]https://www.cessma.org/LAURENT-Manon