• 沒有找到結果。

Scratch 程式設計語言及其相關研究

第二章 文獻探討

第二節 Scratch 程式設計語言及其相關研究

本節共分兩個部分,第一部分介紹 Scratch 程式設計語言,第二部份整理國內關 於 Scratch 的研究相關文獻。

一、Scratch 程式設計語言

Scratch 軟體是由美國 MIT Media Lab 的 Dr. Mitchel Resnick 所領導的 Lifelong Kindergarten Group 所發展的一套免費的程式語言。Scratch 最先是在 2007 年夏天發表釋出,目前的版本為 1.4 版,支援中文介面,可以在 Windows,Linux,

及 Mac OS X 等平台執行。Scratch 的設計靈感來自於教學童們程式設計時遇到的種 種困難,其目的在幫助八歲以上的兒童學習數學以及計算觀念,增加創意思考、有 系統的邏輯推理和合作學習 ("Scratch website," 2010),而其設計的原則為更具操弄 性,更有意義性及更具社會性(Resnick et al., 2009)。

Scratch 的特色是以積木組合的方式讓兒童撰寫程式,兒童可以輕易地創造出互 動式的故事、動畫、遊戲等多媒體程式。Scratch 的圖形化視窗介面大致分為四個區 塊如圖 1 所示,左邊視窗為程式積木區塊;中間視窗為角色程式及屬性區,右上角 視窗為舞台區,使用者可即時檢視所創作的作品;右下角視窗為演員列表區,所有 的角色都會出現在此視窗。

圖 1 Scratch 操作介面圖

12

在程式積木區塊部分,以顏色區分為八類程式,如圖 2 所示,分別為動作,外 觀、聲音、畫筆、控制、偵測、數值與邏輯運算、變數等,每一類程式下的指令都 是以積木的形式來呈現,如圖 3 所示。

圖 2 Scratch 八大類程式

圖 3 Scratch 動作類別之程式積木

13

「角色程式及屬性區塊」為兒童撰寫程式碼的重要區塊,兒童只需將「程式積 木區塊」的程式碼拖拉至此區塊中,接著對問題理解後加以排列程式積木即完成程 式的撰寫,如圖 4 為一簡易迴圈程式碼。

圖 4 Scratch 簡易迴圈程式碼

依據 Scratch 的說明文件,現行 Scratch 版本所包含的程式積木概念包括了︰ 順 序(sequence)、 迴圈(looping)、條件語句(conditional statements)、變數(variables)、陣 列(arrays)、事件處理(event handling)、線程(threads)、協調及同步(coordination and synchronization)、鍵盤輸入(keyboard input)、亂數值(random numbers)、布林邏輯 ( boolean logic)、動態作用(dynamic interaction)及使用者介面設計(user interface design)。而目前 Scratch 版本尚未具備的程式概念為︰ 函數(procedures and functions)、遞迴(recursion)、異常處理(exception handling)、參數的傳遞即回傳值 (parameter passing and return values)、定義物件類別(defining classes of objects)、繼承 (inheritance)及檔案輸入輸出(file input/output)等。

Scratch 的主要核心精神為:"Imagine, Program ,Share “。 Scratch 的官方網 站提供了社群的分享平台,能讓使用者分享她們所創作的作品,也可以輕易的下載 其他使用者的作品原始檔案。藉由觀摩他人的分享作品,能夠學習他人優秀的創意 想法及程式邏輯設計概念,並將有用的想法再造成為自己新的創意。

由於 Scratch 具有視覺化分類清楚的程式積木,豐富的多媒體功能且具備中文化

14

國外研究學者 Malan 與 Leitner(2007)認為 Scratch 的環境能使學生在掌握程式 語法結構之前,專注在問題的邏輯表示,適合第一次接觸程式的新手。因此在哈佛 大學暑期學校進行 JAVA 課程前,先以 Scratch 當成是入門程式語言進行程式教學。

研究發現,Scratch 簡單的操作能使學生有自信,也能使學生熟悉程式的語法。JAVA 課程結束後以問卷調查 Scratch 的經驗是否影響之後的 JAVA 程式經驗,76%學生都 認為 Scratch 對它們有積極的影響,特別是沒有程式背景的學生。

Wolz, Leitner, Malan, 與 Maloney (2009) 討論了使學生由 Scratch 過渡到 JAVA 的 哈佛經驗(Malan&Leitner ,2007)指出 Scratch 的靈活度,簡單性及方便性使學生具備正 向積極的程式經驗。

Rizvi, Humphries, Major, Jones, 與 Lauzun(2011)認為 Scratch 是具多媒體的程式 語言能使學生免於記憶語法,只需將重點放在演算法的開發與專案的設計上。他們 在電腦科學系針對數理背景較弱的學生開設 Scratch 課程,初步評估顯示學生在程式 設計能力上顯示高度的自信。

2. 中學生(青少年)使用 Scratch 的相關研究

Maloney, Peppler, Kafai, Resnick, 與 Rusk (2008)分析 8-18 歲的青少年在課後俱 樂部使用 Scratch 超過 18 個月中的 536 個作品,其中 111 個作品沒有使用到程式的 概念,單純只將 Scratch 作為媒體整合,425 個作品均會使用順序概念,374 個作品 會使用線程概念,而使用者互動、循環、條件語句、廣播及同步、布林判斷及變數

15

