專注興趣的引導(dǎo),全面覆蓋幼兒編程教育,碼農(nóng)談?wù)剼?lè)派的體驗(yàn)
英國(guó)在2014年正式把編程列入必修課程,兒童從5歲開(kāi)始學(xué)習(xí)。日本文部科學(xué)省要求從今年4月起,將編程作為必修內(nèi)容加入小學(xué)算術(shù)和理科教科書(shū)中。在國(guó)內(nèi),北京、廣州、深圳、武漢、西安5個(gè)城市作為第一批試點(diǎn)落地城市,3-8年級(jí)的學(xué)生將全面試點(diǎn)學(xué)習(xí)人工智能與編程的課程,編程也被納入了中考和高考的科目。面對(duì)蓬勃發(fā)展的人工智能浪潮,幼兒編程教育已經(jīng)成為大勢(shì)所趨。

幼兒為什么要學(xué)習(xí)編程,應(yīng)該培養(yǎng)怎樣的編程思維?
幼兒學(xué)習(xí)編程并不是為了將來(lái)能夠當(dāng)上“996”的碼農(nóng),而是為了學(xué)習(xí)一種未來(lái)表達(dá)自我的一種方式;是為了培養(yǎng)理性思維,進(jìn)而發(fā)現(xiàn)問(wèn)題,理解問(wèn)題,解決問(wèn)題的能力;是為了培養(yǎng)是為了適應(yīng)未來(lái)劇烈變革的數(shù)字生活。
樂(lè)高積木最有名的理念就是場(chǎng)景帶入,兒童會(huì)根據(jù)警察局、消防隊(duì)、急救站等不同的場(chǎng)景去編自己腦中構(gòu)造的故事,將自己帶入故事,通過(guò)積木將故事表達(dá)出來(lái)。這其實(shí)是兒童在語(yǔ)言能力尚未成熟時(shí),表達(dá)自己的思想、感受、情緒,與世界溝通的一種方式。幼兒編程也是一樣的道理,只不過(guò)表達(dá)幼兒想法的載體從積木變成了Scratch中的程序塊,故事的呈現(xiàn)也變成了一個(gè)動(dòng)畫(huà)或者游戲程序。

所謂的編程思維對(duì)幼兒來(lái)說(shuō)太過(guò)乏味,讓一個(gè)不到十歲的孩子去理解全局變量和面向?qū)ο蟮木幊逃悬c(diǎn)過(guò)分。眾多的幼兒編程軟件中已經(jīng)將程序員們需要牢記的繁復(fù)語(yǔ)言規(guī)則剔除,剩下的僅僅是一些易用易懂的代碼積木。所以幼兒編程本質(zhì)上并不是在學(xué)習(xí)一項(xiàng)技能,而是在這個(gè)過(guò)程中掌握一些對(duì)其未來(lái)成長(zhǎng)有幫助的方法論,培養(yǎng)理性思維,進(jìn)而發(fā)現(xiàn)問(wèn)題,理解問(wèn)題,解決問(wèn)題的能力。這種能力是要在現(xiàn)實(shí)中吃很多虧才能夠?qū)W會(huì)的。

還有一點(diǎn)比較重要,就是適應(yīng)未來(lái)劇烈變革的數(shù)字生活。身為一個(gè)成年人你是否能夠理解圖像識(shí)別、云、大數(shù)據(jù)、AI、AIoT等等近些年才進(jìn)入大眾視野的科技概念?下一代面對(duì)的數(shù)字生活變革只會(huì)更劇烈,早些涉獵這些新事物,就不會(huì)像我們的父輩一樣在計(jì)算機(jī)普及時(shí)那般手足無(wú)措。
如何發(fā)掘和培養(yǎng)孩子的興趣?
在編程學(xué)習(xí)過(guò)程中配套產(chǎn)品的選擇又是一個(gè)比較大的學(xué)問(wèn)。孩子學(xué)習(xí)編程的過(guò)程本身就是孩子興趣發(fā)掘和培養(yǎng)的過(guò)程,大而全的產(chǎn)品更具有優(yōu)勢(shì),不會(huì)放過(guò)孩子任何一個(gè)可能感興趣的方向。能夠涉及到整套STEAM(科學(xué)、技術(shù)、工程、藝術(shù)、計(jì)算)教育理念中的各個(gè)方面,且能夠支撐孩子完整的學(xué)習(xí)過(guò)程的產(chǎn)品才算是全面的產(chǎn)品。

