文/蘇國鈞、李進寶
“Don't just consume things, create things."2014 年底,網路瘋傳一張美國總統歐巴馬的照片,如圖1。
圖1 美國總統歐巴馬參加Hour of Code 活動。(圖片來源:https://gigaom.com/2014/12/08/with-a-line-of-javascript-obama-now-the-first-coder-inchief/)
Computer Science Education Week( 電腦科學教育週, 簡稱CSEdWeek) 是美國一個年度性的活動,用來激發所謂的K-12 ,也就是從幼稚園到高中的青少年,他們對科學的興趣。2014 年活動期間是12/08-12/14 ,Code.org 剛好也在這段期間舉辦了Hour of Code 活動( 圖2), 歐巴馬總統邀請了20 名學生到白宮一起學習,並且試著用JavaScript 寫了一行小程式moveForward(100);, 也因此成了歷史上第一位寫程式的美國總統。「Don't just consume things, create things.」(不要只消費東西,創造東西吧。)則是他在錄活動推廣影片(http://youtu.be/JDw1ii7aKwg)時,鼓勵大家所說的一句話。
圖2 Hour of Code 官方網站。(圖片來源:http://hourofcode.com/us/zh)
把程式設計變成全民運動
Hour of Code 是個世界性的活動,全世界預計會舉辦超過77,000 場次的大大小小程式設計相關活動,臺灣也有參與。2014 年12 月7 日,新北市教育局、台灣微軟、與美國創新中心聯手,啟動「百萬程式通」計畫,微軟會陸續提供免費的程式開發教學軟體以及程式教學課程,希望把程式開發變成全民運動,在一年之內,達成超過百萬人寫程式的目標(圖3)。
圖3 微軟提供各種程式設計免費學習資源的Microsoft Imagine 網站。(圖
片來源:http://msdn.microsoft.com/zh-tw/imagine)
不只是美國跟臺灣。把時間往前推一點點,英國其實也有動作。從2014年9月開始的新學期,英國學生的電腦課程也有所改變,學齡前的小孩會接觸一點演算法、小學生會開始學習一點程式設計概念、中高學生開始學習一點程式語言。英國甚至把2014年稱為程式碼年,也是G20會員國當中,第一個實施全民程式教育的國家。
前面舉的美國、臺灣與英國例子,並不單純只是個案。程式設計的世界,這幾年一直有著一群人,不斷地鼓勵年輕的小朋友,學習程式設計,現在已經演變成全民運動,希望大家一起投入。Code.org去年發表的影片〈What Most Schools Don't Teach〉(圖4),就引述Apple前執行長Steve Jobs的話,並且找了微軟創辦人Bill Gates、Facebook創始人Mark Zuckerberg等知名人物現身說法,說明電腦程式的重要,鼓勵大家投入程式設計的行列。
圖4 Code.org 去年發表的〈What Most Schools Don't Teach〉影片。( 圖片來源:http://youtu.be/nKIu9yen5nc)
現有的青少年資訊教育內容
學習程式設計對成年人來說,困難阻礙或許不大,但是對所謂的K-12青少年來說,是不是應該有不一樣的方式、不一樣的內容,來勾起他們的興趣、激發他們的創意呢?
臺灣從國小、國中到高中,雖然都有規劃電腦課程,但是授課的內容呢?從「九年一貫課程與教學網」網站所列出的「資訊教育的課程目標」來看:
本課程目標旨在培養學生資訊擷取、應用與分析、創造思考、問題解決、溝通合作的能力,以及終身學習的態度。藉由「資訊科技概念的認知」、「資訊科技的使用」、「資料的處理與分析」、「網際網路的認識與應用」、以及「資訊科技與人文素養的統整」等核心能力之規劃,在認知、情意、技能上培養學生達成以下之教育目標。
基本上是比較偏向電腦概論、資料處理、與電腦應用這些方面,程式設計的部份似乎是比較沒有著墨的。所以,有沒有適合國小、國中、高中生的程式設計素材呢?
底下我們列出幾個適合不同年齡層的可能學習素材,給大家做個參考。看看在這個世界上,有那些可以試著接觸的資源。
適合國小階段的程式設計資源
在眾多的程式語言競爭對手之中,由MIT Media Lab(美國麻省理工學院媒體實驗室)的Mitchel Resnick(圖5)主導,在2003年開發、2007年正式推出的Scratch(圖6),算是引導小朋友學習程式設計的佼佼者,2014年08/06-08/09還舉辦了三天的Scratch@MIT 2014 Conference。Scratch用視覺化堆積木的方式,從遊戲中讓小朋友接受程式設計的一些概念。
圖5 Scratch@MIT 2014 官方網站,右邊就是Scratch 核心人物Mitchel Resnick。(圖片來源:http://scratch.mit.edu/conference/)
圖6 Scratch 官方網站。(圖片來源:http://scratch.mit.edu/ 網站)
Google在2013年的CSEdWeek公開展示了Blockly Games(圖7),2014年8月正式對外發表,希望能夠透過一些具有教育意義的遊戲,讓小學生邊玩邊學習程式設計概念。剛剛提到歐巴馬總統寫的JavaScript程式,其實就是用Blockly Games寫的喔!
圖7 Blockly Games 官方網站。(圖片來源:https://blockly-games.appspot.com/?lang=zh-hant 網站)
適合高中階段的程式設計資源
國中、高中年齡層的青少年,Scratch或Blockly Games或許有點幼稚,可是貿然導入大人世界的C/C++/Java等程式語言,對他們會不會又太艱澀了一點?
根據《Communications of the ACM期刊》(圖8)2014年7月發表的文章〈Python Bumps Off Java as Top Learning Language〉來看,Python已經超越Java,成為美國頂尖大學裡最常用的入門程式語言。
圖8 Communications of the ACM 網站對Python取代Java 作為程式語言學習首選的介紹。(圖片來源:http://cacm.acm.org/news/176567-python-bumps-off-java-as-top-learninglanguage/fulltext)
Python的語法比J ava跟C++簡單一些,新手可以比較快上手,即使考慮到將來就業的問題,也可以無縫接軌。如果大學生可以接受Python,那年齡相仿的高中生,應該也是有機會的。上方這篇〈Programming for Teens: Beginning Python Tutorial〉教學文章(圖9),甚至是一名13歲的少年Julian Meyer寫給其他青少年朋友看的喔!
圖9 13 歲的Julian Meyer 寫給其他青少年朋友的Python 教學文件。(圖片來源:http://www.raywenderlich.com/62094/teens-python-tutorial 網站)
適合國中階段的程式設計資源
如果說小學生可以玩Scratch,高中生可以玩Python,那國中生這個年齡層呢?
這幾年行動應用與物聯網的發達,幾乎人人都有智慧型手機與平板,如果撰寫一般PC/NB的程式,對青少年來說,比較沒有吸引力的話,那讓他們學習一些比較簡單的手機App開發,有沒有機會讓他們眼睛為之一亮呢?像Microsoft的Kodu Game Lab(圖10)或是Corona Labs的Corona SDK(圖11)之類比較容易上手的App開發套件,說不定會是一個不錯的選擇。
圖10 Microsoft 的Kodu Game Lab 官方網站。(圖片來源:http://www.kodugamelab.com/ 網站)
圖11 Corona Labs 的 Corona SDK 官方網站。( 圖片來源:http://alfasin.com/coronasdk-review/ 網站)
程式設計與DIY相輔相成
以前許多喜歡PC DIY的玩家,現在很多都改玩Arduino與Raspberry Pi之類的微型電腦,控制各式各樣的Sensor、四軸直升機、或是機器人。這些微型電腦,一樣可以透過撰寫Scratch或Python程式控制,所以如果擔心青少年把昂貴的手機搞壞了,把重要的PC/NB給毀了,那可以考慮讓他們玩玩Arduino與Raspberry Pi,加入「自造者」的行列喔(圖12)!
圖12 instructables.com 網站介紹使用Raspberry Pi 與Python 製作機器人的文章。(圖片來源:http://www.instructables.com/id/Building-robots-with-Raspberry-Pi-and-Python/ 網站)
透過程式設計 激起青少年創意發想
接下來,就讓我們分別從這些主題出發,根據不同的年齡層設定,介紹上面列出來的這些學習資源,引領大家走向目前這股「擋不住的程式設計學習潮流」吧!
參考資料
- Computer Science Education week,http://csedweek.org/about
- Hour of Code,http://hourofcode.com/us/zh
- 激發創意 英國全新程式課程上路,http://bit.ly/1qVHPsu
- 高雄程式教育雲2015 年上線,http://www.ithome.com.tw/news/93185
- What Most Schools Don't Teach,http://youtu.be/nKIu9yen5nc
- 九年一貫課程與教學網,http://teach.eje.edu.tw/9CC/discuss/discuss2.php
- Scratch,http://scratch.mit.edu/
- Scratch@MIT 2014 Conference,http://scratch.mit.edu/conference/
- Blockly Games,https://blockly-games.appspot.com/
- Python Bumps Off Java as Top Learning Language, http://cacm. acm.org/news/176567-python-bumps-off-java-astop-learning-language/fulltext
- Programming for Teens: Beginning P y t h o n Tu t o r i a l , http://www.raywenderlich.com/62094/teens-pythontutorial
- Ko d u Game L a b , http://www.kodugamelab.com/
- Corona SDK,http://coronalabs.com/products/corona-sdk/
蘇國鈞 資策會數位教育研究所教學組長
李進寶 資策會數位教育研究所所長
««電子音樂鉛筆的神奇魔力... »»Maker 運動在臺灣...