• 沒有找到結果。

學生答題情形與困難點分析

第四章 結果與討論

第一節 學生答題情形與困難點分析

本節說明研究者將螢幕錄影與對話錄音,在排除檔案損壞及錄音不清的資料 並轉換為逐字稿後,共取得男生 7 人、女生 6 人,合計 13 份資料中統整分析而 得之各題答題情形,包含學生答題過程中所遭遇的困難,以及訪談者如何提供協 助使學生能順利完成解題。

第一題:物件、內建方法及時序控制結構

本題主要目標為測試學生使用 Alice 程式語言的基本能力,需要學生正確地 宣告物件,並透過使用物件內建的方法(method)和屬性(property)來操作該物 件,以及透過不同的時序控制結構來控制物件進行動作的順序。本題程式碼範例 如圖 4.1,此程式讓一個物件(如程式範例中的 rabbit)依序執行說話、改變顏色 及跳躍的動作,其中變色與跳躍動作須同時進行。

在本次實驗中,13 名學生在第一題中所發生的錯誤類型如表 4.1 所示。

1. 新增動作物件

所有學生在新增動作所需的物件時,皆可順利完成「按下 Add Object 按鈕」、

「選擇並新增物件」這一連串新增動作物件的操作。

27

28

2. 控制物件動作

在使用物件方法(method)及屬性(property)來控制物件進行動作時,所有 學生皆能理解並正確使用內建方法 say 來實作說話動作。但在實作物件跳躍動作 時,有 2 名學生無法立刻反應需使用兩個移動方法(move)來組合出跳躍動作。

其中 1 名學生無法確定自己的動作是否正確,向訪談者反問進行確認:

S01_Q01

S:(完成新增物件 bunny)

S:老師,是 move 嗎?

T:你先看第一個動作是什麼?

S :(開啟 Q1 題目影片)

S:要說話。

S:(將 bunny say 拖曳至主程式區,並設定說話內容為 jump1)

S:跳是這個吧?(指 bunny move)

T:對啊。

另外 1 名學生則需訪談者更進一步,提示跳躍動作是由 move up 及 move down 兩個動作構成:

S02_Q01

T:他的第一個動作是什麼,你要不要再看影片確認一下?

S:(開啟 Q1 題目影片)

S:(將物件區 rabbit 拖曳至主程式區,並在選單選擇 say 後設定說話內容為 jump1)

S:(將左上方 rabbit 拖曳至主程式區,並在選單選擇 move 後,在 move 設定選單上猶疑)

S:跳的話是這個嗎?

T:跳的動作是不是先上再下?

S:(選取 up 0.5 meter,完成 rabbit move 設定)

T:那個高度你自己設。

S:(複製 rabbit move up 0.5 meter 並修改為 rabbit move down 0.5 meter)

約半數的學生(7 名)不知道改變物件顏色的做法為從物件屬性區(properties)

中拖曳顏色屬性至程式中,或是直接將物件拖曳至程式後,於選單中選擇 set color to 選項便可進行改變顏色設定。其中有 2 名學生在訪談者提示需尋找物件顏色之 後,可以找到並進行顏色設定,例如:

29 S11_Q01

S:老師,變色怎麼做?

T:你覺得顏色會是什麼東西?會是動作嗎?

S:他應該是一個 function。

T:顏色的英文是什麼?

S:Color。

T:那就去找 color 。你現在選的是 head,你要選整支兔子。

S:(點選左上方物件區 rabbit)

T:這是動作,methods 都是動作 S:(點選 properties 標籤)

S:(將 color 拖曳進主程式區,並設定為 bunny set color to red)

另外 5 名學生在訪談者明確告知物件顏色位於屬性區後,方能找到並拖曳顏 色屬性至程式中進行設定,例如:

S12_Q01

T:兔子有顏色,它會放在哪裡?

S:(右鍵點擊物件區 bunny,瀏覽選單)

S:兔子的顏色應該在…

S:(右鍵點擊主畫面中 bunny2,瀏覽選單後,點擊 bunny2 upper body 選擇兔子的上半身)

T:像身高是兔子的一部分,顏色也是兔子的一部分,所以它會放在哪裡?

S:他會放在哪裡…

