大眾印象中,會(huì)編程的人一般數(shù)學(xué)都比較好。雖然不同程序員對(duì)此可能有不同觀點(diǎn),但通常也不能否認(rèn)數(shù)學(xué)功底在編程中的重要性。不過,在巴黎大學(xué)近期公布的一份報(bào)告中,研究人員發(fā)現(xiàn)數(shù)學(xué)和編程的關(guān)系并不像一般認(rèn)知中那么簡單。
這項(xiàng)研究的主要目的在于調(diào)查編程活動(dòng)是否可以作為小學(xué)四五年級(jí)的學(xué)生進(jìn)行數(shù)學(xué)學(xué)習(xí)的工具。研究結(jié)果顯示:
- 相比傳統(tǒng)的學(xué)習(xí)方法,編程活動(dòng)對(duì)數(shù)學(xué)學(xué)習(xí)并無益處。
- 編程對(duì)數(shù)學(xué)學(xué)習(xí)來說甚至有著輕微的消極影響。
- 從編程思維到數(shù)學(xué)思維的轉(zhuǎn)化有一定困難,并不那么不言自明。
- 可視化編程語言可能會(huì)分散學(xué)生在數(shù)學(xué)活動(dòng)中的注意力。
這一研究結(jié)果可能會(huì)讓不少希冀通過編程來鍛煉數(shù)學(xué)思維的家長大失所望,借由一門課達(dá)成編程&數(shù)學(xué)兩開花的想法也許并不實(shí)際。
編程組PK傳統(tǒng)組
先簡要介紹一下實(shí)驗(yàn)過程。研究人員將2472名小學(xué)生分成了兩組,其中1519人為編程組,953人為對(duì)照組。讓兩組小孩分別上編程數(shù)學(xué)課和傳統(tǒng)數(shù)學(xué)課,然后在同樣時(shí)間中學(xué)習(xí)同樣的數(shù)學(xué)知識(shí),最后通過考試來對(duì)比學(xué)習(xí)效果。
在經(jīng)過復(fù)雜的多級(jí)分析后,發(fā)現(xiàn)改用編程來學(xué)習(xí)數(shù)學(xué)的小學(xué)生,其學(xué)習(xí)成績并不盡如人意。面對(duì)研究人員安排的三個(gè)新概念——?dú)W幾里得除法、加法分解和分?jǐn)?shù),編程活動(dòng)對(duì)學(xué)習(xí)的影響均為負(fù)值,即編程組表現(xiàn)不如對(duì)照的傳統(tǒng)組。這也在某種程度上被歸因于從編程思維到數(shù)學(xué)思維的轉(zhuǎn)化存在一定難度。
還有一點(diǎn)值得注意的是,編程組學(xué)生采用的編程工具Scratch,是少兒編程中的入門級(jí)工具。因?yàn)樗荛_了復(fù)雜語法,允許使用者用類似搭積木的方式來實(shí)現(xiàn)功能,其可視化搭建的教學(xué)方式一直受到普遍認(rèn)可。但在本次實(shí)驗(yàn)中,或許也是因?yàn)檫@一點(diǎn),反而被認(rèn)為可能在學(xué)習(xí)中影響學(xué)生的集中度。
Scratch界面@少兒編程教程網(wǎng)
其實(shí)對(duì)于數(shù)學(xué)和編程之間的關(guān)系,爭議一直都在。有人認(rèn)為,為了精通編程,必須強(qiáng)化數(shù)學(xué)能力。也有人認(rèn)為,由于編程是通過語言實(shí)現(xiàn),語言技能可能更具相關(guān)性。
之前MIT的神經(jīng)科學(xué)家就曾在eLife期刊發(fā)表過一項(xiàng)研究。據(jù)悉,研究人員用于測試的編程工具有兩個(gè),一是Python,二是ScratchJr。被試人員都是精通編程語言的年輕人。
通過對(duì)被試人員的大腦進(jìn)行掃描和分析,發(fā)現(xiàn)代碼閱讀時(shí),大腦中涉及語言處理的區(qū)域并沒有激活,主要激活的是一個(gè)被稱為MD(multiple
demand)的網(wǎng)絡(luò),MD網(wǎng)絡(luò)主要用于處理比較復(fù)雜的認(rèn)知任務(wù),數(shù)學(xué)或邏輯相關(guān)的問題也包含在內(nèi)。而在進(jìn)一步研究中,科學(xué)家發(fā)現(xiàn),實(shí)際上這和數(shù)學(xué)也沒關(guān)聯(lián),代碼閱讀的過程更依賴于MD網(wǎng)絡(luò)的其他部分。簡言之,人類在理解編程語言時(shí),大腦的活動(dòng)機(jī)制既不傾向于“語言”,也不傾向于“數(shù)學(xué)邏輯”,而是獨(dú)立的。
少兒編程是智商稅嗎?
盡管多項(xiàng)研究已經(jīng)證明,編程好不等同于數(shù)學(xué)好,編程能力的培養(yǎng)和數(shù)學(xué)能力的培養(yǎng)也是兩回事,但就學(xué)習(xí)編程本身來說,近年來大眾的熱情還是很高漲,越來越低齡化的趨勢(shì)也值得引起關(guān)注。那么,風(fēng)靡一時(shí)的少兒編程是不是另一種巧立名目的“智商稅”呢?
Simplifying JavaScript一書的作者、資深開發(fā)者Joe Morgan曾經(jīng)專門撰文,就家長是否應(yīng)該讓孩子從小去學(xué)編程這一問題發(fā)表觀點(diǎn)。在他看來,家長之所以會(huì)push小孩去學(xué)編程,主要基于兩點(diǎn)原因:其一,未來肯定是自動(dòng)化社會(huì),面對(duì)未來,學(xué)會(huì)編程有備無患;其二,如果學(xué)習(xí)編程是好的,那么不如早點(diǎn)學(xué)。
就像有些培訓(xùn)班所宣揚(yáng)的口號(hào)Coding Is the New Literacy,盡管聽起來很荒謬,但也一定程度上解釋了為何有些家長會(huì)認(rèn)為編程是未來必不可少的一項(xiàng)技能。不過,Joe Morgan并不支持這一觀點(diǎn)。
他認(rèn)為,最好不要讓孩子從小學(xué)編程。理由在于:好的程序員不僅僅是寫代碼,更多是寫出好代碼。如何讓代碼清晰整潔、可復(fù)用才是關(guān)鍵。代碼的美感和代碼的功能實(shí)現(xiàn)一樣重要。但如果是強(qiáng)迫小孩去學(xué)習(xí)編程,灌輸那些程式觀念,就猶如在告訴他們:寫出來的代碼能用即可,而那些關(guān)于質(zhì)量把控、創(chuàng)造性和代碼美感的知識(shí)卻并不能通過這種方式來習(xí)得,也沒有必要花時(shí)間去習(xí)得。這反而是在扼殺孩子的好奇心。他給出的忠告是:Adults can learn syntax. Only kids can learn to embrace curiosity.(成年人可以直接去學(xué)習(xí)編碼,孩子們則需要發(fā)掘他們的好奇心)
中國的家長朋友們對(duì)于少兒編程的看法也是天差地別。在相關(guān)問題的討論中,支持者和反對(duì)者的意見可謂涇渭分明。
支持方認(rèn)為,孩子小的時(shí)候?qū)W習(xí)編程,一方面能發(fā)現(xiàn)是否是興趣所在,另一方面讓其更有勇氣嘗試新事物,培養(yǎng)自信心。學(xué)編程到底有沒有用,關(guān)鍵在于你的期待是什么,孩子學(xué)了之后能做些什么。
“孩子學(xué)編程到底有沒有用?”討論截圖@知乎
反對(duì)者則認(rèn)為,“少兒編程”就是個(gè)噱頭,純粹是利潤驅(qū)使下販賣焦慮的產(chǎn)物。也許有的家長會(huì)在“不讓孩子輸在起跑線上”的思想作祟下,而考慮讓孩子去學(xué)編程,但實(shí)際學(xué)的東西完全是形式大于內(nèi)容,不如學(xué)點(diǎn)實(shí)際的知識(shí)和技能。
“孩子學(xué)編程到底有沒有用?”討論截圖@知乎
還有人更加直截了當(dāng),認(rèn)為關(guān)鍵還是取決于孩子本身是否對(duì)此有興趣,而不是從有沒有用這種角度去考慮。
“孩子學(xué)編程到底有沒有用?”討論截圖@知乎
讀到此處的你,對(duì)此有什么看法呢?
參考鏈接:
https://www.sciencedirect.com/science/article/abs/pii/S0959475222000883
https://baijiahao.baidu.com/s?id=1686481432336853445
https://slate.com/human-interest/2018/12/against-teaching-kids-to-code-creativity-problem-solving.html
https://www.zhihu.com/question/534000703