資訊內容
少兒編程和樂高機器人什么關系、編程啟蒙到底怎么做


第一類問題:
編程和樂高機器人,究竟是啥關系?
“編程就是學樂高嗎?”
“編程就是學機器人嗎?”
“編程就是學樂高機器人嗎?”
“一直弄不懂編程,好多積木拼裝也說是編程,感覺好糊涂啊”
……
BUT,沒關系,只要是對娃有用的,咱們就擼起袖子把它啃透徹搞清楚!

首先,樂高是兒童拼裝搭建積木的大品牌,旗下包括很多很多的系列產品,我把它們按功能分成三大類:

磚塊搭建類大家應該非常熟悉,絕大多數孩子剛開始接觸樂高時玩的就是這一類。我們平時給孩子買的很多一盒一盒的場景類、建筑類主題積木,或者散裝的積木桶(Lego Classic系列)都是這種類型。孩子可以按照圖紙說明一步一步從頭到尾,或者憑自己想象創造拼搭出成品。
它最大的特點是——不能動。

磚塊搭建玩熟了之后,漸漸地可以讓孩子接觸機械搭建類,機械搭建時會用到輪子、齒輪、梁、栓、馬達、控制器等器件。我們平時給孩子買的很多一盒一盒的汽車、火車、飛機、變形金剛等等主題積木,或者專門的科技積木套裝(Lego Technic系列)都是這種類型。
它最大的特點是——能簡單地、重復地動。

樂高機器人則是在磚塊和機械搭建的基礎之上,結合了編程控制。比方說上面這個挖土機的手臂能通過齒輪被馬達所帶動,它是個機械搭建。但如果它還能連接電腦程序,讓它可以自動地從指定的A點挖些土搬到B點,就是個機器人了。
它最大的特點是——想怎么動就怎么動,通過編程來控制。
所以,回答前面的問題,學樂高機器人是包括了學編程的。
BUT(注意是一個大大的BUT哦),編程只是樂高機器人的一部分,可以說是比較簡單的一部分。比如就挖土機這個例子,編程要干的活很少,控制它走到A點,挖土,再跑到B點,倒土,完了,期間可能需要判斷一下距離,角度,或者調用一下傳感器,邏輯非常簡單。可在沒有圖紙的情況下,怎么搭出這個能前進、后退、轉彎,手臂能抬起放下,還能挖土、倒土的機器卻是難點。沒有這個靈活的機器,程序編得再好也沒招,叫天天不應叫地地不靈。
去年逃逃和幾位同學一起參加FLL(FIRST Lego League,FIRST樂高聯賽),開始他們想當然地把團隊分成一半一半,一半負責搭建,一半負責編程,后來發現要完成任務的瓶頸全集中在機械搭建上,編程則很簡單,派一人搞定即可。
所以說如果想培養孩子的編程能力,我建議最好專門學編程,玩樂高機器人通??赡苤挥?0%左右的時間會花在編程上,而且一般不會很深入(當然如果你要整個機器人去解魔方,編程的比重就會很大,但這種Project畢竟是少數)。樂高機器人的機械搭建部分很有挑戰,而且非常培養孩子的綜合能力,比如力學知識、空間思維、想象力、創造力、美感等等。只是說如果你的目的是讓孩子學編程的話,通過樂高機器人學編程,有點像報了個“平面設計”的班來學畫畫一樣。

第二類問題:
學編程究竟該學啥語言?
“6歲孩子學Scratch怎么樣?”
“那種拖塊塊看起來像玩游戲,不算正規編程吧?”
“11歲學C++OK嗎?”
“現在Python很火,是不是該學Python?”
問這類問題的麻麻們肯定對少兒編程比較熟悉了。不過為了讓大家都能看明白,我還是先解釋一下這些Scratch、C++、Python是怎么回事,為什么會有這么多編程語言。

