• 沒有找到結果。

Scratch 語言與物件導向語言的關係

第二章 文獻探討

第二節 Scratch 語言與物件導向語言的關係

2.繼承(Inheritance) 3.多型(Polymophism)。

對於 Scratch 語言是否合乎物件導向語言的定義,在 Scratch 官方網站中之

1. Scratch 中的角色(sprites)符合物件導向語言中的「物件」之特質。

2. 透過廣播功能可以讓角色和其他的角色互動,能讓角色存取其他角色中的方 法。

Wegner(1990)指出物件導向程式語言中,物件(object)是許多方法(Method)

的集合,並且用變數來設定物件的狀態(state),當接收到訊息(calls)時,物件

8

選擇便會選擇與訊息相對應的方法來執行動作,這樣的概念稱之為抽象化

(abstract)。若要存取物件中的資料,則必須透過該物件所提供的方法來存取,

這樣的概念稱之為資訊隱藏(Smith, 2010)。

而在 Scratch 的專案中,程式撰寫於角色內部。並透過變數來設定角色的狀 態。例如底下的「貓咪說你好」專案(圖 2.2.1),其觸發機制為「當綠旗被點一 下」,而在執行時使用的則是「切換到造型 2」以及「說『你好!』兩秒」。

圖 2.2.1 貓咪說你好

若其他角色間欲進行互動,則透過「發出廣播」即「接收廣播」指令來達成。

例如圖 2.2.2 中角色鴨子在點擊綠旗之後會「發出廣播『說你好』」,而角色貓咪 必須透過「接收廣播」的指令來執行「說『你好!』兩秒」的方法。雖然 Scratch 語言無法讓使用者自行定義新的資料型態,也不能透過「繼承」和「多型」的方 法產生子類別。但我們依然可從上述的範例中可看出 Scratch 的角色(sprites)具有 物件導向程式設計語言中「物件」、「抽象化」以及「資料隱藏」的特質,仍可歸 類於一種類物件導向語言。

圖 2.2.2 廣播指令示意圖

9

推理、嘗試等問題解決的過程(Malan, 2007、Maloney, 20008)。

二、Scratch 教學研究

Malan 及 Leitner(2007)認為若先透過 Scratch 作為程式設計啟蒙課程,應能 使學生在稍後接觸 JAVA 語言時更易上手。他們使用 Scratch 作為大一新生的電腦 科學入門課程,並選擇 Scratch 語言中使用的指令如:敘述式(Statements)、布林 邏輯(Boolean expressions)、條件判斷(Conditions)、迴圈(Loops)、變數(Variables)、 執行緒(Threads)以及事件(Events)等電腦科學基礎概念作為課程主軸。而大 部分的學生在接觸 JAVA 課程之後,都認為 Scratch 的學習中所建立的程式概念能 幫助他們學習正規的程式設計語言。

Maloney、Peppler(2008)成立了一個 Scratch 課後社團,並鼓勵學生創作 Scratch 作品,在 18 個月之後他們分析了學童們的作品,發現學生最少使用到的 重要指令是邏輯運算、變數及亂數概念。Salant(2010)則從 Scratch 指令中挑選 出以下指令並依照重複迴圈、條件判斷式、訊息傳遞、有限及條件迴圈、變數、

亂數、運算元和運算子、串列、及並行處理的順序進行一學期的教學。Salant 的 研究結果發現大部分學生在 Scratch 課程結束後之測驗表現上,對於程式指令概 念的理解都有進步,但是對於程式初始設定、變數以及多個角色間的互動(廣播)

的學習成效上卻較差。

10

三、引導式程式設計教學

Perkins、Shwartz 及 Simmons(1991) 發現學生常因為無法構思出問題解決 的方法而陷入困境。建議在問題解決的過程中適當給予學生提示。Delcolos (1985)

建議以「老師提問,學生回答」的方式讓學生透過回答老師問題的過程增加理解 件、類別、繼承及抽象化(Rentsch, 1982)。Booch、Rumbaugh 及 Jacobson(1999)