等程式概念也會在需要的作品中出現。其中發現廣播和同步概念在作品中大量被使 用,布林運算、變數不容易由學童自學而得,但經由教師的教導,學童們馬上能應 用變數概念解決程式的問題,這顯示了電腦俱樂部青少年缺乏正規師資的指導及他 們都是程式新手的問題點。研究指出青少年使用 Scratch 的理由為 Kelleher 與

Pausch(2005)在「降低程式設計的障礙」一文中所提的三個論點:簡化程式設計系統使 之適合於新手、能在適時指導新手及使學習者有動機與興趣學習程式設計。

Adams(2010)在暑期夏令營針對中學生使用了 Scratch 介紹程式設計的課程,中 學生們對於 Scratch 的反應是正向的並認為能增進他們的電腦經驗。

Meerbaum-Salant, Armoni,與 Ben-Ari (2010)在中學以 Scratch 實施電腦科學的概 念課程,研究發現大部分學生能順利學得電腦科學概念,但在初始化,變數及同步 化的概念有些問題,這些問題都可由教師修改教學課程加以克服。

3. 兒童使用 Scratch 的相關研究

Utting,Cooper,Kölling,Maloney,與 Resnick ( 2010)等軟體設計者在 ACM Symposium on Computer Science Education 的特別議程中討論了 Alice,Greenfoot 及 Scratch 的設計目的,方法及影響。Scratch 的設計者認為在學童感興趣時可盡早學習程式設 計,學童對運作有誤的程式積木不斷修正能增進程式技巧,可使他們著重在動手解 決問題。

Ward, Marghitu, Bell, 與 Lambert( 2010)指出使用 Scratch 以創意及吸引人的方式 進行教學,但 Scratch 的功能缺少陣列及參數傳遞等功能限制了想法的實現。

Siever, Heeler, 與 Heeler (2011)針對五六年級學生在不同程式設計環境中

(Scratch,機器人,虛擬環境)解決多步驟的任務,研究結果顯示學生對於多步驟的問題 相當有把握,也能應用問題解決能力在不同的環境。

Lewis( 2010)比較六年級學童以 Logo 和 Scratch 兩組進行程式設計的學習態度及 學習成果,兩組間只有 Scratch 組高成就學童在學習條件語句部分有顯著差別,學習 態度部分 Logo 組學童對於他們程式設計的能力呈現較高程度的信心。

16

4. 未來老師使用 Scratch 的相關研究

Fesakis 與 Serafeim( 2009)以問卷方式調查學齡前教育與教育設計系的未來老師 共 70 人,研究結果顯示高比例的老師們有高度興趣在課堂上使用 Scratch、而使用 Scratch 會降低他們的壓力及對自己能力不夠的焦慮、而老師們希望使用 Scratch 設計 網路上的教育應用程式。

17

Scratch 程式設計 對六年級學童邏輯 程,以及對於 Scratch 之學習態度。

18

王國川 (2008)

國小中年級學生以 Scratch 學習程式 語言設計之研究

Scratch 程式設計 對國小五年級學童 科學過程技能、問題 解決能力及後設認 知之影響

Scratch 對國小五年 級學童科學過程技

Scratch 程式設計 對國小五年級學生

19 用的學習活動。張文奇(2008)的研究中,學童沒有因學習 Scratch 後增加對程式設計 的興趣。蕭信輝(2010)的研究中顯示學童態度對學習程式設計感到些微的焦慮,與信 心不足。

歸納學者們的研究結果:楊書銘(2008)指出學習 Scratch 課程後,學童邏輯推理 能力未有顯著提升;「猜測原因」及「整體問題解決能力」有顯著提升,「開放性」

和「變通力」「創造力」有顯著提升。張文奇(2009)研究發現:在學習 Scratch 課程後 對學童邏輯推理能力,問題解決能力中的「猜測原因」、「逆向原因猜測」、「預防問 題」三個分項能力及創造力中的「獨創力」、「標題」兩個分項能力及總分皆有顯著 的提升。王麒富(2009)認為學習 Scratch 課程後學生問題解決能力測驗總分達顯著水 準,表示學生問題解決能力確有進步;但若分項檢驗各能力向度時,僅「問題察覺」

和「原因推測」達顯著水準。蔡孟憲(2010)認為學習 Scratch 課程後,學生幾何概念 有顯著提升,但是對邏輯推理能力則無顯著提升。蕭信輝(2010)指出學習 Scratch 課 程後,對於學童整體科學過程技能有顯著的影響,對於學童整體問題解決能力有顯 著的影響,且在問題解決過程和問題解決情意兩種分項能力都達到顯著效果。

歸納程式設計的教學策略部分︰楊書銘(2009)指出在「創作、分享、回饋、反思、

再創作」的教學策略上,「創作、分享」成效較佳;但因課程時間不足,在「回饋、

反思、再創作」方面並未達預期成效。張文奇(2009)指出合作學習與獨立學習在 Scratch 的學習成就無顯著差異。

許銘津與劉明洲(1993)指出要發展一套電腦教學軟體,在教學法、教材的安排和 人機介面的設計等過程都必須考量兒童本身的認知結構及心理成熟因素。Perkins 與

20

Martin(1986) 也指出程式語言需要特別的教學方式,並可將認知策略加入程式語言 教學。

研究者綜合以上的文獻發現,上述研究在探討適合教師進行程式設計的教學策 略上著墨並不深,但考量程式設計教學需使學童在學習程式時有整體概念的架構,

若讓程式設計初學者在初期以自行摸索去架構概念是有困難的。因此,研究者在進 行 Scratch 程式教學時將以圖形組體之教學策略幫助學童對所欲解決的程式問題有整 體的概念。

21