千挑萬(wàn)選下,如晤看中了一款新發(fā)布的幼兒編程教育產(chǎn)品。殼樂(lè)派是近期一家深圳企業(yè)開(kāi)發(fā)的針對(duì)兒童設(shè)計(jì)的面向STEAM教育的零基礎(chǔ)入門(mén)編程學(xué)習(xí)機(jī),它的外形仿照筆記本電腦,核心為樹(shù)莓派,將樹(shù)莓派拓展成為一臺(tái)類似PC的產(chǎn)品。這個(gè)產(chǎn)品全面涵蓋了STEAM的五個(gè)方向和全階段的學(xué)習(xí)。

硬件方面殼樂(lè)派配有1080P分辨率的IPS屏幕、藍(lán)牙鍵盤(pán)、觸控板、無(wú)線鼠標(biāo)、200W像素?cái)z像頭、2個(gè)USB3.0接口、兩個(gè)USB2.0接口、網(wǎng)口和3.5mm接口,可以說(shuō)硬件功能上完全滿足一臺(tái)小型筆記本的規(guī)格。殼樂(lè)派的軟件系統(tǒng)則是基于Linux的定制系統(tǒng),功能相對(duì)簡(jiǎn)單,性能一般,能夠滿足孩子學(xué)習(xí)的需要,卻又不能運(yùn)行稍微大一些的游戲。



移除殼樂(lè)派上面的鍵盤(pán),就能夠看到殼樂(lè)派配備的內(nèi)容豐富的開(kāi)發(fā)板,囊括了近乎所有開(kāi)發(fā)過(guò)程中能夠用到的電氣元件。同時(shí)隨機(jī)附贈(zèng)了很多無(wú)法集成在開(kāi)發(fā)板上面的電氣元件,這些電氣元件可應(yīng)用于不同項(xiàng)目和學(xué)習(xí)階段,十分全面了。

殼樂(lè)派也支持我并不太了解的音樂(lè)類創(chuàng)作軟件Sonic?Pi,以及計(jì)算相關(guān)的Wolfram?Mathematica,僅在此處簡(jiǎn)單提及。
怎樣的學(xué)習(xí)路徑能讓孩子保持持續(xù)關(guān)注力?
孩子對(duì)事物的新鮮感持續(xù)的時(shí)間很短,想要保持孩子在編程上的興趣,就要把學(xué)習(xí)編程這件事情變成“玩”編程。遵循一定的學(xué)習(xí)路徑,由簡(jiǎn)入深,讓孩子在這個(gè)過(guò)程中充分享受游戲中打怪升級(jí)般的成就感。
啟蒙期可以通過(guò)實(shí)體積木的形式作為啟蒙,讓幼兒自行卻解決游戲中的難題。這種形式更接近幼兒已經(jīng)所有了解的物理世界,實(shí)現(xiàn)方式也是通過(guò)和物體互動(dòng)的方式實(shí)現(xiàn),幼兒接受度更高,類似游戲闖關(guān)的方式也更容易吸引幼兒。

孩子在熟練后就可以接觸Scratch、Arduino、Microbit這類圖形化編程工具,孩子在這個(gè)階段已經(jīng)對(duì)電子產(chǎn)品(手機(jī)、電腦、智能電視等)有足夠的了解,操作電子產(chǎn)品已經(jīng)不存在什么大問(wèn)題。將原先的實(shí)體積木轉(zhuǎn)換成圖形編程軟件中的虛擬積木,進(jìn)一步接近真實(shí)編程的操作環(huán)境,開(kāi)始初步接觸編程中的一些簡(jiǎn)單規(guī)則,也是工程類電器元件介入的時(shí)機(jī)。

接下來(lái)會(huì)面對(duì)一個(gè)分水嶺,要充分考慮孩子的興趣所在。如果對(duì)孩子的未來(lái)沒(méi)有程序員的職業(yè)規(guī)劃,可以從相對(duì)簡(jiǎn)單的Python開(kāi)始正式學(xué)習(xí)一門(mén)語(yǔ)言,如果是為了培養(yǎng)特長(zhǎng),就需要選擇相對(duì)困難的C語(yǔ)言作為第一門(mén)語(yǔ)言。
再往后的編程學(xué)習(xí)會(huì)涉及到職業(yè)向的學(xué)習(xí)了,這時(shí)候孩子已經(jīng)有了自主選擇的權(quán)利,可以按照他/她的想法進(jìn)行了。如果孩子自身沒(méi)有成熟的想法,學(xué)習(xí)C++是一個(gè)不會(huì)出錯(cuò)的選擇。

