不需要電腦,IT工程師媽媽用迷宮讓孩子Get編程思維!

2021-02-15 宇航聊編程

你會發現從事IT行業的家長對孩子學編程這件事會更加重視,並不是他們希望子承父業,而是他們從學習編程中獲益良多,才早早地給孩子布局編程學習。

就像Michelle說的那樣:具備編程技能未來一定會幫助孩子獲得更多的機會和可能性。

Michelle是一位有四個孩子的IT工程師媽媽,她大學畢業於加州理工大學,之後攻讀了斯坦福博士學位。她說自己學編程比較晚,直到18歲,才寫出人生中第一個簡單程序。如今科技飛速發展,學會和機器打交道,已成一項很重要的普通技能。

為了培養正在上幼兒園的兒子的編程思維,Michelle專門為孩子設計了「樂高迷宮編程」,並給遊戲設計了難度等級,隨著孩子年齡的增長,難度等級會一點點上升。


她解釋說,就如同嬰兒學步,要學會像一個程式設計師那樣思考,是需要訓練很長時間的。對一個初學者而言,重要的不是某種程式語言的語法規則,而是要理解編程思維。理解所有程式語言的構成要素——即所有程式語言的共性。

所以,我設計的這款樂高迷宮遊戲靠的是手寫「代碼」而不是機寫「代碼」,遊戲有四個難度等級,囊括各種編程概念。我會一邊介紹玩法,一邊對設計理念和孩子的收穫進行詳盡描述。


推薦年齡段:幼兒園,小學,初高中

所需時間: 一個小時(包括製作素材的時間)

難點: 準備工作不難,等級3和等級4可能更適合五六年級和年齡更大一些的孩子。

材料: 列印紙、 剪刀、雙面膠、 樂高小人(或其他類似尺寸的小人)、 樂高或得寶積木(可選)。

操作指南

列印「樂高迷宮編程」(在【宇航聊編程】對話框中回復「迷宮」,獲得素材),並把編程指令裁剪出來。

接下來,孩子就可以建立自己的迷宮了。共有5個迷宮可以選擇, 或者也可以用提供的空白方格製作一個自己的迷宮。 確定要選的迷宮類型後,有三種構建方式:

選項1——直接用列印出來的迷宮

如果孩子沒有樂高或得寶小人兒,Ta可以原封不動地使用PDF提供的迷宮。只需選一個自己喜歡的小人兒來完成「走迷宮」的過程。類似下圖這樣:

選項2——用樂高積木搭迷宮

如果孩子是個樂高迷,Ta 也可以發揮創意用樂高把迷宮中灰色部分擋住,就像這樣:


選項3——用德寶板子搭建迷宮

如果你有得寶的話,可以把迷宮剪出來,放在得寶板上,然後在迷宮通道旁用得寶積木蓋滿該板以形成牆壁。注意,要讓部件連接在一起,又要方便小人移動。

完成後,你的迷宮可能就是下圖這個樣子:

造好迷宮後,我們還需要製作一些「指令卡片」。像是這樣:

這些標籤上的指令都是編程過程中的常用指令,比如:向前移動、向左轉、開始、結束等等。

製作完成後,遊戲就可以正式開始了。

如果直接讓孩子在電腦上學習坐標系,他們很難理解。因為他們的左邊和遊戲角色的左邊並不是一回事,但玩熟練了第一個等級,他們就會學會怎麼樣去轉換這個坐標的視角了,這是學編程最基本的技能。


那怎麼樣教會他們用迷宮裡的小人的視角(坐標系)思考呢?首先,把小人擺在迷宮入口處,將所有綠色卡片分成三摞(向前走,向右轉,向左轉)。

孩子需要把自己認為小人需要遵從的指令列成長長一條。例如,在上面所示樂高迷宮裡,建築工人埃米特需要:向前走,向前走,向前走,向右轉,向前走……我讓6歲的兒子將這些編程指令排成長長一列。

本來我打算用兒子排好的「代碼」,直接把小人兒移出迷宮,不過他想自己來移動小人。於是,我想了個辦法,讓他一次只完成一個指令,然後邊執行指令,邊把卡片翻過來。這樣做的效果非常好,不會讓指令混亂。

