遊戲創作融入程式設計 — Scratch教學經驗分享
Scratch特色和創作流程
Scratch是美國麻省理工學院所發展的一套全新電腦圖形化程式語言,可以用來創造互動式故事、動畫、遊戲、音樂和藝術。Scratch也是英文常用語“start from scratch",是「從頭開始」的意思,暗示Scratch也是適合在電腦資訊領域中起步初學的電腦程式語言。Scratch主要為為8到16歲的人設計,同時也可以讓各種年齡層的人使用,包含學習者和他們的家人。Scratch的特色是透過視覺化的方式,使用像樂高積木一樣的圖形指令上下組合,在電腦中創作出多媒體的內容或是遊戲,過程中訓練高層次的邏輯思考,讓學習Scratch的學生可以建立電腦程式如何設計的觀念,更重要的是發展出運用電腦創作和解決問題的重要能力。
STEAM教學是美國理工相關系所提倡的觀念, 包含Science (科學)、Technology(科技)、Engineering(工程)、Art(藝術)、Math(數學)五大重要領域,學習Scratch正是可以掌握各大領域的重要技能,運用Scratch,學生可以用電腦表達出整合性思維,資訊能力可以輔助其它相關學科的學習,達到統合的綜效。
MIT在發展Scratch時提出「想像、創作、玩樂、分享、反思再創作」為Scratch教學的主軸(圖1)。透過螺旋式的反覆漸近學習過程,讓學習者逐步地建立基礎程式設計能力,同時培養創造及分享的精神。在網路的世代,讓學生從小培養分享的意願和能力,在網路上得到正向回饋的經驗,可以讓學生學習動力上更有持續性。

Scratch教學經驗
傳統文字形式的電腦語言課程(像是C、Java),通常先介紹資料型態,接著是變數和流程控制、函式等重要的觀念,這樣方式對中小學生來說並不合適,因為他們在抽象思考及運用符號表達都還未建立。這個階段應該透過Scratch協助學生優先建立下面的重要觀念:
1. 循序式觀念-Scratch中,每一個指令都是有先後順序,在一個指令的直列上,由上而下,先到的先被執行,所以上面指令方塊會先被執行,方塊執行完畢後,循序地一個一個指令往下會被執行,不會跳過也不會離開。讓學生接受循序式的指令思考,找到目前電腦正在執行中的指令方塊,是未來可以在較大的程式中除錯的重要基礎。
2.迴圈反覆-電腦最有特色的地方就是永遠不會覺得累,除非沒有電,讓學生在程式中把一件簡單的事做對後,可以不斷地利用迴圈不停重覆,比如可以讓Scratch小貓咪畫一間小房子後,就可以讓學生挑戰一次可以畫五間房子,看看可否挑戰成功。迴圈的觀念可以說是電腦程式中最重要的觀念,將具重覆性的程式碼放在迴圈內,把有差異化的部份放在迴圈外,每次帶入給迴圈,這正是奠定抽象電腦程式撰寫的最重要能力。
3.事件觸發-當前主流計算機主要架構都具有框架(framework)和元件(component)的關係,透過事件的觸發和處理,簡化程式的架構,同時讓程式更直覺。Scratch設計了許多波浪狀的開始事件方塊,像是當角色被點一下、空白鍵被按下、或是聲音超過特定的數值,這些事件都可以讓下方循序的程式被執行。讓學生會正確利用事件的方塊,可以做出更簡潔的程式。
4.判斷及比較-鑽石型的判斷方塊,由傳統流程圖中的菱形判斷方塊所改編,本來程式只能從頭到尾反覆地做好一件事,透過條件判斷可以選擇兩種或兩種以上的情形,這點也是非常挑戰學生的思考方式,從簡易開始學習到複雜的判斷練習,這些也是未來程式設計能力的基石。
5.運用程式解決問題和表達自我-課程中要讓學生知道,學習Scratch後,可以多找一些機會運用Scratch來做創意的展現(圖2),比如可以運用Scratch來製作小組報告,科展時可以用來做動畫模擬,或是設計同學的生日卡片,透過實際的運用和練習,讓跨領域的學習可以更具成效。
現在學生很喜歡玩電腦遊戲,在平板或是手機上都有機會接觸許多有趣的遊戲,可以算是遊戲世代的小孩。在Scratch教學實務上,嘗試出運用遊戲設計的觀念,讓學生更容易引起學習的動機,課程中介紹小而簡單的遊戲和這個遊戲的玩法,然後透過製作這個遊戲所需要的觀念來介紹新的指令。學生先用模仿的方式來
學習遊戲的設計,過程中理解各個程式方塊的運用及程式邏輯,完成後再鼓勵學生將自己創意運用在遊戲中。這種方式,因為學生有強烈的動機想完成遊戲,過程中就會自發性地想要解決所遇到的問題,學習成效自然會好很多(圖3)。


適合低年級學生的ScratchJr
ScratchJr是Scratch團隊在平版電腦上的最新作品(圖4),適合5到7歲的孩子學習程式設計,當然也適合小學低年級的學生,讓孩子創作屬於自己的故事書。在這學習過程中,孩子可以學到設計過程、解決問題的能力、以及如何在電腦前表現自己的創意。目前iPad版本己經發佈,未來也會有Android和Web的版本。ScratchJr和Scratch這兩個軟體很多設計觀念都是相通的,不過因為學生的年齡層設定得更低,所以程式方塊也就簡單化許多。和Scratch指令相同,比如按下綠色旗子就可以開始執行、舞台中有可以有許多自己設計的不同角色、可以自行錄音和拍照等。加上有像故事書一樣可以翻頁的設計,更適合拿來當繪本說故事,相信當小朋友看到自己設計的故事書一頁一頁地展開時,會有無比的喜悅!
從教授國小和國中Scratch課程的多年經驗中,筆者觀察到的是,學生對於在課程中使用Scratch來做遊戲這件事,表現出極大的興趣,課程結束後也有很不錯的成果。建議學校資訊老師可以嘗試使用Scratch來結合教學,不僅讓學生體會在電腦中能有自己動手做的喜悅,教學內容也因此可以更豐富與活潑,使電腦課程更符合現代資訊教育的需求,引導學生提高學習動機和養成良好學習方法,就可以期待他們展示各自創造出來的每一個不同的學習成果。

參考資料
- Scratch: http://scratch.mit.edu/
- STEAM: http://steam-notstem.com/
- ScratchJr: http://www.scratchjr.org/