統整各種物件導向方法,建立了目前所熟知的物件導向分析與設計方法。建議透 過一個明確的方法來分析與設計程式,可以使每個階段的目標更明確,進而減低 程式的龐雜度並且降低撰寫時的難度。

Larman(2002)在『Applying UML And Patterns』一書中提及物件導向程式 分析與設計的最大特色及在於「將資料和處理程序一起思考」。Brown(2001)建 議物件導向程式分析與設計的主要流程為:

1. 需求分析:使用個案圖、活動圖等工具,重點在詳細的描述需求。

2. 釐清出需要的物件:建構出一個物件架構,能夠滿足以定義出的需求。

11

12

習單中,以物件導向分析與設計的流程引導學生觀察、分析、設計及實作程 式,並將這些流程設計為引導式學習單,將流程內容轉換為紙筆選擇題及問 答題,透過填寫題目作為提示,避免學生陷入無法構思問題解決方法的困境,

並增加學生學習上的遷移效果。

13

第三章 研究方法

本研究採用準實驗研究法,分為實驗組和對照組,於每個專案教學結束後實 施測驗,並對測驗分數進行統計分析。課程結束後針對實驗組學生實施問卷調查,

以了解學生的學習單使用心得。

第一節 研究變項

一、 自變項

本研究之自變項為「使用引導式學習單」。研究者事先針對課堂練習的每一 個專案設計引導式學習單,於課堂上發給實驗組學生使用。學生進行專案實作練 習時,需依規定填答學習單上的問題,並於作業完成時繳交;對照組學生則由授 課老師以口頭、板書及螢幕示範方式進行教學,詳述專案中所需使用之指令及解 題步驟。相較於實驗組,對照組在教學過程中觀看螢幕示範教學的次數較多,教 師會在螢幕上反覆解釋指令的功能及使用方法,而實驗組學生則將這些時間用於 回答學習單上的問題,藉由學習單的引導理解指令的功能及使用方法。

二、 依變項

(一)七次紙筆測驗成績(用以測驗學生的觀察與分析能力)。

(二)七次實作測驗成績(用以測驗學生之設計與實作能力)。

三、 控制變項

(一)授課時間:兩組的授課時間相同。

(二)授課教材:兩組學生均使用研究者自編之 Scratch 程式設計教材。

(三)學生背景:兩組學生為同一所小學的六年級學生。

(四)教學場域:兩組學生使用同一間電腦教室上課,軟硬體設備皆相同。

14

15

16

17

觀察測驗 題目專案

填寫紙筆

測驗卷 實作專案

圖 3.3.1 教學流程圖

三、測驗實施流程

兩組學生所使用之測驗題目及測驗流程均相同。測驗分為紙筆測驗及程式實 作兩大部分。紙筆測驗主要目的為觀察學生之程式觀察及分析能力。在紙筆測驗 實施前,研究者使用 Chrip-Compiler 軟體將考試題目之 Scratch 專案轉換為執行檔,

經過 Chrip-Compiler 轉換後的 Scratch 專案執行檔將只能呈現專案的執行結 果,學生無法看到專案內部的程式組合方式。學生必須觀察分析專案執行結果,

以填答紙筆測驗題目,接著再寫出完整的程式碼(實作測驗)。

圖 3.3.2 測驗流程圖

18

19

20

表 3.4.3 變數類指令欄

變數類指令 專案 1 專案 2 專案 3 專案 4 專案 5 專案 6 專案 7

○ ○

○ ○

表 3.4.4 偵測類指令欄

偵測類指令 專案 1 專案 2 專案 3 專案 4 專案 5 專案 6 專案 7

○ ○ ○ ○ ○

○ ○

○ ○

表 3.4.5 動作類指令

動作類指令 專案 1 專案 2 專案 3 專案 4 專案 5 專案 6 專案 7

○ ○ ○ ○

○ ○ ○ ○

○ ○ ○

○ ○ ○ ○

21

22

23

表 3.4.10 「小小指揮家」專案內容

遊戲開始時,所有樂手皆停止演奏。

