如何帶小孩玩 ComputerCraftEdu 學程式設計
Minecraft 有個很棒的模組 ComputerCraftEdu ,可以帶領小孩進入程式設計、電腦邏輯與機器人的世界。
在歐美很多學校、教師採用 ComputerCraftEdu 與 ComputerCraft 這兩個模組教小孩這類的課程,如芬蘭、英國、北愛爾蘭、美國等,而開發這模組的公司也正是美國與芬蘭的公司。
ComputerCraftEdu 是透過可程式化的小烏龜,讓小孩編寫程式去控制小烏龜進行一些動作(行進方向,挖礦,放置東西等),再善用邏輯與程式迴圈及判斷式,就可做很多事情了(如自動建造房子、城市,自動挖礦等)。
ComputerCraftEdu 是免費的模組,可以自行安裝在 Minecraft 就可以使用。
若是要在課堂班級使用,教師可以使用 ComputerCraft Server 這樣的工具,這是需要付費的。若教師或學校有資訊能力的話,可以購買版權後,自行架設。在課堂上提供學生登入使用 ComputerCraft ,讓教師可以去監控學生們的狀況,依據課程給予學生資源或限制,非常適合運用在團隊合作上的專案。
回歸正題囉。要如何帶小孩玩 ComputerCraftEdu 呢?
不同年齡層,理解能力也不同,已具備的知識也有所差異。
6 ~ 8 歲的小孩
我會讓小孩用創造模式, 直接給予 ComputerCraftEdu 的機器龜,讓他們不需要自己去建造出來。因為用意就是要讓他們去學習控制機器龜。兩兩一組,示範機器龜的操作與控制台的相關操作按鈕。兩兩一組的好處是,小孩可以互相支援,而透過自己的理解後,再解釋給別人聽,才是真正的理解。
這年紀的小孩,我們要示範給他們是簡單且直覺的指令,如:前進、左右轉、放置物品、打物品。他們要學會使用機器龜的角度去觀察,而不是用小孩自己的視野。尤其是左右轉,是要以烏龜的角度去決定左右轉。
而在使用機器龜進行程式邏輯迴圈前,我會強烈建議教師先用桌遊帶著孩子去練習重複的概念。當小孩知道可以善用重複直走一步三次,等於放上三張直走一步的指令牌時。可以用左轉90度三次等於右轉90度。那麼就可以讓他們使用機器龜去練習程式迴圈了。
透過操控機器龜,去學習空間規劃設計。而如同前述的先讓小孩使用桌遊學習程式邏輯與迴圈,其實就是我們在軟體開發上會用的 pseudo programming 虛擬程式碼。邏輯設計正確後,再實際上機用控制器寫出對應的程式碼。
小孩這時候對於鍵盤輸入是有困難的,讓他們用滑鼠去選適當的圖示就好,容易拖拉與調整。這是 ComputerCraftEdu 圖形化程式語言的好處。
我也建議若教師有使用 ComputerCraft Server 的話,讓小孩進入 龜島 Turtle island 去學習,甚至下載安裝 World library ( Turtle Canyon ),逐步學習 。
目標:
- 練習設計出簡單邏輯流程圖:如機器龜要繞過前方的樹去挖礦。著重在方向操作與單一動作,不包含判斷式做選擇與邏輯迴圈。可以用簡單的加減算式解決問題。
- 可以排列出簡單的程式:將上述邏輯圖,用圖形式程式語言排列出來對應的程式。
9 ~ 12 歲的小孩
這年紀的小孩,手指也較靈活了,可以使用鍵盤打字,前提是他們要能熟練使用圖形化程式語言編寫出程式迴圈,邏輯思考才是基礎根源。
ComputerCraftEdu 除了有圖形化程式語言,也可以讓使用者編寫程式碼,畢竟實際程式語言,是以英文編寫出來,因此小孩能儘早對這些英文關鍵字有所熟悉與知道怎麼用。可以讓小孩自行製作英文關鍵字閃卡,更能加深記憶。由於 ComputerCraftEdu 與 ComputerCraft 的程式語言是 Lua。以下是 Lua 的關鍵字。
這階段著重在編寫 Lua 程式碼外,更要開始帶小孩順序、將問題拆解、選擇、迴圈、畫出邏輯圖及變數應用。
目標:
- 練習設計出進階的邏輯流程圖:開始帶小孩順序、將問題拆解、選擇、迴圈、畫出邏輯圖及變數應用。
- 熟悉 Lua 的程式關鍵字運用和程式邏輯的語法結構
13歲以上的小孩
開始帶他們利用好的程式編輯器 IDE 去學習撰寫好的程式,畢竟使用 MinecraftEdu 或 MinecraftEdu 要寫出超過50行的程式,頗不方便。也無良好的除錯 Debug 環境。
這邊有很多 Lua 程式語言編輯器的工具介紹,http://lua-users.org/wiki/LuaEditorSupport
我會建議使用 IntelliJ IDEA ,並安裝 Lua 的外掛套件。原因不只是介面清楚明瞭,整合擴充功能強,之後要編寫其他程式語言也可在相同環境或類似操作介面。
這階段,著重的重點是在模組化及物件導向觀念,讓小孩去思考有哪些部份是可以重複使用。開始讓小孩真正去寫一個完整的系統,自己去構思專案,解決問題,自己找資源,如有問題,如何解決。這時候,要鼓勵小孩多去參與一些論壇、群組討論,並且輔以英文。因為外國這方面的資源也較完整與先進。
自學是很關鍵的要素,也讓小孩自學其他程式語言,如 Python、Java等。
之後可以用 Python、Java 透過 Minecraft API 在 Minecraft 世界設計遊戲、建造城市房子。並且也可以與 Arduino 整合。
目標:
- 聽懂他人需求,可以熟練用邏輯流程圖設計流程與解決方案,符合並滿足需求。為什麼說要符合並滿足需求?符合需求只是達到目的,但滿足需求則是超出他人(客戶)期待。舉例:要設計一個可以讓機器龜走出迷宮的程式。而只要走出迷宮就是符合需求,因此讓機器龜沿著右邊的牆走,就會走出迷宮,雖然符合客戶的需求,但是機器龜行走的時間較長。而若能思考縮短行走時間,找到最佳的迷宮走法或演算法,那麼就是滿足需求了。
- 熟悉使用 Lua 程式編輯器設計程式,並且可以自學其他程式語言。
- 參與國外網路群組,吸收新知與人交流。
最後分享, MinecraftEdu 也出了六部 ComputerCraftEdu 教學影片 。
[embedyt] http://www.youtube.com/embed?listType=playlist&list=PLp2GEYjNp_oHtevvEJ0fw8NLWnjBH-SPE&v=ptH99K2Q6WA[/embedyt]
ComputerCraftEdu / ComputerCraft 的程式語言 Lua 自學資料如下,
而開發跨平台智慧型手機app的工具 Corona 可樂娜,用的程式語言就是 Lua。
3 Comments
再次抱怨為何中年級沒有
哎呀,你們這群中年級反彈有點大喔。
要謝謝你捐贈筆電給種籽喔。