來源:公元2016 作者:Zoey2016 2018-06-12 16:15:46
隨著計算機就業(yè)市場持續(xù)火爆,和STEAM相關的教育產(chǎn)品越發(fā)炙手可熱,我經(jīng)常遇到朋友詢問孩子該學什么編程語言,并讓推薦靠譜編程興趣班。
我計算機科班出身,97年畢業(yè)后在IT行業(yè)里打拼,2004年起一直在加拿大高中教計算機編程和機器人設計,教過成百上千計的學生,所以也勉強算得上是行內(nèi)人士。我不反對孩子從小學編程,只是對孩子從小學編程的效果持保留看法。
本文從一線編程老師的視角,基于兒童認知發(fā)展心理學理論,結合教學實踐中的觀察和思考,陳述了一些關于孩子學編程的客觀事實,希望能對想讓孩子學編程的家長有所啟示。
1. 從小學過編程的孩子,長大系統(tǒng)學編程時,跟同齡人比,沒有明顯優(yōu)勢
在從小學編程的孩子中有兩類,一類是強烈的興趣驅(qū)使,自發(fā)的深入鉆研下去;還有一類是受父母影響,從小開始在興趣班學習編程。
比爾蓋茨和伊隆馬斯克屬于前者, 兩人都是不可世出的天才,普通人不具有可比性。
我所接觸的從小學編程的孩子,大都屬于后者。 在教學實踐中,我發(fā)現(xiàn)這些孩子因為學過所以一開始入門要比其他孩子快,但是隨著內(nèi)容深入,尤其當學到條件循環(huán),一維數(shù)組,他們的表現(xiàn)和其他第一次接觸編程的孩子基本沒有區(qū)分度。 而且這類孩子當中,有些還會存在這樣一個問題:先入為主靠機械模仿形成的思維定勢,很難糾正。
比如說,教過一個從三年級開始就用樂高編程的孩子,寫條件循環(huán)的時候總是不假思索的上來就先寫一個無限循環(huán) while(1==1),然后在循環(huán)體里再用if語句判斷循環(huán)終止條件,通過break終止循環(huán)執(zhí)行。而對于課堂上反復強調(diào)的通過設置變量初始條件,然后合理選擇條件來控制循環(huán)的模式,置若罔聞。
超前學習的孩子,如果學的時候深入鉆研,徹底學透的話倒還好;最怕的當時學的一知半解,似懂非懂。而當按照正常進度在學校系統(tǒng)學習同樣的知識的時候,很難沉下心再去學,總是覺得自己已經(jīng)會了,直接去做題。而做練習的時候,因為當初并沒有完全理解,不可避免的出現(xiàn)用編程定勢去生搬硬套的現(xiàn)象。
年復一年,這樣的現(xiàn)象每年都在教室里重演。
萬物生長皆有時,人的認知也是一個循序漸進的過程,不遵守自然規(guī)律的拔苗助長,非但培養(yǎng)不出孩子在學科(比如數(shù)學,編程)上的優(yōu)勢,還扼殺了孩子自發(fā)的探索未知的興趣和好奇心。
2. 編程不是童子功,并非越早學越好
有些技能比如樂器,靠的是肌肉記憶和聽覺記憶,從小開始學比長大之后再學能培養(yǎng)出更好的手指運動機能、手指獨立性、柔韌性以及控制能力;同時聽力音感也是需要從小訓練,大了之后,很多音耳朵就再也區(qū)別不出來了。
但是編程不是,表面上看,編程是學習一門編程語言,內(nèi)里培養(yǎng)的是其實是孩子認識問題和解決問題的思維方式,而這種思維方式可以跨界應用到其他領域的學習和實踐中, 這種思維方式即為編程思維。
編程思維簡單來說,就是能夠把現(xiàn)實生活中的復雜問題,逐步拆分成可理解的小問題,(Decomposition拆分),接著根據(jù)已有的知識和經(jīng)驗,找出新問題和以前解決過的問題的相似性,舉一反三琢磨出規(guī)律(Pattern Recognition模式識別),然后將問題里涉及的數(shù)據(jù)抽象(Abstraction)到數(shù)據(jù)結構(變量,數(shù)組,鏈表等等),把數(shù)據(jù)處理過程可重復執(zhí)行部分抽象(Abstraction)成函數(shù)模塊,通過循環(huán)執(zhí)行,最后根據(jù)前三步的分析成果,設計步驟,寫出算法(Algorithms),從而解決問題。(如果有興趣了解編程思維,可以參考我去年寫過一篇關于編程思維的文章)
由此不難看出,培養(yǎng)編程思維的前提條件是有扎實的數(shù)學知識,尤其是代數(shù)基礎和抽象思維能力。根據(jù)兒童認知心理學鼻祖Jean Piaget的理論,孩子的抽象思維能力的形成是在11歲到16歲之間,而代數(shù)學習按正常的教學進度也是在初中以后。所以如果孩子數(shù)學基礎沒打牢,抽象思維還沒有建立起來,談編程思維無疑是空中樓閣。
在安大略省正式編程課到10年級才開設,即便對于15,6歲的孩子來說,編程這門課學的也絕不輕松。
而在大學錄取這塊兒,包括滑鐵盧在內(nèi)的計算機專業(yè)都不要求學生在高中任何編程經(jīng)驗。我曾經(jīng)專門跟滑鐵盧大學計算機系本科教學老師Sandy Graham專門請教過,Sandy在多年教學實踐也發(fā)現(xiàn),在滑鐵盧本科生中,中學上過編程課和以前從沒有接觸過編程的孩子相比,并沒有明顯優(yōu)勢。相形之下,倒是數(shù)學好的孩子后勁更足。
Geoffrey Hinton,當今機器學習領域當之無愧的教父級人物,也是持同樣的觀點。十年前,人工智能遠沒有今天的熱度,Hinton因為女兒在我班上,他主動聯(lián)系過來給學生們講講機器學習研究和進展,希望能夠激勵更多孩子投身于機器學習領域。感謝他熱心之余,我連忙跟他確認來參加講座的學生是否需要有計算機方面的背景知識,是不是該至少學過AP計算機。得到的回復是:不需要,只需要數(shù)學,最好能了解微積分就可以了。
綜上所述,編程不是童子功,什么時候?qū)W都可以。如果想將來在計算機領域有長足發(fā)展,學好數(shù)學是王道。
相關推薦:
小升初試題、期中期末題、小學奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號
歡迎使用手機、平板等移動設備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點擊查看