我唯一提醒孩子的是要注意向左轉和向右轉的問題。當埃米特在最後一個拐角處,出現了BUG,他放了一個「向右轉」的牌子,但其實埃米特需要的是「向左轉」。我讓他把卡片放到埃米特手中,他立馬明白過來並改正了錯誤。如果不會英語的孩子玩這個遊戲,需要先認識一些簡單的英語。

在等級1中,告訴埃米特向前走5步,需要5張「向前走」指令。這一關中指令升級了,告訴孩子用「FOR循環」指令會方便很多。

比如向前走3步,原本需要3張向前走的卡,用「FOR」循環指令,只要在空格中寫上3,在「FOR」循環指令下接上「向前走」的指令,就代表「向前走」重複3次,如下圖。


這裡還要說一下格式。程式語言都會有格式要求。跟在「FOR」循環語句後的指令縮進了一些,這樣做讓代碼更容易讀。「FOR」循環語句的結尾需要一個「end」,表示該循環語句到此結束。雖然不是所有程式語言都需要這樣,但這樣做會讓孩子更加嚴謹。


用「IF」條件語句可不是機械地指揮小人往前走,向左轉或者向右轉那麼簡單了。這個指令是要教小人「思考」問題了。需要將樂高小人在任意位置可能遇到的情況都考慮在內,決策出最佳通用動作指令。孩子們可以挑戰自我,寫一個儘量簡短的程序解決迷宮難題。例如,左邊有路可走小人兒該怎麼辦,要是碰到死胡同了有該怎麼辦?


這需要孩子們能進行更為抽象的思考,你才能教他們「IF」條件語句。我是在大學第一次接觸到「IF」條件語句的,然後就一發不可收拾地將其應用到日常生活的方方面面。基本上,所有決定都能歸為決策樹。比如,我正拿不定主意去哪兒吃晚飯,我可能會這樣思考:

  「IF 我朋友Mary有空,

  —> then 我就和她一起吃泰國菜。

  ELSE IF 公寓餐廳供應的餐食尚且說得過去,

  —> then 我就去那兒隨便吃點兒。

  ELSE—> 我就窩在公寓裡吃點兒麥片和冰淇凌。

  END IF。」

謝天謝地,我後來改掉了這個「毛病」。

不過,學會這個思維方式的好處是,你考慮事情會更加全面,會把所有的可能性都考慮在內評估一下每種情況下應該做什麼,以怎樣的優先級順序去做,明白什麼才是當務之急。很多成年人都不一定能分得清事情的輕重緩急,這個技能要是提前教給孩子,他能獲益終身。

那迷宮遊戲裡怎麼用這個「IF」語句呢?比如可以給小人兒下達這樣的指令:「IF面前無牆,向前走,結束。」但對於一些需要小人兒轉向的迷宮,那就需要下面這樣的代碼。



圖中的代碼翻譯過來,意思是:「若能左轉,就向左轉;否則若能右轉,就向右轉;再否則,若碰到了死胡同,則轉180度。排查過所有情況後,向前走。重複(repeat)。」


紅色代碼「while」開頭和紅色代碼「End」結尾,意味著是一個循環語句。只要小人還處在迷宮中,就會不停重複,然後執行一堆代碼。一直重複這些代碼直到走出迷宮才「End」。


這裡還有一個ELSE語句。這就是一個優先級的順序執行啦!「IF」後面跟的特定條件成立,就百分百執行IF部分的代碼,後面的代碼就廢了,直接跳到「End」。 


ELSE IF」語句指的是其後跟著的條件成立,並且之前出現的「IF」和「ELSE IF」之後的條件都不成立,就執行該「ELSE IF」部分的代碼。


ELSE」指的是上述所有情況都不成立時,就執行該ELSE代碼語句,我的麥片配冰淇淋晚餐就是這種情況。 


藍色「END」意味著「IF」條件語句的結束。

雖然等級3會讓孩子們覺得自己很厲害,但是換個迷宮,這套「代碼」可能就沒用了。而且很有可能小人兒會被卡在「無限循環」中,一遍又一遍地重複著同一個行為,無從逃脫。這時候,如果引進一個隨機數字產生器,讓小人兒走出任何迷宮。


