少兒編程是不是就一定要學(xué)呢?幼兒園要開(kāi)始嗎?想清楚這個(gè)問(wèn)題之前,我們不妨先理清自己的思路,把下面這些問(wèn)題了解清楚,再結(jié)合自家小朋友的特長(zhǎng),規(guī)劃是否學(xué)習(xí)編程,以及合適的學(xué)習(xí)道路。
哪些人適合學(xué)編程?
不同年齡段,編程要怎么學(xué)?
有哪些編程語(yǔ)言可以選擇?
學(xué)編程有哪些好處,目前的選拔出口有哪些?
編程是什么
市面上分哪幾類課程
專業(yè)一點(diǎn)講,編程是一個(gè)人類與計(jì)算機(jī)獨(dú)立交互的一種方式,打個(gè)通俗一點(diǎn)小朋友也聽(tīng)得懂的比方,編程就是跟計(jì)算機(jī)說(shuō)話,讓計(jì)算機(jī)可以聽(tīng)懂你的“指揮”,去做你想讓它做的“事情”。
根據(jù)是否使用到硬件,我們又可以大致把市面上的編程課程分為兩大類:
種是我們常聽(tīng)說(shuō)的機(jī)器人編程
魔都比較常見(jiàn)的是樂(lè)高EV3以及國(guó)內(nèi)能力風(fēng)暴Ablilix平臺(tái)。我家老大一年級(jí)的時(shí)候在棋類和機(jī)器人課程中,自己選擇報(bào)了一年樂(lè)高的機(jī)器人課程。
樂(lè)高EV3(來(lái)源于網(wǎng)絡(luò))
每次課程大概1個(gè)半小時(shí),一般是4-6人的小班化教學(xué),每次上課會(huì)有一個(gè)搭建的主題,啟蒙階段會(huì)接觸到傳動(dòng)裝置,基礎(chǔ)傳感器等。
每次上課,老師常常需要花比較多的時(shí)間先引導(dǎo)本次主題課的搭建,這之后才有半個(gè)小時(shí)左右講解軟件模塊的運(yùn)用,最后把調(diào)試好的程序下載到主機(jī)里,完成作品。
線下機(jī)器人課程的一些作品
一年級(jí)啟蒙班結(jié)束后,老師除了介紹后續(xù)提高班的課程設(shè)置以外,還有開(kāi)始推薦我們參加一些賽事,名曰以考代練,當(dāng)時(shí)我也曾回家認(rèn)真做了一輪功課。
下面這些還算是被認(rèn)可的一些知名賽事,很多體制外的學(xué)生會(huì)組隊(duì)為爬藤做準(zhǔn)備。
樂(lè)高EV3平臺(tái),國(guó)際奧林匹克機(jī)器人大賽WRO(World Robot Olympiad)和FLL也(First LEGO League)兩大賽事
能力風(fēng)暴Abilix平臺(tái),WER(World Educational Robot Contest)賽事
VEX平臺(tái),機(jī)器人世界錦標(biāo)賽
不過(guò),我和隊(duì)友認(rèn)真討論分析完自家娃實(shí)際的情況后,反而是做了個(gè)暫停的決定,因?yàn)椋?br /> 1)小朋友雖然對(duì)時(shí)序、循環(huán)等有了一定基本的概念,但總體來(lái)說(shuō)學(xué)習(xí)的進(jìn)度還是比較緩慢的,對(duì)比200+一節(jié)課的價(jià)位來(lái)講,性價(jià)比不高。
2)初級(jí)機(jī)器人編程啟蒙的課程,還是偏重拼搭和構(gòu)建為主,對(duì)于這塊能力的培養(yǎng),有很多家庭啟蒙的替代方式可以做,比固定時(shí)間接送上線下課更有彈性。
但總體來(lái)講,這一年給孩子還是種下了喜愛(ài)編程的種子,編程在他的概念里是區(qū)別于傳統(tǒng)的語(yǔ)數(shù)外學(xué)科類課程的,是一個(gè)獎(jiǎng)勵(lì),是一個(gè)他喜歡的“大玩具”,起到了培養(yǎng)興趣的作用,也不能說(shuō)沒(méi)有收獲。
第二種是純軟件的編程課程
啟蒙主要是包括以Scratch為代表的圖形化編程語(yǔ)言,以及后續(xù)進(jìn)階的Python,C/C++,Java等開(kāi)放語(yǔ)言。
總體來(lái)說(shuō),這些純軟件編程平臺(tái)往往走線上教學(xué)居多,AI課程研發(fā)體系相對(duì)比較成熟,性價(jià)比相對(duì)線下課程要高一些。
Scratch界面
老大二年級(jí)下學(xué)期就碰上了“停課不停學(xué)”的疫情,為了娘親偷個(gè)懶有效利用他的課余時(shí)間,我又陸陸續(xù)續(xù)給他試聽(tīng)了幾個(gè)主流的線上編程課程,對(duì)線上的AI課程也有了一些基本概念。
線上的課程主要是真人錄播的AI課加社群老師輔導(dǎo)的模式開(kāi)展,一周1到2次課,每次課45分鐘左右,一般會(huì)以動(dòng)畫(huà)的形式開(kāi)場(chǎng),引入一些特別的小任務(wù),一節(jié)課完成7到8個(gè)任務(wù),不定期還有些“課程設(shè)計(jì)”,小朋友還是非常喜歡的。
這些線上課程,年課一般是3、4千元的價(jià)位。
對(duì)于三四年級(jí)的小朋友來(lái)說(shuō),基本一年左右可以大致掌握scratch的基本操作。
我們目前的打算是等到老大把手上的棋類學(xué)習(xí)告一段落后,再挑個(gè)寒假或者暑假,正式開(kāi)始學(xué)習(xí)。
因?yàn)榫幊踢@門(mén)課,除了上課本身,還是需要預(yù)留出一塊時(shí)間給孩子鉆研和琢磨,才能真正領(lǐng)會(huì)和運(yùn)用,如果暫時(shí)比較忙,等到高年級(jí)再接觸也是不用擔(dān)心掉隊(duì)的。
哪些人適合學(xué)編程
大家都對(duì)編程課知道了個(gè)大概,那是不是所有人都適合走這個(gè)路線呢?很可惜,并不是。我們自家的小男孩由于心智成熟比較晚,目前也還在觀察試錯(cuò)的過(guò)程中。
哪類人適合學(xué)編程,先借用隊(duì)友這么多年面試應(yīng)聘者的金標(biāo)準(zhǔn),算法、算法,還是算法,成為一個(gè)優(yōu)秀的程序猿,必須具有比較突出的邏輯思維能力,也注定了編程并不適合所有人。
但是回到孩子的啟蒙這塊,考慮到:
1)認(rèn)知天花板的存在
2)抽象思維能力發(fā)育的個(gè)體化差異
我們很難在低齡階段就下結(jié)論孩子是否適合學(xué)習(xí)編程,只能說(shuō)編程是一個(gè)可以試錯(cuò),但非必要的學(xué)習(xí)科目。
如果小朋友的邏輯思維能力比較強(qiáng),那我會(huì)嘗試讓他試試編程,但是如果暫時(shí)不那么感冒,我也不會(huì)強(qiáng)求。
邏輯思維能力,說(shuō)起來(lái)比較抽象,我們舉個(gè)簡(jiǎn)單的例子:
當(dāng)小朋友簡(jiǎn)單的數(shù)字比大小之后,可以探索性地和他(她)討論這樣一個(gè)問(wèn)題——如何從10個(gè)數(shù)里面找出的那個(gè)數(shù)。
思路有很多種,比如
1)將這10個(gè)數(shù)隨機(jī)排好
2)先將前兩個(gè)數(shù)比大小,取較大的數(shù):
3)較大的數(shù)再和第三個(gè)數(shù)比較,取較大的數(shù)......
以此類推,每次較大數(shù)與剩余的下一個(gè)數(shù)比較,取較大的數(shù),最終留下的就是的數(shù)。
或者
1)將這10個(gè)數(shù)隨機(jī)排好
2)先兩兩比大小,取較大的數(shù);
3)剩下5個(gè)數(shù)再隨機(jī)取4個(gè),兩兩比大小;取較大的數(shù)
4)最后比下來(lái)數(shù)與前次留下的落單數(shù)比較,最終留下的就是的數(shù)。
思路有很多種,沒(méi)有對(duì)錯(cuò)之分,討論問(wèn)題的關(guān)鍵,不在于答案的正確與否,而是要觀察整個(gè)過(guò)程,看孩子是否能把問(wèn)題分解,抽絲剝繭,先做哪一步,后做哪一步講清楚,思路是否清晰,就代表了一定的邏輯思維能力。
針對(duì)不同的年齡,可以提問(wèn)和啟發(fā)的問(wèn)題難度也可以逐漸加深:
5、6歲,剛會(huì)比大小的孩子,可以只比三四個(gè)數(shù);
7、8歲,到了學(xué)齡的孩子,可以從十個(gè)數(shù),擴(kuò)展到很多數(shù);
9、10歲,有一定思維能力了,還可以探究下不同方法的優(yōu)劣,哪種方法比較的次數(shù)最少,甚至拓展到N個(gè)數(shù)的通用解法,等等等等......
邏輯思維能力的發(fā)展,個(gè)體差異是比較大的,但無(wú)疑會(huì)隨著年齡和認(rèn)知的增長(zhǎng)而逐漸增強(qiáng),有些孩子一年前學(xué)個(gè)十以內(nèi)加減法幾個(gè)月都費(fèi)勁,但過(guò)一年,孩子十分鐘就一點(diǎn)就通了。低齡的編程啟蒙,更應(yīng)該是一個(gè)比較輕松的試錯(cuò)的過(guò)程,不宜操之過(guò)急,適度播下興趣的種子就可以,把評(píng)判留給將來(lái)。
不同年齡段
編程要怎么學(xué)?
既然編程是一個(gè)可以考慮播下的種子,它和美術(shù)、音樂(lè)甚至體育一樣,是一個(gè)根據(jù)孩子興趣,可以試錯(cuò)的科目,那怎么學(xué)才更科學(xué)呢?
我們?cè)賮?lái)分年齡段來(lái)討論一下:
-學(xué)齡前
坦率講,從一般的認(rèn)知發(fā)展水平來(lái)看,學(xué)齡前正兒八經(jīng)的軟件編程,哪怕是Scratch等圖形化語(yǔ)言,都不是投入產(chǎn)出比非常高的科目。孩子的思維抽象能力還有限,需要借助課程老師或者家長(zhǎng)幫助,才能完成像樣的作品,充其量是培養(yǎng)一點(diǎn)編程的興趣。如果孩子已經(jīng)時(shí)間非常緊張,把它當(dāng)做一個(gè)科目來(lái)學(xué),并且投入大量的時(shí)間和金錢(qián)的話,我認(rèn)為并不是那么劃算。
那么問(wèn)題來(lái)了,孩子還小,但是我就是特別想將來(lái)培養(yǎng)他學(xué)編程,除了報(bào)班,還能做哪些事情呢?我的經(jīng)驗(yàn)是,不妨從學(xué)習(xí)積木拼搭和玩益智桌游開(kāi)始做起。
先說(shuō)說(shuō)拼搭
因?yàn)闄C(jī)器人編程也是少兒編程的一大賽道,在孩子抽象思維能力還沒(méi)到的時(shí)候,在搭建上多進(jìn)行練習(xí),鍛煉空間構(gòu)造能力是一個(gè)值得嘗試的方向。
除了市面上很常見(jiàn)的樂(lè)高搭建機(jī)構(gòu)以外,其實(shí)在家多玩一些積木或者類似的拼搭游戲,都可以幫助早期塑造小朋友的空間感知能力,從而為后期機(jī)器人編程熟練運(yùn)用的空間結(jié)構(gòu),甚至基本的運(yùn)動(dòng)原理,打下一些認(rèn)知的基礎(chǔ)。
要知道在啟蒙或者初級(jí)階段的機(jī)器人編程中,往往大于一半的線下課程時(shí)間是花在相對(duì)復(fù)雜的搭建上的,真正編程部分由于模塊調(diào)用的便利性,往往就集中在最后十幾分鐘的教學(xué)。
再說(shuō)說(shuō)益智桌游
市面上有很多玩具或者闖關(guān)式的桌游都是非常鍛煉思維能力的。我們比較熟悉的Smartgames、Thinkfun等經(jīng)典品牌都有非常好的游戲闖關(guān)設(shè)計(jì),既鍛煉了專注力,又從不同維度鍛煉了空間想象、抽象、邏輯思維等能力。
我家每周的桌游時(shí)間是兩個(gè)娃最期待的娛樂(lè)項(xiàng)目,我們作為家長(zhǎng),也減輕了小朋友需要長(zhǎng)期盯著電子屏幕而影響視力的焦慮。
我每次一起陪玩的時(shí)候都會(huì)有意無(wú)意去引導(dǎo),對(duì)于一些單人闖關(guān)游戲,讓小朋友玩起來(lái)不要憑感覺(jué)瞎試,逐漸嘗試進(jìn)行一定的邏輯推理,找到一些突破口;對(duì)于一些多人競(jìng)技類游戲,也會(huì)對(duì)輸贏做一些小小的復(fù)盤(pán),討論的策略。
坦率講,學(xué)齡前注重在游戲中培養(yǎng)興趣和思維方式,如果家中有好的氛圍,其實(shí)在家里培養(yǎng)是性價(jià)比最高的,也是成本最低的試錯(cuò)。
-學(xué)齡以后,我又把它分為小學(xué)高年級(jí)和低年級(jí)
小學(xué)低年級(jí),編程基本還是延續(xù)以興趣優(yōu)先,再慢慢試錯(cuò)為主的思路。
這個(gè)年齡段的孩子是往往還不太能把具體問(wèn)題抽象成數(shù)據(jù)模型的,嘗試學(xué)習(xí)的時(shí)候只能先接觸以Scratch為代表的圖形化編程語(yǔ)言,還需要借助一些直觀的教具,視頻或者小游戲來(lái)幫助他理解各個(gè)指令的效果。
這個(gè)階段的學(xué)習(xí)目標(biāo),主要是借助圖形化語(yǔ)言,掌握一些基本概念,絕大多數(shù)小朋友的學(xué)習(xí)效率和速度都會(huì)比較緩慢。如果已經(jīng)提前開(kāi)始學(xué),家長(zhǎng)千萬(wàn)不能急于求成,要放下功利心,提前學(xué)編程,遠(yuǎn)遠(yuǎn)不等于可以搶跑很多。
而從小學(xué)三年級(jí)開(kāi)始,魔都小學(xué)生就會(huì)正式增加一門(mén)新的課程——計(jì)算機(jī)信息學(xué)
這個(gè)時(shí)間段,其實(shí)也是符合孩子的普遍認(rèn)知發(fā)展水平和教育部的指導(dǎo)方針的。三四年級(jí)開(kāi)始學(xué)習(xí)圖形化編程的話,按照每周一到兩個(gè)課時(shí)的安排,往往一年左右時(shí)間就可以基本掌握類似于scratch的編程語(yǔ)言,天賦特別高的,也可以買(mǎi)書(shū)自學(xué)。
如果小朋友到初中以后才接觸編程的話,由于抽象能力,邏輯思維能力已具雛形,所以,可以不必要從圖形化編程開(kāi)始學(xué)起,Python、C、C++都是可以嘗試的語(yǔ)言,但是市面上成熟的計(jì)算機(jī)編程語(yǔ)言相對(duì)圖形化編程來(lái)講,會(huì)比較枯燥,也對(duì)英語(yǔ)水平有一定的要求,前期興趣積累不夠的小朋友就可能因?yàn)槲冯y而堅(jiān)持不下去。
同時(shí),到了這一階段,一些天賦比較強(qiáng)的小朋友也是完全可以做到買(mǎi)書(shū)或者利用目前網(wǎng)上豐富的資源自學(xué)的。
這里再插播一個(gè)大家都挺關(guān)心的小問(wèn)題——奧數(shù)學(xué)的好,是不是編程一定好?
我的觀點(diǎn)是有一定比例,但是并不完全正相關(guān)。小學(xué)奧數(shù)所需要的抽象思維能力,邏輯推理能力,和編程需要的技能確實(shí)有一定重合的地方。小奧學(xué)的好的娃,確實(shí)大概率接觸編程會(huì)容易一些。
但是,對(duì)于奧數(shù)是靠拼命刷題,依賴記憶一些套路來(lái)拿到高分的人來(lái)說(shuō),就不見(jiàn)得就可以輕松拿下編程。因?yàn)榫幊谈`活也更需要一些創(chuàng)造力,它類似于畫(huà)畫(huà),很適合自由發(fā)揮,專注于開(kāi)放性問(wèn)題,而不限于傳統(tǒng)意義上的習(xí)題。
真正將來(lái)能學(xué)好的反而是沒(méi)事喜歡自己瞎玩玩瞎編編,無(wú)意識(shí)中加深自己綜合運(yùn)用能力的人。
選擇什么編程語(yǔ)言
選擇哪種編程語(yǔ)言或者說(shuō)平臺(tái)作為啟蒙,很大程度上取決于小朋友的年齡。
這也就是我前面提到過(guò)的觀點(diǎn),受認(rèn)知的限制,編程是無(wú)法主要通過(guò)提前學(xué)來(lái)獲得競(jìng)爭(zhēng)優(yōu)勢(shì)的,父母?jìng)兇罂刹槐靥^(guò)焦慮。
邏輯思維的底子好,就算初中再接觸編程,直接從C++開(kāi)始學(xué)也無(wú)妨,并不需要倒回去把低幼啟蒙的圖形化編程再去走一遍。目前比較常見(jiàn)的編程語(yǔ)言無(wú)非以下幾種主流:
c++競(jìng)賽專用,效率高但規(guī)則復(fù)雜
適合已經(jīng)確認(rèn)比較有編程天賦加邏輯基礎(chǔ)的,一般初中起步
python略抽象,適合有簡(jiǎn)單編程邏輯基礎(chǔ)
適合小學(xué)高年級(jí),具有一定抽象能力時(shí)可以嘗試
scratch為代表的圖形化界面,適合低幼,操作簡(jiǎn)單,功能弱
適合編程啟蒙,小學(xué)中低年級(jí)可以嘗試起步
學(xué)編程有哪些好處?
目前的選拔出口有哪些?
我們前面講的這些總結(jié)起來(lái),少兒編程對(duì)鍛煉孩子抽象思維、邏輯推理、數(shù)學(xué)建模能力都有不少好處,它和數(shù)字化時(shí)代的到來(lái),和國(guó)家的導(dǎo)向都非常吻合。
而且從孩子個(gè)體發(fā)展角度來(lái)講,機(jī)器人編程后期需要組隊(duì)參賽,需要培養(yǎng)孩子的團(tuán)隊(duì)協(xié)作能力,軟件編程需要大量的時(shí)間精力,調(diào)試程序,對(duì)于培養(yǎng)孩子的專注力,耐性和抗挫能力,都有不小的幫助。
需要提一下的是,目前從功利的角度,也會(huì)有一些選拔的出口。
在奧數(shù)全面被禁以后,也有不少家長(zhǎng)轉(zhuǎn)戰(zhàn)到編程這個(gè)賽道上來(lái),目前含金量相對(duì)高一些,也得到了認(rèn)可的是教育部白名單上的一些賽事。