目前比較成熟的幼兒編程學(xué)習(xí)路徑為Scratch JR -》?Scratch 3.0 -》?Python/C -》?C++,這個(gè)路徑涵蓋了孩子從幼兒園到高中乃至大學(xué)期間的全部?jī)?nèi)容,也是當(dāng)前實(shí)用性比較強(qiáng)的。
殼樂(lè)派是如何讓孩子保持持續(xù)興趣的?
殼樂(lè)派搭載了獨(dú)有的學(xué)習(xí)系統(tǒng),先通過(guò)自主開(kāi)發(fā)的幾個(gè)人機(jī)互動(dòng)項(xiàng)目將孩子的興趣激發(fā)。緊接著就是根據(jù)殼樂(lè)派定制的簡(jiǎn)單易懂的Scratch教程(含視頻),讓零基礎(chǔ)的孩子跟隨著教程一步步操作,獲得成就感,并充分了解殼樂(lè)派。

再往下就是要和代碼、復(fù)雜電器元件親密接觸的Python教程。在Python的教程中,孩子將把Scratch的代碼積木轉(zhuǎn)換成真正的編程語(yǔ)言,會(huì)充分了解Python的語(yǔ)法特性,以及復(fù)雜電子元器件的電路連接和API調(diào)用。完成了這步,孩子已經(jīng)完全知曉它能夠通過(guò)代碼和這些元器件完成什么樣的任務(wù),接下來(lái)就要看孩子能夠通過(guò)這些“積木”表達(dá)一些什么想法了!

當(dāng)然除去這種循循善誘的方式,另外一種相對(duì)“暴力”的方式,就是讓孩子接觸游戲!讓孩子知道除去充錢(qián)外,修改游戲程序也是一種能夠改變游戲體驗(yàn)的事情。我也是出于“沒(méi)必要遵循別人設(shè)定的規(guī)則”這種想法開(kāi)始研究逆向破解和內(nèi)存修改的。

《我的世界》是一款風(fēng)靡全球的沙盒類游戲,沙盒類游戲的優(yōu)點(diǎn)是可MOD。殼樂(lè)派在學(xué)習(xí)系統(tǒng)中內(nèi)置了以Mine?Craft(《我的世界》)為基礎(chǔ)的游戲編程教程。在這個(gè)教程中,孩子會(huì)理解游戲的構(gòu)成,深刻體會(huì)什么是游戲引擎。

當(dāng)然,很多編程習(xí)慣是很多編程產(chǎn)品教不了的,只能靠引導(dǎo)、復(fù)盤(pán)和多寫(xiě)。譬如,前期的代碼結(jié)構(gòu)規(guī)劃組織、版本控制、面對(duì)對(duì)象的編程、實(shí)意化命名、代碼去重、函數(shù)封裝、代碼優(yōu)化、勤寫(xiě)注釋、勤打LOG、勤保存、不使用自動(dòng)填充類的IDE等這類寫(xiě)代碼的良好習(xí)慣還需要慢慢養(yǎng)成。
殼樂(lè)派的高可拓展性陪同孩子一同成長(zhǎng)
殼樂(lè)派總共包含Scratch、Microbit、Arduino、Python、Mine Craft編程、人工智能(語(yǔ)音識(shí)別和人臉識(shí)別),并在桌面模式下內(nèi)置了多個(gè)Java IDE、Python游戲代碼編輯器。當(dāng)然也可以將殼樂(lè)派變成一個(gè)模擬器游戲機(jī)(Retropi系統(tǒng)),由于孩子自制力差,殼樂(lè)派并未直接提供這部分程序,需要按照教程一步步地去操作。

同殼樂(lè)派在硬件上力圖做到大而全一樣,殼樂(lè)派在軟件上也能夠提供主流編程教育中經(jīng)常使用到的軟件程序。視頻、音頻播放器、LibreOffice、圖片瀏覽器、網(wǎng)絡(luò)瀏覽器等在PC上常用的軟件功能也能完全能夠?qū)崿F(xiàn)。從大而全這個(gè)角度上來(lái)說(shuō),殼樂(lè)派的功能和專門(mén)用于教育領(lǐng)域的ChromeBook有異曲同工之妙,只不過(guò)殼樂(lè)派更專注于編程教育領(lǐng)域,也更好地限制孩子將其變成不折不扣的游戲機(jī)。

參照之前我說(shuō)學(xué)習(xí)路徑,殼樂(lè)派能夠很好的支持孩子在編程教育中各個(gè)支線的發(fā)展。同時(shí)殼樂(lè)派核心樹(shù)莓派,本身就是一個(gè)拓展性十分強(qiáng)大的產(chǎn)品,也是專門(mén)用于Python教育中的性價(jià)比且名頭很大的產(chǎn)品,也支持Java和C++的編程。如果善用百度,你會(huì)發(fā)現(xiàn)針對(duì)樹(shù)莓派的進(jìn)階玩法相當(dāng)多,相信伴隨著孩子成長(zhǎng),殼樂(lè)派仍然能夠給孩子帶來(lái)足夠多的樂(lè)趣。

