|
上一篇文章中(從娃娃抓起,五歲就可以學(xué)編程)我介紹了codeSpark學(xué)院,其中順帶提到了另外幾款編程教學(xué)游戲Hopscotch、Scratch和Swift Playgrounds,這次我來(lái)做一個(gè)詳細(xì)的對(duì)比,講講這幾款游戲分別適合多大的孩子,各有什么優(yōu)點(diǎn)和缺點(diǎn)。 適合四到六歲兒童的codeSpark學(xué)院和ScratchJrScratchJr和Scratch都是MIT Media Lab開(kāi)發(fā)的,ScratchJr是iOS和安卓上的App,適合低齡兒童,而Scratch是在電腦上玩的,功能復(fù)雜得多,適合高年級(jí)小學(xué)生和初中生。 codeSpark學(xué)院主是解謎闖關(guān)模式,自制小游戲的功能目前比較弱(還在持續(xù)開(kāi)發(fā)迭代中),而ScratchJr是專(zhuān)門(mén)用來(lái)自制小游戲的,所以正好互補(bǔ),這兩個(gè)游戲可以一起拿給孩子玩。 其實(shí)這個(gè)年齡段的孩子駕馭不了太復(fù)雜的邏輯,也做不出什么復(fù)雜的游戲來(lái),所以ScratchJr的功能是比較簡(jiǎn)單甚至簡(jiǎn)陋的,因而也不需要任何語(yǔ)音或文字講解,試一試就知道怎么玩了。比如下面這個(gè)自制小游戲:
小馬被點(diǎn)擊時(shí)就叫一聲同時(shí)晃兩下,小豬和小雞被點(diǎn)擊時(shí)也有各自的動(dòng)作,就是這么個(gè)游戲。盡管簡(jiǎn)單,孩子也能從中體會(huì)到一些編程思維,比如:
由于只能制作很簡(jiǎn)單的游戲,孩子可能很快就玩夠了,相比之下解謎闖關(guān)可能更有意思一些。所以我覺(jué)得孩子從codeSpark學(xué)院能學(xué)到更多,ScratchJr只能作為一點(diǎn)補(bǔ)充。關(guān)于codeSpark學(xué)院的詳細(xì)介紹請(qǐng)參考我的上一篇文章(從娃娃抓起,五歲就可以學(xué)編程)。 適合七到十歲兒童的Hopscotch和ScratchHopscotch和Scratch都是讓孩子通過(guò)自制小游戲來(lái)學(xué)習(xí)編程。這個(gè)年齡段的孩子應(yīng)該能夠管理一定的復(fù)雜性,Hopscotch和Scratch提供的功能單元遠(yuǎn)比ScratchJr豐富得多,孩子可以更自由地發(fā)揮想象力做出各式各樣的小游戲。 Hopscotch在蘋(píng)果的App Store下載,iPhone或iPad都可以。下圖是Hopscotch的編程界面:
Scratch是網(wǎng)頁(yè)版的,在網(wǎng)站上玩,地址是 https://scratch./ 。下圖是Scratch的編程界面:
相比Scratch,我更喜歡Hopscotch,因?yàn)椋?/p>
Hopscotch的缺點(diǎn)我認(rèn)為主要是以下幾個(gè):
Scratch由于功能更復(fù)雜,可以做出比Hopscotch復(fù)雜得多的游戲,但我不認(rèn)為這是什么優(yōu)點(diǎn),我想說(shuō):Scratch是否沿著這個(gè)方向走得太遠(yuǎn)了? 首先,用拖曳的方式搭出下圖這樣復(fù)雜的代碼,還能說(shuō)它比真正的編程語(yǔ)言寫(xiě)出來(lái)的代碼可讀性更強(qiáng)嗎?
其次,學(xué)編程是否應(yīng)該像學(xué)琴、學(xué)畫(huà)畫(huà)一樣,無(wú)論把技巧練得多純熟也只是為了自?shī)首詷?lè)?不,學(xué)編程應(yīng)該是為了解決實(shí)際問(wèn)題的:
低齡兒童可能本來(lái)就沒(méi)什么解決實(shí)際問(wèn)題的需求,唯一的需求就是好玩,只有“好玩”才能激發(fā)好奇心和學(xué)習(xí)興趣,學(xué)會(huì)之后,寫(xiě)程序也只是為了“更好玩”。 但我認(rèn)為高年級(jí)的孩子就不應(yīng)該繼續(xù)沿著這個(gè)方向越走越遠(yuǎn)了。在掌握了Hopscotch或Scratch之后,應(yīng)該早點(diǎn)上手真正的編程語(yǔ)言,而不是繼續(xù)呆在Hopscotch或Scratch的環(huán)境中,在這樣的環(huán)境中無(wú)論堆砌出多么漂亮的程序,別人必須使用同樣的環(huán)境才能運(yùn)行,可是除了學(xué)生有幾個(gè)人在用這些環(huán)境呢?所以這樣的程序價(jià)值就不大,僅供自?shī)首詷?lè)。 與之相對(duì)的是,網(wǎng)頁(yè)程序可以直接在手機(jī)或電腦的瀏覽器中打開(kāi),App可以直接在手機(jī)或Pad上安裝運(yùn)行,這樣的程序無(wú)論是工具還是游戲,都比Hopscotch或Scratch程序有價(jià)值得多。 可以真刀真槍寫(xiě)代碼的Swift PlaygroundsSwift Playgrounds是蘋(píng)果自家的App(所以只有iOS版沒(méi)有安卓版),是一個(gè)開(kāi)放平臺(tái),任何開(kāi)發(fā)者都可以在這個(gè)平臺(tái)上發(fā)布自己做的編程教程。一個(gè)明顯的局限性是:只支持Swift編程語(yǔ)言,這種編程語(yǔ)言的優(yōu)點(diǎn)是比較適合初學(xué)者(語(yǔ)法清晰、強(qiáng)類(lèi)型),缺點(diǎn)是除了開(kāi)發(fā)macOS/iOS App之外沒(méi)有其它用武之地。 蘋(píng)果自己發(fā)布的Learn to Code教程如下圖所示,適合從零基礎(chǔ)開(kāi)始一步一步學(xué)習(xí)Swift編程語(yǔ)言。
學(xué)生可以寫(xiě)簡(jiǎn)單的代碼控制運(yùn)行環(huán)境中的小人移動(dòng)和收集寶石。由于講解是純文字的,需要一定的閱讀能力,只適合高年級(jí)的學(xué)生。 Swift Playgrounds跟前面的Hopscotch、Scratch有一個(gè)重要的區(qū)別:跟著教程學(xué)會(huì)使用Hopscotch、Scratch之后,就可以自由編寫(xiě)自己的小游戲了;而Swift Playgrounds是專(zhuān)門(mén)用來(lái)學(xué)習(xí)教程的,不是用來(lái)自由編程的,自己編寫(xiě)一個(gè)教程的難度等同于開(kāi)發(fā)一個(gè)App,需要專(zhuān)業(yè)的開(kāi)發(fā)者來(lái)做。 比如上面的Learn to Code教程,學(xué)生只是寫(xiě)幾句簡(jiǎn)單的“moveForward()、collectGem()”來(lái)控制小人,而整個(gè)游戲場(chǎng)景的渲染、以及學(xué)生調(diào)用的那幾個(gè)函數(shù)的實(shí)現(xiàn)代碼是這個(gè)教程的開(kāi)發(fā)者寫(xiě)的,其實(shí)在“高級(jí)”菜單中就可以看見(jiàn)這些代碼,一看就明白初學(xué)者是寫(xiě)不了的:
不過(guò),這也為教程的多樣性提供了無(wú)限豐富的可能。很多第三方開(kāi)發(fā)者做出了形形色色的教程,比如Sphero提供了控制R2-D2玩具的教程,樂(lè)高提供了控制樂(lè)高機(jī)器人的教程,使得學(xué)生編寫(xiě)的代碼不僅能在iPad上運(yùn)行,還能控制硬件。
有人搜集整理了一個(gè)教程列表:https://github.com/uraimo/Awesome-Swift-Playgrounds ,內(nèi)容涉及算法、數(shù)據(jù)結(jié)構(gòu)等方方面面,任何計(jì)算機(jī)系的課程甚至數(shù)學(xué)課,都可以被精心設(shè)計(jì)成教程,學(xué)生下載到這些教程后,可以上傳到自己的iCloud Drive,然后在Swift Playgrounds里打開(kāi),跟著學(xué)習(xí)。 后記,小編朋友研發(fā)了一個(gè)游戲化的少兒編程在線課程(5-12歲),游戲化教學(xué)結(jié)合scratch(一款在線少兒編程工具,類(lèi)似樂(lè)高的積木拼搭),我家娃娃學(xué)了幾次課,非常喜歡(超預(yù)期),16次課才200多塊錢(qián),對(duì)鍛煉孩子的思維能力和動(dòng)手動(dòng)力很有幫助。 |
|
|