上周在《看完這篇,就沒有樂高機(jī)構(gòu)能忽悠你了》這篇文章中開了個(gè)頭,和大家聊了下機(jī)器人的學(xué)習(xí)。壯壯學(xué)樂高的路徑比較奇怪,一開始就是從和我在家玩小顆粒開始的,機(jī)緣巧合碰到了一個(gè)還不錯(cuò)的教練后,就動(dòng)力機(jī)械和wedo都熟悉了下,就直接EV3了。
這樣進(jìn)度是快,但于編程就學(xué)得很不扎實(shí),基礎(chǔ)功能和概念幾乎是空白。包括后期我們想轉(zhuǎn)VEX機(jī)器人,也對(duì)編程有要求,所以我開始琢磨怎么給壯壯補(bǔ)補(bǔ)編程基礎(chǔ)。
01
關(guān)于我對(duì)編程的一點(diǎn)拙見
說實(shí)話,如果有人跟我說,是為了培養(yǎng)所謂的“編程思維”而學(xué)編程,我會(huì)持保留意見。可能連程序員都說不清楚什么是所謂的“編程思維”。
01 為什么學(xué)編程
我比較認(rèn)同兩點(diǎn):
孩子為未來AI和信息化爆炸的時(shí)代做好準(zhǔn)備;
對(duì)于小學(xué)生而言,它是機(jī)器人學(xué)習(xí)必要的一部分,也可以為以后走信息學(xué)競(jìng)賽路線做鋪墊。
但是如果要系統(tǒng)學(xué)習(xí),我建議至少是小高年級(jí)。比如,年初的時(shí)候,北大附中招募5、6年級(jí)的信息化特長(zhǎng)生,也不是考編程語言和代碼,考的是數(shù)學(xué)。因?yàn)樗麄兡J(rèn)數(shù)學(xué)這種基礎(chǔ)學(xué)科,對(duì)思維培養(yǎng)的重要性,也默認(rèn)真正的編程語言,不需要提前這么早學(xué)。
02 學(xué)編程≠學(xué)scratch
跟我小時(shí)候不同,現(xiàn)在更流行的是Python,而信息學(xué)競(jìng)賽指定的是C++。這些編程語言都要記指令,記語法,不適合于低年級(jí)小學(xué)生,所以出現(xiàn)了可視化編程。
比如,現(xiàn)在很火的scratch只是可視化編程語言中,積木型的一種。其他類似的還有谷歌的blocky、樂高wedo和ev3用的軟件等等。它們都是用“磚塊”代替了編程語法,幫助小朋友理解編程。
最關(guān)鍵的一點(diǎn):這些可視化、積木化的編程語言,其實(shí)是一通百通的。
02
用好免費(fèi)的資源抵得上1年上萬的課程
接下來,我要上資源了!都是我親自體驗(yàn)篩選后,給壯壯選的小游戲。有1個(gè)免費(fèi)網(wǎng)站和3個(gè)小游戲。
01 免費(fèi)網(wǎng)站-Code.org
壯壯之前的教練,是機(jī)器人國(guó)際比賽的裁判,這個(gè)免費(fèi)網(wǎng)站就是他安利的,是美國(guó)很多小學(xué)老師會(huì)要求學(xué)生使用的。
這個(gè)網(wǎng)站我們用了1年半了,前2周,就把編程入門搞定了,效果確實(shí)是立竿見影。不光ev3學(xué)得輕松了很多,家里小米機(jī)器人app里面的編程,稍微琢磨一下也玩得很溜了,著實(shí)省了一大筆錢。
網(wǎng)站上的課程都是免費(fèi)的,課程覆蓋了整個(gè)K12階段,沒有廣告。大部分課程都有中文,專業(yè)、流暢,學(xué)習(xí)效果完全抵得過大部分收費(fèi)課程。
Code.org的學(xué)生人數(shù)有4200萬,其中有46%是女孩子,他們會(huì)添加各種好看的元素,讓編程效果視覺化更美好。所以,這也是個(gè)非常合適女孩子的免費(fèi)工具。
“Code.org”怎么學(xué)?
網(wǎng)站分兩部分:“計(jì)算機(jī)科學(xué)基礎(chǔ)”和“編程一小時(shí)”。
首先,登錄網(wǎng)站:https://code.org ,并在主頁底部切換語言到“簡(jiǎn)體字”;第二步:右上角注冊(cè)登錄,就可以快開始為孩子選擇適合的課程了。
學(xué)免費(fèi)課程
也就是“計(jì)算機(jī)科學(xué)基礎(chǔ)”,是主線課程,分為A~F六個(gè)個(gè)級(jí)別,每個(gè)級(jí)別都有比較詳細(xì)的課程安排,覆蓋最基礎(chǔ)的編程概念到帶有循環(huán)和參數(shù)概念的復(fù)雜程序,循序漸進(jìn),適合系統(tǒng)化的學(xué)習(xí)。
壯壯的啟蒙就是通過計(jì)算機(jī)科學(xué)基礎(chǔ)來系統(tǒng)學(xué)習(xí)編程知識(shí)的。
比如,點(diǎn)進(jìn)去課程D,里面包含了17個(gè)主題,在開始會(huì)貼心的介紹這部分的核心學(xué)習(xí)內(nèi)容。然后,孩子可以點(diǎn)擊具體的課程按順序?qū)W習(xí)。
如果覺得孩子有一定基礎(chǔ),一個(gè)一個(gè)級(jí)別學(xué)習(xí)太費(fèi)時(shí)間,那么可以試試快速課程,內(nèi)容包括了主線課程中的一些核心內(nèi)容。有不懂的地方,再針對(duì)性的去主線課程里面進(jìn)行鞏固,也是效率非常高的一種方法。
總的來說,Code.org的入門編程課程,內(nèi)容足夠豐富、形式足夠友好。
其實(shí)在我看來,入門的孩子,只要學(xué)會(huì)了順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu),熟悉了拖拽式的方法,就足夠應(yīng)付后期學(xué)機(jī)器人課程了。
編程一小時(shí)
“編程一小時(shí)”的版塊是壯壯最喜歡的,這個(gè)板塊更像是在孩子完成階段學(xué)習(xí)后的一次獎(jiǎng)勵(lì),主題非常豐富。
舞蹈派隊(duì)和冰雪奇緣更是合適女孩子,壯壯反正是堅(jiān)決不選這兩個(gè),他最愛的是過氣網(wǎng)紅《我的世界》?!段业氖澜纭酚兴膫€(gè)主題,形式都大同小異,都是通過編程完成給出的指令,然后操作方塊大叔/大媽完成各種任務(wù)。
編程一小時(shí)有自己專門的網(wǎng)站,直接輸入網(wǎng)址好像默認(rèn)的是繁體,加載很慢。所以我把簡(jiǎn)體中文和英文的鏈接都列了出來,速度快很多。
中文鏈接:
https://hourofcode.com/cn/cn/learn
英文鏈接:
https://hourofcode.com/cn/en/learn
我認(rèn)為對(duì)于學(xué)生而言,編程一小時(shí)的目的是讓你了解計(jì)算機(jī)科學(xué)的樂趣和創(chuàng)造性,幾乎沒有門檻。
02 寓教于樂的編程小游戲
除了上面這個(gè)網(wǎng)站,我還推薦只以“入門”為目標(biāo)的孩子,用下面三個(gè)小游戲。興趣培養(yǎng)才是應(yīng)該放在第一位的。
盒子島(Box Island)
Box Island是有100個(gè)關(guān)卡的主線闖關(guān)游戲,也有基于code.org“編程一小時(shí)”活動(dòng),分了三個(gè)難度,完了還能生成一張code.org頒發(fā)的證書。
游戲的難度逐步推進(jìn),后面的關(guān)卡應(yīng)該是要付費(fèi)解鎖的,從開始最簡(jiǎn)單的指令,到循環(huán)和條件,都有涉及。
比如壯壯斷斷續(xù)續(xù)玩到了80多關(guān),就需要用到循環(huán)和條件嵌套了,還是需要孩子仿佛嘗試、動(dòng)一番腦子的。
Lightbot
比起B(yǎng)ox island濃濃的美式漫畫風(fēng),Lightbot就清新很多,但是它的關(guān)卡不是很多,好像只有英文版。
同樣,也是闖關(guān)游戲,但不同的是,它將子程序的概念引入其中,小朋友可以嘗試先創(chuàng)建子程序,然后調(diào)用子程序來控制機(jī)器人達(dá)成亮燈的目標(biāo)。
Swift Playgrounds
如果說,上面兩個(gè)游戲“玩”的分量更重一些,那Swift Playgrounds則更適合未來想走信息學(xué)競(jìng)賽這條路的孩子,因?yàn)檫@時(shí)候接觸的可能才正兒八經(jīng)算是編程語言。其實(shí)如果只是感興趣,Swift、Python、C++看似眼花繚亂,其實(shí)學(xué)哪個(gè)都可以的,條條大路通羅馬;當(dāng)然,競(jìng)賽的話還是入門后老老實(shí)實(shí)學(xué)C++吧。
系統(tǒng)的教學(xué)、可視化的過程,降低了孩子理解能力的要求,蘋果直接把開發(fā)語言和教育結(jié)合在一起了,我只能說,這一招實(shí)在是“高”。
和拖方塊不同了,游戲是直接以游戲代碼進(jìn)行的。
雖然初級(jí)階段,還不需要孩子自己敲代碼,在系統(tǒng)提供的代碼中直接點(diǎn)選就行,但呈現(xiàn)方式和可視化編程已經(jīng)非常不一樣了,而隨著學(xué)習(xí)的深入,孩子也可以選擇自己來寫代碼。
上面這幾個(gè)游戲,都是壯壯比較喜歡玩的。ios版本肯定有,Android版本我沒有特意搜過,不太確定,有需要的爸媽可以自己找一下。
最后再分享一個(gè)小神童,B站一位特別火的小學(xué)生vita君,蘋果的CEO都被他驚到過。不光是孩子,各位爸媽們也可以跟著一起學(xué)編程,哈哈。
(部分圖源于網(wǎng)絡(luò))