如果在程序中給了「向左轉」優先選擇,也許小人會卡住,陷入一個死循環中,一直在同一路徑中重複向前走、向後走。要解決這一問題,但又能不引入諸如存儲變量一類更為複雜的概念,這時候可以利用隨機數字產生器移除優先選擇項。


例如,不說「若能左轉,就向左轉」,取而代之,我可以說「若能左轉,一半情況下向左轉」。這個「一半情況」就是隨機數字產生器函數,簡單點就是扔骰子可以代替。引入隨機性這一概念後,小人走的可能不是最符合邏輯的一條路,但是他也不會陷入死循環。


我「認為「這是一個適用於所有迷宮的可能的代碼之一(如下圖所示),但這並不是唯一「正確」的答案,可能也不是最佳正解。 在你家孩子嘗試用自己的代碼解決問題之前,我不建議你把該代碼展示給孩子。 編碼就是一個不斷試錯的過程,在程式設計師思考出新的可行代碼前,一遍又一遍的試驗和檢測是必不可少的。



四個等級都完成後,心智最成熟的孩子將會認識到:要是他們的樂高小人兒能記住自己走過的路,那他們就能系統前行,而不是漫無目的地瞎轉了。這可能會引發有關更高級的編程概念的討論,比如存儲器和存儲變量。

這個遊戲的價值就在於,孩子可以看到手頭面臨的特定問題,然後一步一步地讓樂高小人兒走出迷宮。教會孩子從不同於自身坐標的角度思考問題。讓孩子明白自己的左邊和迷宮裡樂高小人兒的左邊不完全是一回事兒,就算是年齡最小的孩子也能學會轉換坐標系的寶貴技能。

我們還可以通過這個遊戲看到,如果能先讓孩子了解手寫「代碼」,而不是機寫「代碼」,從數學的角度去真正了解編程,了解計算機,那麼,孩子就能了解到所有程式語言共通的那一部分,為今後的編程學習打下非常好的基礎。

好了,趕緊和孩子一起體驗一下吧~

長按下方二維碼,關注宇航聊編程

在公眾號對話框回覆:迷宮

即可領取——樂高迷宮素材