上手嘗試一下
身為一個(gè)自學(xué)碼農(nóng)還是要露一手的,在這里我說(shuō)一下我要做的事情:通過(guò)Scratch制作一個(gè)“井字棋”的小游戲,通過(guò)鼠標(biāo)點(diǎn)擊落子,落子的同時(shí)殼樂(lè)派開(kāi)發(fā)板上蜂鳴器短促地響一聲,游戲結(jié)束蜂鳴器長(zhǎng)鳴2秒,重新開(kāi)始。

首先規(guī)劃一下實(shí)現(xiàn)的方式,通過(guò)鼠標(biāo)點(diǎn)擊的位置來(lái)實(shí)現(xiàn)落子位置的判斷;通過(guò)顯示、隱藏與棋盤(pán)位置對(duì)應(yīng)的棋子對(duì)象來(lái)實(shí)現(xiàn)視覺(jué)上的落子效果;通過(guò)on_off變量作為不同棋子落子的開(kāi)關(guān);建立兩個(gè)數(shù)組(chess_X、chess_O)來(lái)存儲(chǔ)X和O的落子情況;通過(guò)num變量來(lái)控制總落子數(shù)量。
第一步,準(zhǔn)備場(chǎng)景素材,建立場(chǎng)景背景和對(duì)象,大概長(zhǎng)這個(gè)樣:


第二步,初始化場(chǎng)景,涉及到代碼部分長(zhǎng)這樣,當(dāng)然后面的變量和對(duì)象也會(huì)在初始化中被重置:

第三步,寫(xiě)主程序代碼實(shí)現(xiàn)交替落子的效果,代碼段涉及復(fù)雜的嵌套判斷,略長(zhǎng),僅提供一部分截圖:

第四步,調(diào)用開(kāi)發(fā)板上的蜂鳴器,通過(guò)響度判斷事件讓棋子顯示。

到這里主體已經(jīng)實(shí)現(xiàn)了,由于Scratch本身只支持簡(jiǎn)單的運(yùn)算,很多能用簡(jiǎn)單代碼實(shí)現(xiàn)的判斷算法實(shí)現(xiàn)起來(lái)反而不如代碼舒服,這里就不做輸贏判斷這部分了。
總結(jié)
在外形設(shè)計(jì)上使用了常見(jiàn)的筆記本的形式,讓孩子更容易接受,實(shí)用性更強(qiáng);
以本身拓展性就極強(qiáng)的樹(shù)莓派作為核心的設(shè)計(jì),讓殼樂(lè)派的拓展性非常強(qiáng)大,可玩性很高,也能夠激發(fā)孩子的學(xué)習(xí)興趣;
在課程的設(shè)計(jì)上遵循循序漸進(jìn)的規(guī)則,內(nèi)置項(xiàng)目的趣味性、可操作性和互動(dòng)性都非常不錯(cuò);
殼樂(lè)派在兼容不同初級(jí)編程平臺(tái)(Scratch、Microbit、Arduino)上很全面;
代碼版本會(huì)更迭,語(yǔ)法也會(huì)調(diào)整,殼樂(lè)派在選用學(xué)習(xí)代碼版本上是經(jīng)過(guò)深思熟慮的。以我了解的Python為例,2.X版本和3.X版本的語(yǔ)法改動(dòng)雖然不多,但2.X已經(jīng)在官方的推動(dòng)下逐漸被淘汰,而3.X版本中目前最為穩(wěn)定的是3.72版本,也是殼樂(lè)派選用的版本;

殼樂(lè)派在科學(xué)、技術(shù)、工程方面它可以說(shuō)非常強(qiáng)大,而藝術(shù)和計(jì)算這種入門(mén)難度更高,并且我并不是很了解的方面,不多做評(píng)價(jià);
吐槽
殼樂(lè)派在支持Python上面非常全面,而針對(duì)C/C++的教程尚在開(kāi)發(fā)中,這點(diǎn)需要跟進(jìn);
MineCraft的教程以網(wǎng)頁(yè)教程呈現(xiàn),多少有些不太用心,雖然也能理解新產(chǎn)品優(yōu)化不夠徹底。請(qǐng)務(wù)必保持簡(jiǎn)單易懂!
外觀件還需要打磨,卡扣、按鈕、轉(zhuǎn)軸、外殼都略顯用料不足。
見(jiàn)字如晤,以平和的心態(tài)面對(duì)科技的進(jìn)步!