第四章 研究結果
第三節 程式設計教學活動類型
本研究從篩選所得之文獻中,選出較具代表性之教學活動,並依活動之特性 分成七大類,分別為:(一)教學範例或作業結合特定主題之教學活動、(二)提 供學生彈性選擇不同範例或作業之教學活動、(三)以培養學生問題解決能力為 重點之教學活動、(四)合作學習、(五)強調教學者對學生提供回饋之教學活動、
(六)以視覺化工具輔助之教學活動、及(七)其他不屬於上述六類之教學活動。
35
圖 4-1 為教學活動分類圖。此圖之第二層為七種類型之教學活動,第三層的 長橢圓框中則為歸屬各類教學活動之案例說明,每一案例後面括號中之數字表示 實施該教學活動之文獻篇數,例如圖中右上方「與學科知識結合(9)」,代表著 教學範例和作業與學科知識結合的教學活動共出現在 9 篇文獻中。由於某些文獻 所報導之研究中可能使用了多種教學活動,因此圖中之文獻數量加總後超過 79 篇。
一、教學範例或作業結合特定主題之教學活動
本類教學活動著重於將教學範例、作業、或專題與學習者生活相關的主題相 結合。研究者採用此教學法大致基於三種理由:(1) 試圖改正傳統課程使用之範 例及練習過於呆板之缺失;(2) 希望藉由活化範例和作業的主題,提升女學生對 於學習程式設計的興趣;(3) 認為將範例、作業與真實世界的問題結合,能有效 增進學生解決問題的能力。
本類教學活動所結合之主題包含學科知識內容、多媒體運算、遊戲設計、機 器人或電路工具、及動畫製作等五項。表 4-9 為教學範例或作業結合特定主題之 文獻一覽表。
表 4-9 教學範例或作業結合特定主題之文獻一覽表
結合之主題 文獻編號
結合學科知識內容 8、22、33、34、36、58、62、66、71 多媒體運算 18、23、30、32、46、66
遊戲設計 40、42、43、48、59、68、69、70、75 機器人 7、38、72、73、74
動畫製作 52、67、74
36
37
以下舉例說明表 4-9 中之各項教學活動:
(1) 結合學科知識內容:
課堂的範例、作業內容與學生在學校學習的知識做連結,結合的知識包含數 學、物理、化學、或電腦科學之概念。以下為其中三個教學案例:
教學案例 1(文獻編號 8):學生於 CS0 及 CS1 課程中以 Javascript 及 HTML 模擬囚徒困境(prisoner's dilemma,博弈理論)的概念,結果選修該課程之學 生人數顯著增加,且學生普遍認為此練習使他們體認學習 Javascript 與他們的 日常生活有所關聯。
教學案例 2(文獻編號 33):教學者要求學生以 Java 製作加密程式(encryption), 並設計具有人工智慧之人機互動介面。學生對此主題感到高度的興趣。
教學案例 3(文獻編號 66):教學者要求學生使用 Python 模擬物理現象或做 出不同波長的聲音,例如編寫 VPython 程式以模擬氣體分子速度與溫度的關 係,或使用 MatPlotLib 將聲音的波長視覺化等等。
教學結果彙整:
使用「結合學科知識」教學活動的 9 篇文獻中,有 8 篇文獻指出學生對「結合學 科知識」的教學活動抱持正面的態度,無論電腦科學本系或外系學生普遍對於結 合學科主題內容之教學活動感到高度興趣,認為此種作法使他們因此覺得學習程 式設計與他們的學習和生活經驗有所連結;上述 8 篇文獻中有 1 篇文獻根據測驗 成績指出「結合學科知識內容」有助提升學生學習成就。另有有 1 篇文獻僅將其 用於輔助其他教學法,並未指出其對學生的影響。
(2) 多媒體運算:
多媒體運算的重點在於將程式範例或作業結合聲音與圖片的處理。以下為兩 個結合多媒體運算的教學案例:
教學案例 1(文獻編號 23):教學者讓學生使用 Python 的程式開發環境 Jython,
38
製作編輯圖片與聲音之程式,教學者並適時向學生提問,以幫助學生分辨使 用 Python 修改圖片和使用 Photoshop 的差異,藉此讓學生理解學習程式設計 的重要性。
教學案例 2(文獻編號 30):學生使用 C 語言寫出具有灰階(greyscale)、色 彩轉換(color transfer)等圖片處理功能之程式。由於圖形處理涉及陣列及相 關演算法之運用,因此有助於學生理解陣列的功能和用法。根據問卷調查結 果,無論是主修或非主修電腦科學的學生以及女性學生的學習興趣皆因而有 所提升。
教學結果彙整:
使用「多媒體運算」的教學活動的 5 篇文獻皆指出學生對「多媒體運算」抱持正 面態度;其中有兩篇文獻指出「多媒體運算」教學活動吸引較多非主修電腦科學 的學生及女性學生選修電腦科學課程,另有 1 篇文獻指出課程實施多媒體運算教 學活動,學生的及格率較未使用多媒體運算之前提升。
(3) 遊戲設計:
教學活動結合遊戲設計的方式有兩種,其一為將製作遊戲作為範例或作業的 主題,另一種則是讓學生透過玩電腦遊戲以學習程式設計的概念。以下為四個結 合遊戲設計內容的教學案例,其中案例 1 和案例 2 皆要求學生以程式製作遊戲,
案例 3 則是讓學生透過玩遊戲學習程式設計概念。
教學案例 1(文獻編號 43):教學者讓高中生製作俄羅斯方塊的遊戲,並且將 遊戲提供給親朋好友下載至他們的手機一起玩遊戲。教學者提供程式碼的樣 板供學生修改或擴充遊戲功能。研究者發現男生較專注於修改程式的功能面,
而女生則較喜歡變化方塊的樣式與顏色。
教學案例 2(文獻編號 59):讓小學生利用 Scratch 設計自己的遊戲,屬於開 放式作業的概念。學生製作的遊戲最少需具備教學者指定的功能,但遊戲的 角色可以有不同的聲音、動畫、或外觀。
39
教學案例 3(文獻編號 70):教學者先講授迴圈及條件判斷的概念,接著讓學 生玩電腦遊戲 Wu’s Castle,藉由玩遊戲讓學生練習條件判斷式及迴圈的概 念。
教學結果彙整:
本類別教學活動可分為 7 篇「遊戲設計」教學活動及 1 篇「遊戲式學習」文獻。
7 篇「遊戲設計」教學活動皆由問卷調查結果指出大多數學生皆喜歡教師將遊戲 設計融入程式設計課程中,即使不常玩遊戲的學生也喜歡遊戲設計的範例與作業,
而女學生學習程式設計的興趣也因此提升,並增進學生未來選讀電腦科學的意願;
但上述 7 篇文獻僅一篇指出「遊戲設計」活動使學生的學習成效顯著優於傳統教 學,且學生在課後練習程式設計的時間也明顯增加。而遊戲式教學之文獻則由問 卷調查及測驗成績指出學生有較佳的學習成就及學習態度。
(4) 機器人:
本類教學活動使用機器人或電路工具作為教學媒介,以下為兩個結合機器人 於範例或作業中的案例,以及一個以電路工具為學習媒介的案例。
教學案例 1(文獻編號 7):學生以 LEGO Mindstorms 設計操控機器人的程式 碼,並將程式碼傳輸至機器人,然後根據機器人做出的動作結果來調整程式 碼。該研究發現,學生可能因為首次設計機器人程式,不甚了解機器人的感 應器之靈敏度,使其在撰寫程式的過程中不甚順利,因此浪費了課堂上的練 習時間。
教學案例 2(文獻編號 72):此教學活動中,每位學生均有自己專屬的機器人 Parallax Scribbler。學生學習機器人的基本指令及程式設計概念之後,即開始 為自己的機器人設計舞步,學生可利用機器人身上的 LED 和發聲器變化舞步 呈現的形式。學生同時必須和其他同學合作,以完成彼此的機器人互動的影 片。本研究發現使用機器人做為學習工具的學生,其學習成果優於未使用機 器人的學生。
40
教學案例 3(文獻編號 73):學生必須先學習基礎的 IC 設計及電路學概念,
並且在分組後使用 C 語言的程式開發環境 Bricklayer 編寫程式,使內建電路 的 LED 衣服(TeeBoard)能夠顯示學生想要呈現的文字。
教學結果彙整:
使用「機器人」教學活動的 5 篇文獻均指出結合機器人或電路工具的教學活動受 到學生的歡迎,但僅有 1 篇文獻(文獻編號 72)指出使用機器人做為學習工具的 學生,其學習成果優於未使用機器人的學生。
(5) 動畫製作:
本類研究皆使用 Alice,並讓學生編寫劇本,然後以 Alice 製作動畫影片。實 施此類課程之教育階段皆為高中以下。以下為一個製作動畫的教學案例說明。
教學案例(文獻編號 52):學生學習製作 Alice 程式的基本概念之後,教師提 供學生修改程式碼的練習題,例如要求學生讓程式中的角色能做出特定的動 作,最後教師講解製作動畫的方法,先要求學生編寫故事情節,然後決定故 事中需要幾個場景、幾個角色,以及一個場景需要多少分鏡等等,藉此讓學 生了解由上而下的設計概念。
教學結果彙整:
使用「動畫製作」教學活動的 3 篇文獻皆根據問卷調查結果指出以 Alice 作為說 故事工具的教學活動能提升學生學習程式設計的意願,並增進學生對學習電腦科 學的自信,尤其對女學生的效果更為顯著。
二、提供學生彈性選擇不同範例或作業之教學活動
本類教學活動提供學生彈性選擇不同練習題的機會,其目的包括:(1) 讓學 生自由發揮創意,以提升學習動機;(2) 學生可挑選適合自己學習程度的作業,
以降低挫折感;(3) 藉以培養問題解決能力;(4) 為學生減輕完成大型專案的負擔。
本類活動可分為開放式作業、建構式作業、及修改程式碼。表 4-10 為與本類教學
41
活動有關之文獻一覽表。
表 4-10 提供學生彈性選擇不同範例或作業之文獻一覽表 作業呈現方式 文獻編號
開放式作業 4、23、30、46、50、59、72
建構式作業 17
修改程式碼 8、10、42、43、52
(1) 開放式作業(Open-Ended Assignments):
開放式作業讓學生在完成教師指定的基本功能之外,可自由增添其他功能,
開放式作業讓學生在完成教師指定的基本功能之外,可自由增添其他功能,