T:如果先不要管變色的話,你覺得兔子的身高、位置、顏色,會放在哪裡?

S:儲存檔案裡。

T:就是這邊(指 properties),這邊有兔子的顏色

S:(將 color 拖曳進主程式區,並設定為 bunny2 upper body set color to red)

3. 動作時序控制

在本題中,需要使用同時控制結構 do together 及循序控制結構 do in order 來 控制物件動作的發生順序,以下先分別討論學生取用此兩種控制結構所遭遇的困 難,再討論學生在組合兩者完成題目時所遭遇的困難。

有 2 名學生在操作過程中,未注意到有特定動作需要同時執行,但在訪談者 提示後,便可正確取用同時控制結構 do together,例如:

30 S12_Q01

T:你覺得這樣跟影片一樣嗎?

S:讓我比對一下。

S:(開啟 Q1 題目影片)

T:你覺得一樣嗎?

S:嗯。

T:你做的是兔子跳到半空中之後,再變顏色。

S:喔,他是邊跳邊變。

S:(將 Do together 拖曳進主程式中,並將兔子跳上及變色的程式碼拖曳至 Do together 中)

在使用同時控制結構 do together 時,有部分學生(8 名)會將跳躍(move up 及 move down)及改變顏色(set color)的程式碼全部放置於同一個 do together 結構中,以致因為向上移動及向下移動兩個動作彼此抵銷,使得物件無法產生跳 躍動作,僅改變顏色(如圖 4.2 所示)。也有學生僅將向上移動及改變顏色程式碼 放置於同一個 do together 結構中,使得物件顏色改變,卻未與整個跳躍動作同時 執行結束(如圖 4.3 所示)。這些學生會發生這樣的錯誤,乃是因為未取用循序控 制結構 do in order 來協助控制物件處理順序。

圖 4.2 程式碼範例-時序控制錯誤情形 1

圖 4.3 程式碼範例-時序控制錯誤情形 2

31

其中有 1 名學生在比對執行結果及題目影片後向訪談者反問確認是否需要取 用控制結構 do in order:

S04_Q01

T:它是整隻變紅以後才跳下來嗎?你再看一下影片。

S:(開啟 Q1 影片)

S:是要用這個(指 do in order)嗎?

S:(將 do in order 移入 do together 中)

另有 1 名學生由訪談者提示應取用控制結構中的其中一個後,猜測應選用 do in order,訪談者於學生取用後向學生講解 do in order 的用途:

S11_Q01

S:(按下 PLAY 進行測試,發現 bunny 跳上同時變色完再跳下)

S:(打開 Q1 題目影片)

T:在下面這些控制結構裡面…有沒有哪些你學過的控制結構你現在還沒用到的?

S:(將 do in order 拖曳至主程式區)

T:好,這是什麼?

S:Do in order。

T:Do in order 是什麼?

S:不太記得,他應該跟這個(指 do together)差不多吧?

T:Together 是…

S:一起。

T:In order 就是依序。

S:依序。

其餘 6 名學生則需要訪談者直接告知需使用 do in order 控制結構來處理依序 執行的動作,例如:

S09_Q01

T:你想想看,跳上跟跳下要依序發生還是同時發生?

S:依序。

T:依序,對。那下面有哪一個控制結構是依序的?

S:(尋找結構控制列約 30 秒)

T:就是 do in order。

S:那不是「另外做」嗎?

32

即便在順利取用兩種時序控制結構後,仍有 9 名學生因無法順利將其組合,

而無法完成目標動作,這些學生皆由訪談者詳細講解物件動作,並告知兩種時序 控制結構的組合方式後方能解題,例如:

S06_Q01

T:你想想看這邊變顏色這個動作應該跟誰同步?

T:你這樣這(do in order)裡頭三個(rabbit move up、rabbit set color、rabbit move down)

還是循序不是嗎?

S:(將 do in order 移出 do together 後刪除 do together)

S:(將 do together 拖曳至 do in order 中)

T:你是 do together 裡頭應該要有 do in order,do together 裡頭先一個變顏色的動作…

S:(將 do together 移出 do in order)

S12_Q01

T:還差一點點,你仔細觀察一下他變色的情況。

33