相關焦點

  • 4歲孩子能學編程嗎?谷歌工程師媽媽的建議是這樣的
    編程:大問題分解成小問題認識編程教育前,不如先來回答谷歌工程師科曼·辛格的一個問題:如果一個5歲的孩子想數清天上有多少顆星星,她該怎麼做呢?這位工程師媽媽告訴女兒奧拉的答案是:計算。對編程的啟蒙教育,最終被這位工程師媽媽做成繪本《奧拉學編程》。初衷:女性在計算機領域可以更優秀寫作的初衷源於兩年前女兒向她提出的疑問:「媽媽,編程太難了,只有男孩子才能學。」
  • 瑪塔+積木:IT媽媽帶娃玩編程,每天一場迷宮大冒險
    編者註:本文作者是一名在IT外企做銷售支持的寶媽,由於長期在IT行業工作,因此對於孩子的編程教育非常上心。在接觸到matatalab編程機器人之後,她和4歲的寶寶Joe探索了很多玩法,還用家裡的積木來搭建迷宮,讓編程啟蒙過程變得多樣而有趣。大家好,我是Joe的媽媽,在一家IT外企做銷售支持的工作。
  • 史丹福大學:孩子長大不一定「編程」,但一定要培養「編程思維」!
    這得從2006年,卡內基梅隆大學的Jeannette Marie Wing教授所提出的「人人都需要培養編程思維」說起。她認為,編程思維是每個人的基本技能,不該僅屬於計算機科學家,在閱讀、寫作和數學之外,我們應當將編程思維加到每個孩子的培養能力之中。
  • ​孩子為何需要編程教育?遊樂場化的教育能否培養計算機思維?
    我沒有直接回答她,而是反問:「你會讓孩子閱讀嗎?會讀多久?你會讓她寫作嗎?寫多少?是否會讓她一直寫下去?」這位媽媽回答說:「看情況。這取決於她想讀什麼書,取決於寫作的時機和周圍環境。類似的邏輯同樣回答了編程教育是否必要的問題——「看情況」。少兒編程教育就像一個遊樂場,它給孩子們提供了許多學習、成長、探索和創造的機會,幫助掌握新技能和思維方式。我們並不需要總是把孩子帶去遊樂場;因為還有其他地方能夠參觀,同樣除了編程還有其他技能可供選擇開發。但是去遊樂場時,我們還是希望這是一個能有所收穫、適宜成長的領域。
  • 編程思維:給孩子受益終身的思維方法,打造面對未來的核心競爭力
    也許大家已經注意到,身邊越來越多的電子設備被賦予了越來越多的功能,這些都是靠編程實現的。到2022 年,我國很多城市將把編程納入中學的必修課程。作為人與機器之間的交流工具,編程將成為最常用的溝通語言,也成為時下熱門的教育關鍵詞。不過有很多家長發現,雖然孩子學了編程,但坐在電腦前字母都會敲,捋不清指令之間的邏輯關係才是最大的困難。
  • 啟蒙編程機器人、教孩子如何編程的桌遊……這18款酷到沒朋友的...
    不同於傳統的視頻遊戲用手指和鍵盤來操控遊戲角色,它設計了一個與電腦或平板相連 接的雲朵狀的板,孩子們通過把拼圖狀的遊戲卡片按照序列嵌入雲朵板中、來編程和操控視頻中的各個角色的行動。在快快樂樂的遊戲闖關過程中,不知不覺孩子們 就已經把編程的基本原理學了個透徹。
  • 預告 | 瑪塔編程機器人:不用看屏幕,照樣學編程思維!不識字的孩子也能玩!
    兒童編程最大的意義,不是讓孩子去學習某一門很具體的程式語言,去當一名程序猿,而是通過程序編寫背後的邏輯來鍛鍊孩子的思維能力。
  • 不插電的編程思維遊戲課,0基礎孩子輕鬆上手
    在今年暑假,狂丸科學曾進行了一次編程思維的社群訓練營活動,收穫了眾多學員和學員家長的好評。雖然訓練營已經結束了,但這套新穎的「不插電編程思維課」,隨時都可以讓孩子學起來。
  • 編程貓孫悅:少兒編程絕不是教孩子編程技能,而是培養編程思維|WISE...
    我們如果把大學生的技能教給孩子,都是耍流氓,我能理解所有的熱議,為什麼這麼高深的技能要教給孩子?我們從來不教,或者不強調教孩子所謂的編程技能。這裡面最重要的是什麼?就是編程思維,編程思維是周以真教授提出來的一個非常重要的概念,我也給大家講一下什麼叫編程思維。大家總認為編程是件非常高大上的事情,實際上它跟我們的生活息息相關。
  • 學習少兒編程需要先學會電腦和英語嗎
    格物斯坦小坦克想說的是少兒編程和計算機代碼編程是不一樣的。很多人對孩子學習的Scratch語言和成人學習的Java、C語言等區分不開,因而習慣性的抗拒說:我的孩子以後可能不會成為一個程式設計師。實際上少兒電腦編程的教學模式應該是符合孩子學習和成長規律的,孩子學習的編程課程容易上手,不需要輸入密密麻麻的算法指令,只需要拖動圖形化的積木塊,就可以實現相同的編程運行效果。少兒編程的學習主要是開拓孩子的思維能力和解決問題的能力。在製作一些好玩的動畫程序,小遊戲等程序中,體會到編程的樂趣。所以,讓孩子學習少兒編程並不需要掌握電腦和英語,更不需要成為程式設計師。
  • 學齡前兒童怎麼培養編程思維
    最近有幾位朋友問我:「孩子什麼時候學習編程比較好?學齡前的孩子怎麼學編程呢?」我認為即使未來不做程式設計師,面對即將到來的機器人時代,孩子們熟悉編程思維,學習一些編程基礎也是非常必須的。針對5、6歲的學齡前兒童我推薦實物編程機器人,這個年齡段的孩子還處在具象思維階段,通過實物來理解和學習編程,更符合兒童的認知規律。
  • 塗塗畫畫就能和阿爾法蛋互動遊戲,發散孩子思維,輕輕鬆鬆學編程
    大家好,我是琳子,一個喜愛穿搭,熱愛拍照的媽媽。我的女兒叫小多,今年6歲了,是一名可愛的一年級小學生。上一年級後學業明顯加重了很多,我們幫小多重新安排了一下平時的興趣課程,希望孩子不僅可以好好學習,還可以有充分的時間堅持自己的興趣愛好。
  • 雖然孩子長大不一定當「程式設計師」,但一定要培養「編程思維」
    少兒編程這幾年在美國不能僅僅用「熱」來形容,之前歐巴馬還在各個編程大會中狠狠地倡導推動了一把,現在已經不用再推了,因為它基本上就像閱讀、數學一樣,成為孩子的一門必修基礎學科。很多比較好的學區從小學低年級,甚至學前班開始就開設編程課,各種課後興趣班、編程俱樂部也非常火爆。
  • 為什麼有「編程思維」的孩子,更容易取得成功?
    很多名人都曾提及過「編程思維」對於孩子的影響。他們說擁有編程思維的孩子,無論是在學習還是工作中都更容易獲得成功,也要比普通孩子更加的優秀。而這一說法也從另一個側面加以了論證,畢竟世界500強企業的創始人很多都有過編程背景。他們的成功一方面是搭乘了時代的東風,另一方面則是他們自己內在的思維幫助。
  • iCoding愛編程培養孩子五大思維能力
    如果將孩子學習的過程比作一棵樹的成長發育過程,那麼知識是樹的養料,思維就是大樹的根基。根基不深,或者發生了斷裂,養料也無法順利送達,自然就不會枝繁葉茂甚至碩果纍纍。思維能力差的孩子,往往腦子不清晰,表達能力也差。而思維能力強的孩子,在遇到問題時,就能夠對腦海中存儲的信息進行靈活運用,並且有條理地表達出來。
  • 穿迷宮、搭積木、現場編程 看看孩子們的機器人「大戰」
    活動由北京樂博樂博教育科技有限公司舉辦,157名6-16歲的兒童,帶著自己組裝的機器人,根據年齡段和掌握機器人技能的熟練程度,分組參與幼兒積木創意賽、少兒積木創意賽、幼兒積木任務賽、少兒積木任務賽、迷宮任務挑戰賽、星際迷航挑戰賽、Python 編程賽等多個項目的比拼。讓我們一起來看看這場孩子們的「機器人大戰」。
  • 如何從小培養編程思維?快來體驗阿爾法蛋dodobot吧
    阿爾法蛋dodobot 是一款針對3歲以上編程思維啟蒙的性格擬人化顏色編碼機器人,無需用到手機或Pad等電子設備,只需配合畫筆使用,讓孩子通過塗畫彩色線條或者彩色編碼段就能命令機器人完成相應指令。當前市面上的編程遊戲和課程種類繁多,但是想要找到一款符合孩子年齡段,又能幫助孩子很好的進行編程思維啟蒙的產品,卻讓很多家長犯難。一方面,市面上針對低齡兒童設計的編程遊戲不佔多數,一方面,編程遊戲軟體大都需要配合手機、電子屏、平板等電子設備使用。
  • 編程很深奧?一文帶你讀懂大家常說的「編程思維」
    很多家長都在疑惑,孩子學編程可以培養他們的編程思維,而編程思維是什麼?對孩子有什麼幫助?編程就是和電腦對話,用電腦能聽懂的語言,告訴它我們想讓它做的事情。舉個例子來說:如果我想休息一下,會這麼和孩子說:「把那個凳子搬過來。」
  • 密碼島學編程 孩子的固有思維不可怕,最怕的是這樣
    經常聽到不少家長抱怨:輔導孩子寫作業就是一場修煉。家長著急得不行,可孩子卻總拖著不做作業,一遇到困難就退縮,不愛思考。「成績考差一次就一蹶不振。」「孩子練鋼琴,稍微複雜點的曲子就不願意練,勸了幾次反而說他不想學了。」
  • 家長給孩子挑選編程課時都需要注意什麼呢?
    如何檢驗孩子的學習成果呢?傳統的學科通過孩子完成的作品或者考試分數就可以檢驗,對於編程,可千萬不要被「完成一個作品」的標準所迷惑。關鍵是要看編程背後體現的思維。孩子在生活中或者學習上是否會使用編程思維去完成才是判斷孩子是否有學到的標準。