當指揮家面向小提琴手時,小提琴手 會開始演奏,其他樂手則保持安靜。

當指揮家面向鋼琴手時,鋼琴手會開 始演奏,其他樂手則保持安靜。

當指揮家面向小號手時,小號手會開 始演奏,其他樂手則保持安靜。

表 3.4.11 則詳列學生於撰寫「小小指揮家」程式時所需使用之 Scratch 指令 及組合方式。

24

表 3.4.11 「小小指揮家」專案程式

指揮家所使用之指令

小提琴手所使用之指令

鋼琴手所使用之指令

小號手所使用之指令

二、 引導式學習單

引導式學習單之設計以物件導向分析與設計流程為基礎,規劃為四個主要階 段。在此以「小小指揮家」專案所使用之學習單為例做說明,其他學習單的詳細 內容請參閱附錄一至附錄七。

1. 觀察階段:觀察專案中的角色並回答問題

此階段的目標在於要求學生觀察專案中包含了那些角色,並瞭解專案完成後的 執行結果,如表 3.4.12 所示。

25

26

27

表 3.4.14 「小小指揮家」學習單之設計階段 小小指揮家 設計階段

28

29

(4)

5. 請問哪一個指令可使小提琴手接收到「停止演奏」的通知呢?

(1) (2) (3)

(4)

6. 請問哪一個指令可讓小提琴手切換到停止演奏時的造型呢?

(1) (2) (3) (4) 7. 接收到停止通知之後,該用哪個指令來停止音樂?

(1) (2) (3) (4)

8. 現在你完成了小提琴手的指令,請試著操作指揮家來指揮小提琴手。

接下來請你:

(1) 想想看鋼琴手的指令該怎麼寫呢?跟小提琴手有什麼不一樣?請你將 程式碼寫出來。

想想看小號手的指令該怎麼寫呢?跟小提琴手以及鋼琴手有什麼不一樣?

請你將程式碼寫出來。

三、課後延伸練習

學生完成課堂專案後,教學者給予學生簡單的實作練習題,目的是使學生更 熟悉課堂中所講授的主題概念及應用方式,並且培養學生的近遷移(near transfer)

能力。表 3.4.16 以小小指揮家之課後練習題為例說明之。

30

表 3.4.16 小小指揮家之課後練習作業

小小指揮家 課後練習題 班級: 姓名: 座號:

1. 請寫出「當按下方向鍵下時, 指揮家會朝向正面, 並且每個樂器都會停 止演奏」的程式碼。

2. 接下來請修改剛才寫的程式碼, 使程式變成「當按下空白鍵時, 指揮家 會朝向背面,並且每個樂手都會開始演奏」。

四、學習成就測驗

本研究在每個專案結束後實施學習成就測驗,總共實施 7 次,各次測驗之重 點分別為:敘述式與迴圈、判斷式、亂數、變數、輸入控制、廣播 1、及廣播 2。

(由於廣播指令對於學生而言較為複雜難懂,因此分配較多的教學時間,並施予 兩次考試。)

各次測驗均分為兩部分:第一部分為紙筆測驗,主要測驗學生的觀察與分析 能力;第二部分為上機實作測驗,主要測驗學生的設計與實作能力。表 3.4.17 以

「小小指揮家」專案所搭配之成就測驗「貓咪問問題 2」為例說明試題內容。在 此範例中,學生必須設定貓咪能夠提問「你上次數學考幾分?」,並且讓使用者 輸入分數;接著貓咪會判斷使用者輸入之分數,並使用廣播指令通知大頭做出相 對應的表情,而大頭則需使用廣播指令接收貓咪所傳送的通知,並切換到對應的

「小小指揮家」專案所搭配之成就測驗「貓咪問問題 2」為例說明試題內容。在 此範例中,學生必須設定貓咪能夠提問「你上次數學考幾分?」,並且讓使用者 輸入分數;接著貓咪會判斷使用者輸入之分數,並使用廣播指令通知大頭做出相 對應的表情,而大頭則需使用廣播指令接收貓咪所傳送的通知,並切換到對應的

相關文件