S:(點擊 cat set color 的 more 選單,將 duration 設成 0.5 sec)

S:(按下 PLAY 進行測試,發現貓還沒跳到最頂就變完顏色)

S:(將 setcat set color 的 duration 調整為 0.25 sec)

S:(按下 PLAY 進行測試,發現貓還沒跳到最頂就變完顏色)

S:(將 setcat set color 的 duration 調整為 2 sec)

S:(按下 PLAY 進行測試,發現貓變顏色過程與整個跳躍動作同步)

第二題:內建函式

本題需要學生在宣告兩個身高互異的物件後,使用物件內建方法 resize 來改 變其中較矮的物件大小,使其放大至與較高物件同樣高度。學生必須了解方法 resize 的功能,並且取用物件內建的函式 height(身高)用於倍率計算,進行正確 的縮放倍率設定,方可完成本題。本題程式碼範例如圖 4.4,此程式讓一較矮物 件(如程式範例中的 plato)透過方法 resize 來改變大小為和較高物件(如程式範 例中的 aliceLiddell)同樣高度,同時在放大過程中說話。

本題共有 13 名學生作答,學生答題所遭遇到的困難及訪談者給予的協助統 整於表 4.2 中。

圖 4.4 程式碼範例-內建函式

1. 取用物件方法 resize

參與實驗的學生中,有 6 名學生不知道必需取用方法 resize 來改變物件大小。

其中 2 名學生在訪談者詢問改變大小是什麼動作以後,即可自行找到並選用方法 resize,例如:

S07_Q02

T:你現在要做的動作是什麼?

S:讓它變得跟它一樣大。

34

S05_Q02

S:(將 dancer stand up 拖曳至主程式區,並點選 more 檢視選項,但未做任何設定)

S:(按下 PLAY 進行測試,發現無任何改變)

S:這一行(dancer stand up)是什麼啊?

T:就是站起來阿,所以你知道有什麼指令可以用來做改變大小的嗎?

resize 使目標 物件縮放

35 S:不知道。

T:OK,那這邊往上拉,有個 resize。這個可以用來改變大小,它的功能是把東西變成…

S:(將 dancer resize 拖曳至主程式,但未設定縮放倍率)

S09_Q02

S:(將joey’s resize 拖曳至主程式區,將縮放倍率設為 2)

S07_Q02

S:(按下 PLAY 進行測試,發現 Euripides 放大至比 Alice 大)

S:(取消用來解釋的 Euripides resize)

T:你現在是要把他放大,用 Alice 的身高當作倍數,放大那麼多倍。但是它是要放這麼多

36 倍嗎?

S:不是。

T:那它應該要放多少倍?

3. 縮放倍率之計算

13 名學生中,在知道方法 resize 後方數字為縮放倍率後,有 11 名仍因無法 正確計算兩物件身高比例而使執行結果發生錯誤。其中 2 名學生於訪談者提問比 例如何計算後即可拖曳正確比例計算式,例如:

S01_Q02

T:你現在要做什麼動作?

S:跟它(Alice)一樣高。

T:跟它一樣高,那這個比例要怎麼算?

S:(點擊 resize 後方清單,將 Mana resize 設定為 Mana resize aliceLiddell’s height / 0.5)

T:要除以誰?

S:它(指 Mana)。

有 7 名學生則在訪談者舉例說明比例關係後,能順利進行計算,例如:

S04_Q02

T:你是不是要計算它比它大幾倍?

S:嗯。

T:那要怎麼算?

S:不知道。

T:好,那我問你 5 是 3 的幾倍大?

S:5/3 倍。

T:是 5 去…

S:除以 3。

T:除以 3 嘛,所以現在是要變成 Alice 的身高是…

S:它(Alice)去除以它(Plato)。

其餘 2 名學生由訪談者直接告知比例計算方式:

S06_Q02

T:你先想想看這個縮放的比例要怎麼算?

S:(在 pj resize howMuch = object only 的 more 清單中尋找)

37

S:(修改 pj resize howMuch = object only 為 pj resize howMuch = object and parts)

T:其實就是 Alice 的身高除以小孩的身高啊!

4. 物件身高函式的取用

4. 物件身高函式的取用

相關文件