教小孩學程式 - 從 code.org 開始 (作者:陳鍾誠)
最近、我陰錯陽差的發現自己的「小兒子」竟然很想要 「自學」,於是我從 金門縣教育局的網站下載了自學申請書,並且在五月底送出了申請,這份申請現在也被教育局和學校核可了。
就像某廣告台詞上說的:「我是當了爸爸之後,才開始學習怎麼當爸爸的」。
同樣的、我們也是在申請自學之後,才開始探索該如何自學的!
還好、在網路發達的今天,透過網路就可以尋找的不少自學的資源。
我想先讓小孩嘗試看看「學習寫程式」,看看他們是否能夠學會這門「資訊社會的核心技術」,於是我找到一個「教小孩學習程式相當知名的網站」,那就是 code.org 。
code.org 的學習初體驗
想要透過 code.org 學習程式,請連上 http://learn.code.org/ 這個網址,您將會看到下列畫面。
您就算不申請帳號登入,也可以直接使用 code.org 開始學習程式,但是筆者強烈建議大家登入之後再開始使用,因為登入後系統會記住您所學習的每一門課程,這對您掌控學習進度大有幫助。
Code.org 是美國人為了教育自己下一代,動員了不少人力而作出來的一個網站,並且有不少「程式領袖」都參與了該網站的推廣行動,其中包含了「微軟」的比爾蓋茲,臉書的「馬克佐伯克」,還有 Twitter, Dropbox 等公司的創辦人,以及 NBA 的籃球明星 Chris Bosh 等,都曾經為 code.org 錄製過「程式教育推廣影片」,以下是其中的一個簡介影片。
- What Most Schools Don't Teach -- http://youtu.be/nKIu9yen5nc
一但進入 http://learn.code.org/ 之後,您就可以開始一關一關的點選,其中的數字連結「程式關卡」,而寫著 Unplugged Activity 的文字連結則是教學導引影片。
如果您點選 「階段 2: 迷宮的連結 1」 ,則會開始進入第一個「程式關卡」,畫面如下所示。
這一關很簡單,您只要多拉一個「向前移動」的功能貼在下面,如下圖所示,然後按下「執行」之後就可以過關了。
通常、 code.org 會偵測您的系統,自動採用適當的語言呈現。但是如果自動呈現的語言不正確的話,您可以到網頁最下方選擇「語言欄」,將語言調整為「繁體字」。
就這樣,您可以跟著網站的導引,一關一關的闖關,在這個過程中您將不知不覺的學會基本的程式設計觀念。
如果您也去用用看 code.org,應該會發現這個網站真的很棒,非常適合「初學者」用來學習「基礎程式設計」。
當然、有時候您還是會碰到「卡關」的情況,這時可能會思考很久但卻都無法通過,此時如果有「教師」可以幫助您的話,那這些關卡就不會造成學習上的重大挫折。舉例而言,筆者的「大兒子」在 level 80 這個關卡上就卡住了,於是我開始自己來闖關,思考了一陣子後發現採用下列方式就可以「破關」,順利的整好那塊「田地」。
當我把上述答案給「大兒子」看的時候,他才看了一眼就說:「我懂了」!
我想、這是因為他已經在這個問題上卡了不少時間,而且認真的想過,嘗試了很多解法之後,就差那麼臨門一腳的結果。
於是、他才能在短短的一秒之內,想通整個問題,快速的掌握通關秘訣。
如果、這個關卡得太久,很可能就會讓他感到灰心,並且喪失學習的動力。身為教師,往往發揮作用的地方,就是在學生卡關的時候,可以發揮那臨門一腳的效果。
台灣的教育,現在看來似乎卡關了,但是如果我們不努力去思考嘗試的話,整個教育體系或許還要卡住 20 年也說不定。或許有一天,那個臨門一腳的時刻將會來臨,此時、如果我們有努力做好準備的話,我們的教育或許會就此脫胎換骨也說不定。
後記
最近、可以用來教小孩程式的工具越來越多了,以下這些工具都還蠻適合小孩用的。
- Scratch
- 特色:與 code.org 類似的圖形化程式學習網站,也有單獨安裝版本。
- Scratch遊戲動畫一把抓
- MIT AppInventor 2
- 特色:可用與 code.org 相似的圖像式方法撰寫安卓系統 (Android) 的手機程式。
- codecombat.com
- 特色:讓您線上透過寫程式的方式操控遊戲的角色,一邊闖關一邊學程式。
- smallbasic.com
- 特色:微軟出的程式,讓初學者可以透過 basic 語言學會程式。
- codeschool.com
- 特色:線上學習網頁技術的網站,但有些課程是要付費的。
- Blockly Games
- 特色:可用與 code.org 相似的圖像式方法撰寫程式後,匯出完整的程式碼。(code.org 無法匯出程式碼)
- Google發表Blockly Games,讓小學生邊玩邊學習程式設計概念
- blockly - A visual programming editor - Google Project Hosting
不過、筆者還是覺得 code.org 是最適合小孩入門的一個網站,一但完成 code.org 的闖關課程之後,就可以真正開始用「打字」的方法學習程式設計,而不是依賴圖形化界面來寫程式了。