在上篇我談到編程的本質,用一句話來解釋,就是和電腦對話,用電腦聽得懂的語言,告訴它我想讓它做的事。可電腦那臺冷冰冰的機器能聽懂啥?。科鋵嵥荒苈牰?和1組成的序列。所以long long ago,程序員寫代碼都是靠在紙帶上打孔,打孔代表1,不打代表0…
后來,打孔打得眼冒金星的程序員們受不了了,就紛紛開始發明新的編程語言,于是有了匯編、C、C++、C#、Java、JavaScript,Python…還有和這些語言相匹配的翻譯器。這些翻譯器能把它們翻譯成電腦搞得懂的0、1序列,所以編程時只管用這些語言就好,剩下的就留給翻譯器去辦。比如在上篇說到的那個娃媽喊娃爸買包子的梗,用C++來表示就是這樣:
If (看到賣西瓜的)
{
買包子(1);
}
Else
{
買包子(10);
}
再后來,一些有愛的程序員覺得這樣的語言小朋友用起來太難了,那些“if”、”else”什么的很難記,所以又發明了一類拖拽式的編程語言。編程者不需要手動寫代碼,只需要將操作界面上的指令方框拖到主界面,并且對指令框做一些參數設置就好。這種拖拽式的編程語言有很多種,比如Scratch、Hopscotch以及國內的編程貓,前面提到的樂高機器人,用的也是拖拽式的編程語言。

拖拽式編程語言
OK,有了這些背景知識,現在可以回答前面的問題了,主要有這幾點:
1. 孩子一開始接觸編程,建議從拖拽式的編程語言開始,難度低,上手快,孩子會比較感興趣,一般5-6歲左右的孩子就可以開始;
2. 無論是拖拽式的Scratch什么的,都是正規在學編程,其中用到的編程思想和手動寫代碼是一樣;
3. 拖拽式編程語言有個局限,沒法編寫很復雜的程序,因為一旦程序邏輯很復雜的時候,滿屏框框會顯得很臃腫很混亂。所以當孩子學到一定程度(不一定需要按年齡來劃分,只要孩子覺得拖拽式不能清爽地表達他想要的邏輯時),就可以轉為更加專業的,需要手動寫代碼的編程語言了。
4. 究竟該學C++、C#、Java、JavaScript還是Python呢?
每種編程語言都有自己適用的一畝三分地。廣義的編程可不僅僅是用某種語言編寫代碼,更重要的是該怎么用語言去操控它適用的環境。比如說你可能聽過JavaScript用來進行網頁開發,但要真正使用它得熟悉html,DOM,CSS,網頁生命周期,瀏覽器渲染機制等等等等;而C++則適合寫底層驅動,但也必須把操控的資源和硬件接口搞得一清二楚。@#¥%&()*&…逃媽你究竟在說什么?噢,這一小段搞不太懂沒關系,我想表達的是:
因為孩子學的是基本的編程思想,而不是解決某個領域的特定問題,所以學哪個語言都無所謂,因為基本的編程思想在各個語言中是相通的。只有當真正去從事編程工作時,才需要根據要實現的功能選擇一門合適的語言。而且,對于很多編程高手來說,換語言就像從使用Windows電腦換成使用蘋果電腦一樣,沒什么難度,只要稍微適應一段時間就好。
如果非要排個先后次序,我比較推薦Python。Python的語法格式比較簡單,孩子容易上手。而且從目前的行業情況來看,Python的需求量很大,學好了說不定暑假還可以去干個兼職補貼家用什么的^_^
第三類問題:
孩子究竟該怎么開始學編程呢?
“孩子完全沒基礎該怎么開始?”
“幾歲可以開始學編程?讀繪本玩桌游還是直接用電腦編程呢?”
“不想孩子老盯著電腦屏幕怎么辦?”
“推薦一些編程學習資源吧~”
有這類疑問的麻麻應該是想對孩子的編程學習做一個系統規劃,所以下面我大致按照孩子的年齡和適合的學習方式和大家捋一捋:
1
?4歲以下
有沒搞錯,這么小就開始學編程?我之前也覺得夸張,但在發達國家還真有幼兒園專門為孩子設計了一些既能Get到編程概念,又有趣好玩的活動。比如這個叫“If then backyard coding game”(“如果…就…” 后院編程游戲)的戶外活動:
??
? ?游戲的玩法是:
? ? 先選定一位小朋友當Programmer(程序員),別的小朋友當Computers(電腦)。

Computers要根據Programmer的指令來做出正確的反應。從簡單到復雜可以分為好幾關:
第一關:
“程序員”做一個動作,“電腦”們就要做相同的動作。練習“If …then…”的概念,對應的編程語句是:
If(Programmer舉左手)
then { Computers舉左手; }
第二關:
“程序員”做一個動作,“電腦”們要做相反的動作。練習邏輯“非”的概念,對應的編程語句是:
if ( Programmer 舉左手)
then { Computers(舉右手);}
第三關:
如果“程序員”做一個動作A,“電腦”們就要做相同的動作,否則“電腦“們做另一個動作B。練習”if…else“的概念,對應的編程語句是:
If(Programmer舉左手)
then { Computers舉左手; }
else {Computers 抬右腿;}

