(圖片:Pixabay)
隨著人工智能的快速崛起,很多科幻電影里面的場景正在離我們的生活越來越近,智能家居,無人駕駛車輛,人工智能醫(yī)療等等正在變成觸手可及的現(xiàn)實(shí)。作為支撐這些技術(shù)的核心技能,編程正在被更多的人談及和關(guān)注,越來越多的家長也開始關(guān)心是否需要讓自己的孩子學(xué)習(xí)編程這樣的問題。
“如果我的孩子并不一定要成為一個(gè)程序員,那么為什么需要學(xué)習(xí)編程呢?”這是家長經(jīng)常來問我們的問題。通常我會問家長:“你送孩子去學(xué)鋼琴,是希望孩子成為職業(yè)鋼琴家嗎?送孩子去學(xué)圍棋,是希望孩子成為職業(yè)棋手嗎?”通常家長的回答都是:“不是的,我們只是希望孩子能獲得一些音樂的啟蒙,培養(yǎng)一個(gè)愛好,訓(xùn)練一下孩子的思維,能讓孩子坐得住”。兒童編程學(xué)習(xí)也是一樣的,并不是為了孩子將來一定從事計(jì)算機(jī)行業(yè)做準(zhǔn)備的。
誠然會有少數(shù)的孩子會在編程學(xué)習(xí)過程中展現(xiàn)出不同尋常的天賦,在這條道路上找到了自己的興趣所在,并最終選擇了計(jì)算機(jī)科學(xué)領(lǐng)域作為自己的職業(yè)方向。這樣的例子包括比爾·蓋茨,馬克·扎克伯格等等,他們都是在少年時(shí)期即對編程產(chǎn)生濃厚興趣,并展現(xiàn)出過人的天賦,這也成為他們之后創(chuàng)立各自的企業(yè)并取得巨大成功的一個(gè)非常重要的起點(diǎn)。
不過對于絕大多數(shù)孩子來說,情況也許并不是這樣。他們學(xué)習(xí)編程并非一定要成為程序員,更不一定要為將來創(chuàng)業(yè)做準(zhǔn)備,但是他們同樣能從編程學(xué)習(xí)中獲益,獲得多方面的思維訓(xùn)練。而這些方面的訓(xùn)練,正是目前國內(nèi)K12教育體系中比較缺乏的東西。從這樣意義出發(fā),我們喜歡將編程學(xué)習(xí)稱之為一個(gè)思維訓(xùn)練的道場。為什么這樣說呢?和一些棋類項(xiàng)目類似,編程所在的環(huán)境是一個(gè)人造的,邊界清晰,自洽的環(huán)境,這個(gè)環(huán)境有自己的規(guī)則,這些規(guī)則并不是非常復(fù)雜,但是卻可以從中變幻出無窮無盡的可能,你的思維能力的邊界就是這個(gè)世界的邊界。每個(gè)學(xué)生都可以在在這個(gè)思維的道場中不斷練習(xí),不斷磨練,提高自己的思維段位,有一天可以像《Matrix》里面的Neo一樣說:“I know Kung Fu!”
具體說來,通過學(xué)習(xí)編程,除了通常被提及的一些如促進(jìn)學(xué)科知識學(xué)習(xí),了解計(jì)算機(jī)如何工作等知識層面的益處之外,在更深層次的思維和學(xué)習(xí)心理方面,孩子至少可以在這幾個(gè)方面受益:
1.邏輯思維的訓(xùn)練
邏輯思維在編程學(xué)習(xí)中非常重要。邏輯是程序的基石,邏輯是程序的靈魂。遺憾的是在目前國內(nèi)的K12教學(xué)內(nèi)容當(dāng)中,邏輯思維方面的訓(xùn)練是非常缺乏的。
這方面的缺失帶來很多問題,比如學(xué)生在寫作中經(jīng)常會犯基本的邏輯錯誤,在與別人的辯論中缺乏足夠的邏輯能力來支撐自己的論點(diǎn)等等。這些缺陷的影響比我們想象的更加深遠(yuǎn),可能會因?yàn)檫@個(gè)影響到留學(xué)申請 Essay 的質(zhì)量,也可能會導(dǎo)致將來在職場競爭中受挫。編程學(xué)習(xí)是邏輯思維訓(xùn)練的一個(gè)非常有效的方式,因?yàn)樵谶@個(gè)人造的,邊界清晰,自洽的環(huán)境中,邏輯的錯誤導(dǎo)致的結(jié)果非常清晰:就是程序沒有按照正確的方式運(yùn)行。這會給學(xué)生一個(gè)即時(shí)的反饋,學(xué)生會自然而然的想辦法修正自己的邏輯錯誤。通過這樣的反復(fù)練習(xí)和修正,學(xué)生的邏輯思維能力可以得到明顯的提升。
2.語言學(xué)習(xí)能力的訓(xùn)練
沒錯,編程語言也是一門語言,不過相對于自然語言來說,它的規(guī)則要簡單很多,語法也嚴(yán)格很多。我們知道一門自然語言的學(xué)習(xí)周期是很長的,而編程語言這些相對簡單并且嚴(yán)格的語法規(guī)則,對孩子們來說,更像是在學(xué)習(xí)一門簡化的新語言,一門可以與機(jī)器交流的語言。而且能迅速獲得反饋和交流的樂趣,因?yàn)榭梢宰層?jì)算機(jī)聽自己指揮,看到自己的程序?qū)崿F(xiàn)了自己想要的效果。這其實(shí)是一個(gè)非常神奇的體驗(yàn),有些像電影《降臨》中 Louise 通過學(xué)習(xí)外星生物的語言,理解他們的意圖并與之交流的那種體驗(yàn)。通過學(xué)習(xí)這門新的語言,孩子們多了一種自我表達(dá)的手段,不但可以讓計(jì)算機(jī),機(jī)器人聽自己的指揮,讓自己的創(chuàng)造力變成現(xiàn)實(shí),甚至是解決實(shí)際的問題,還可以利用互聯(lián)網(wǎng)的力量,通過分享,發(fā)布自己的程序和作品,讓成千上萬的人看到。
3.敢于試錯的勇氣
在編程世界里面,犯錯是常態(tài)。可以說編程就是一個(gè)不斷試錯,不斷 Debug ,最后終于讓程序按照自己的設(shè)想運(yùn)行的過程。相對于其他學(xué)科而言,編程的試錯,修正,調(diào)試周期是非常短的,也就意味著試錯成本是非常低的,低到學(xué)生們可能都意識不到自己是在不斷試錯。這樣孩子們在潛移默化中內(nèi)心變的更加強(qiáng)大,能更加平和的面對挫折和失敗,并且能夠不斷嘗試各種可能,最終解決問題。這樣的學(xué)習(xí)過程和應(yīng)試教育的學(xué)習(xí)模式頗有不同,應(yīng)試教育從很多層面上來說是不鼓勵試錯的,因?yàn)樵囧e的成本很高,這樣容易導(dǎo)致學(xué)生的心理脆弱,不能正確的面對和處理挫折和失敗。相反編程學(xué)習(xí)的這種學(xué)習(xí)過程更接近成年后在現(xiàn)實(shí)社會中學(xué)習(xí)和成長的方式,可以幫助學(xué)生在兒童時(shí)期就培養(yǎng)起良好的學(xué)習(xí)心理狀態(tài)和習(xí)慣,而這些是實(shí)現(xiàn)終身學(xué)習(xí)的必備技能。
4.專注力
編程學(xué)習(xí)是一個(gè)要求非常專注的學(xué)習(xí)過程,這對較低年齡的孩子來說可能是一個(gè)挑戰(zhàn)。不過編程學(xué)習(xí)有一個(gè)有別于其他學(xué)科的巨大優(yōu)勢就是相對容易實(shí)現(xiàn)游戲化學(xué)習(xí)。通過類似游戲的角色代入,關(guān)卡設(shè)置,勛章獎勵等手段,可以讓學(xué)生更加沉浸在編程學(xué)習(xí)情境之中,更加專注的學(xué)習(xí),無形當(dāng)中提升了學(xué)生的學(xué)習(xí)專注力。所以對兒童編程學(xué)習(xí)而言,不論是由教師來現(xiàn)場授課,還是通過軟件工具來進(jìn)行引導(dǎo)式學(xué)習(xí),最好的教學(xué)方式就是游戲化教學(xué)方式。
目前市場上有很多兒童編程學(xué)習(xí)產(chǎn)品,有的是采用圖形化編程,即學(xué)生在屏幕上拖拽模塊完成程序;有的是代碼式編程,學(xué)生需要輸入代碼。究竟選擇哪一種方式跟孩子的年齡,與學(xué)生的認(rèn)知能力有關(guān)。通常認(rèn)為,圖形話編程更適合較低年齡的學(xué)生,代碼編程更適合年齡稍大的學(xué)生。其實(shí)不管是圖形話編程還是代碼編程學(xué)習(xí),我們認(rèn)為更重要的是課程設(shè)置的方式。目前市場上有些機(jī)構(gòu)的兒童編程課程設(shè)置,采用的是和成人學(xué)習(xí)編程類似的設(shè)置,比如先學(xué)語法,再學(xué)數(shù)據(jù)結(jié)構(gòu)等等,我們認(rèn)為這種簡單的將成人課程移植到兒童編程領(lǐng)域的方法,并不符合兒童的認(rèn)知能力和學(xué)習(xí)方式,效果不會很好。
前面提到游戲化學(xué)習(xí)對于編程學(xué)習(xí)來說,是非常適合的方式。這種方式符合兒童青少年的認(rèn)知能力,對學(xué)生有很大的吸引力。那么一款兒童編程學(xué)習(xí)軟件,或APP的質(zhì)量,很大程度上取決于他們游戲化設(shè)計(jì)的是否合理,是否有趣,對兒童有足夠的吸引力,并且有足夠豐富的關(guān)卡和編程知識作為內(nèi)容支持。
我們體驗(yàn)試用了多款兒童編程產(chǎn)品,從游戲化設(shè)計(jì)是否合理有趣,內(nèi)容是否充實(shí)豐富,社區(qū)是否活躍等幾個(gè)維度,精心挑選了幾款高質(zhì)量的游戲化編程學(xué)習(xí)產(chǎn)品,給各位家長和學(xué)生作為參考。
Tynker(www.tynker.com)
(圖片:Tynker)
這家總部位于美國加州的公司是最早開始做兒童游戲化編程的企業(yè)之一。全球用戶超過四千萬,有六萬所學(xué)校是他們的客戶。他們最大的優(yōu)勢是產(chǎn)品的種類非常豐富,有圖形化拖拽式編程,也有代碼編程。與 scratch 等只提供了學(xué)習(xí)工具軟件的產(chǎn)品不同, Tynker 所有的課程設(shè)置都以游戲化方式設(shè)計(jì),學(xué)生在游戲設(shè)置的環(huán)境中,通過闖關(guān)的方式,學(xué)習(xí)編程知識,課程還包括內(nèi)置的伴隨式幫助系統(tǒng),給學(xué)生提供幫助和提示。同時(shí) Tynker 還在不斷的開發(fā)新的課程,如機(jī)器人編程,無人機(jī)編程,基于我的世界(Minecraft)的編程等。對于高年級的學(xué)生, tynker 也提供游戲化學(xué)習(xí)方式的 javascript 的代碼編程課程。
對于個(gè)人用戶,Tynker 收取96美元的年費(fèi)。
CodeCombat(codecombat.com)
(圖片:CodeCombat)
CodeCombat是硅谷著名天使投資機(jī)構(gòu) Y Combinator 孵化的一家游戲化編程技術(shù)公司。課程內(nèi)容都是以游戲闖關(guān)的形式呈現(xiàn),目前支持基于 Coffeescript 的代碼編程。 Coffeescript 是一種類似于頁面前端編程語言 Javascript 的編程語言,可以編譯成 Javascript 運(yùn)行。工作界面上還提供伴隨式的幫助系統(tǒng),引導(dǎo)學(xué)生完成闖關(guān)任務(wù)。
CodeCombat的基本功能的代碼是開源的,這意味著第三方提供商可以使用他們的代碼來提供同樣的課程服務(wù)。高級課程部分是收費(fèi)課程。目前共有超過100小時(shí)的課程。收費(fèi)課程對個(gè)人用戶的價(jià)格是每月9.99美元。
CodeMonkey(playcodemonkey.com)
(圖片:CodeMonkey)
CodeMonkey是以色列創(chuàng)業(yè)公司開發(fā)的游戲化編程學(xué)習(xí)網(wǎng)站,在全球有超過250萬用戶。與Tynker和 CodeCombat 類似,也是采用游戲闖關(guān)的形式。采用的編程語言也是 CoffeeScript 。目前有超過300個(gè)關(guān)卡。 CodeMonkey 的特點(diǎn)是界面非常簡潔,每一個(gè)編程目標(biāo)都非常清晰,并提供詳細(xì)的幫助和在線指導(dǎo)。這樣基本上學(xué)生可以自主學(xué)習(xí),不需要教師的指導(dǎo)。對個(gè)人用戶,收取39美元的年費(fèi)。
Hopscotch(gethopscotch.com)
(圖片:Gethopscptch)
Hopscotch是一款支持 iPhone 和 iPad 的應(yīng)用。功能主要包括支持拖拽式的圖形化編程,生成的結(jié)果是一個(gè)可以玩的游戲。就是說學(xué)生可以通過編程,制作出自己的游戲,邀請自己的朋友或家長來玩自己的游戲。除了編程界面以外,還包括繪畫,對戰(zhàn)游戲等功能。對個(gè)人用戶,收取6.67美元的月費(fèi)。
Code.org(www.code.org)
(圖片:Code)
code.org是一個(gè)非盈利機(jī)構(gòu)聯(lián)合數(shù)家科技公司聯(lián)合推出的免費(fèi)編程學(xué)習(xí)網(wǎng)站。課程也是以游戲化闖關(guān)的方式進(jìn)行,支持圖形化編程。題材都是基于孩子們熟悉的比如冰雪奇緣,植物僵尸,我的世界等卡通形象。Code.org 曾經(jīng)發(fā)起全球超過2億人參與的“編程一小時(shí)(Hour of Code)”活動。
So start coding today!
【作者簡介】王川——楊梅客教育聯(lián)合創(chuàng)始人。清華大學(xué)工學(xué)學(xué)士,美國伊利諾伊?學(xué)計(jì)算機(jī)科學(xué)碩?。硅?上市公司 Infoblox (NYSE:BLOX)早期團(tuán)隊(duì)成員。超過15年軟件開發(fā)和團(tuán)隊(duì)管理經(jīng)驗(yàn)。2015年回國創(chuàng)辦楊梅客教育,專注兒童青少年STEAM教育。
2、如果你也從事教育,并希望被芥末堆報(bào)道,請您 填寫信息告訴我們。