逃逃小時候我們也和他玩過類似的游戲,每人輪流扮演機器人,其他人發號施令。機器人每次只執行一條指令。比如想讓“機器人”幫忙拿個東西,可以說“站起來;左轉45度;抬左腳往前邁一步;抬右腳往前邁一步”…有時為了好玩還發出一些“循環”指令,比如“在聽到下一條指令前請保持直行”,很快機器人就“撞墻死機”了,一通爆笑中孩子也大致Get到分解問題、順序執行、循環,甚至“死循環”等概念。?
這些游戲小寶寶的家長們可以參考,不過不要期望太高,處于這個年齡的孩子才不管你是“if…then”、邏輯“非”還是循環什么的呢,可以打發時間,順便還能隱約Get到一些編程的基本概念就算賺到啦。
2
?4-6歲
如果從小閱讀習慣培養得比較好的話,這個年齡段的孩子應該對書是很感興趣的了。推薦兩本編程的啟蒙書,特別適合剛開始接觸編程的小朋友。
一本是《Hello Ruby, Adventures in Coding》,中文名叫《Hello Ruby 兒童編程大冒險》,它是一本講故事的繪本,卻將計算機的很多小知識悄悄帶入其中,用很多有趣的故事情節將程序設計中用到的概念介紹得很清楚,非常特別。
另一本是DK的《My First Coding Book》,我是在逃逃學校的圖書館里看到這本書的,DK的品質沒得說,用非常童趣的語言囊括了幾乎所有的編程概念,并通過翻翻、拖拉等方式模擬跟電腦一樣的分步執行,好看又好玩。不過目前好像還沒有中文版。
這個年齡還可以開始接觸最簡單的電腦編程了,推薦由美國麻省理工學院媒體實驗室開發的ScratchJr,它是有故事書一樣翻頁設計的編程工具,程序指令很簡單,界面卡通可愛,使用起來非常方便,很吸引低齡孩子。
不過從理解編程思維方面來講,我更推薦孩子多玩編程桌游,好處是避免長時間對著電子屏幕,而且該練的能力也能練到。首推Thinkfun家的編程桌游,從啟蒙到系統學習級,它家都有一系列的桌游覆蓋,其中適合這個年齡段的是編程烏龜Robot Turtles,屬于啟蒙級別的。
3
?6-8歲
這個年齡的孩子可以上真正的編程了,前面提到的拖拽式編程語言就很合適。推薦兩個非常權威的編程學習網站:
一個是Scratch,是ScratchJr的進階版,孩子可以通過拖拽方框來學寫程序,也逐漸開始了解循環、判斷等編程語言的基本功能。
另一個是Code。
這個年齡可以使用的編程桌游是Thinkfun的編程大師Code Master,簡單的關卡和編程烏龜的玩法類似,但到后面設計闖關路徑時難度會變大,邏輯和步驟也更加復雜。
4
?8歲+
這個年齡段孩子的邏輯思維應該已經發展得很不錯了。如果是這個年齡才剛開始接觸編程,可以從上面提到的Scratch和Code,拖拽式的編程語言開始,也可以直接從手動編寫代碼開始。
如果是手動編寫代碼,我特別推薦蘋果IPad(只在IPad上,IPhone上沒有)上的一款編程APP——Playground,它其實算是從拖拽式編程到手寫代碼編程的過渡。代碼不需要孩子一個一個字母敲出來的,Playground 界面底部會有可選項,直接點擊選擇就好。

孩子雖然不需要敲代碼,但能看到源代碼完整的樣子,這跟他以后真正要寫程序時使用的代碼是一模一樣的,這點會讓孩子很有成就感。Playground逃逃用了很長一段時間,每次通關都挺得瑟。
當然,順利過渡之后,就可以完全進入手寫代碼階段了,具體選擇學什么編程語言可以參照前面“第二類問題”中所談到的。
至此,兒童編程系列的上、下篇都寫完了,希望對大家有幫助。正如我在上篇中談到的,學編程不等于一定要當碼農。我大學同學畢業后頭5年大多都還在IT行業,在寫程序,不過10年后都七七八八地“跨界”去了,我就是其中之一。編程中積累的經驗和能力讓我們在其他行業也游走得尚好,因為它不光是一項技能,更是培養一種思維,一種觀察世界、思考問題的角度。
所以建議,每位孩子都應該學習編程。
聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除
