• 沒有找到結果。

LEGO NXT機器人3D模擬軟體於程式設計教學之行動研究

N/A
N/A
Protected

Academic year: 2021

Share "LEGO NXT機器人3D模擬軟體於程式設計教學之行動研究"

Copied!
108
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學資訊教育研究所 碩士論文. 指導教授:吳正己博士. LEGO NXT 機器人 3D 模擬軟體於程式設計教學之 行動研究. 研究生:彭孟凱 撰 中華民國一○二年七月.

(2) 摘. 要. 本研究使用 LEGO NXT 機器人 3D 模擬軟體進行程式設計教學,希望能改善 學生學習情形,了解機器人模擬軟體的教學實施問題,並促進研究者本身教學專 業的成長。本研究以行動研究法進行,研究對象為某高中一年級正修習資訊科技 概論的 2 個班級共 84 名學生,研究者使用機器人模擬軟體,設計數個問題情境與 模擬環境,讓學生透過程式設計進行電腦解題實作,實驗時間共 5 週 10 個小時。 資料蒐集與分析包括:實作心得紀錄、課程問卷、成就測驗、學生訪談與教學日 誌。 研究結果發現:LEGO NXT 機器人 3D 模擬軟體是可行的程式設計學習工具, 並且可以提升學生程式設計學習興趣;在應用 LEGO NXT 機器人 3D 模擬軟體進 行程式設計教學時,須兼顧基礎概念與解題能力的學習訓練,給予學生充分的實 作時間進行練習與探索,並且透過實作心得紀錄,幫助老師了解學生學習歷程。 此外,在課程實施之前,必須先考量執行模擬軟體所需的電腦軟硬體與時間,可 依教學需求增加多元的教學範例,或是依課程需要調整教學內容順序,以提升學 生的學習情形。. 關鍵詞:LEGO Mindstorms、模擬軟體、程式設計、行動研究. i.

(3) Abstract An Action Research of Using LEGO NXT 3D Simulator to Teach Programming Meng-Kai Peng The purpose of the study is to improve the learning of students, investigate the implementation issues, and enhance the teaching professional of the researcher by using a 3D simulator of LEGO Mindstorms NXT module in teaching programming. We adopted an action research method. The researcher, who is a high school computer teacher, and two classes of high school students, a total of 84 students, participated in this study. The researcher designed several robot programming problems for students to solve by using the 3D simulator, which developed in a previous study and refined in this study. The experiment lasted for five weeks, with 2 hours per week, totaling 10 hours. The data collected and analyzed included: program implementation record of students, attitude questionnaire, achievement test, interview of students, and teaching journals of the teacher. The findings of this study were: The LEGO NXT 3D simulator is a feasible tool for learning programming, and it is good for promoting student interests. When using the simulator, it is necessary to balance teaching between the basic concepts and the ability of problem-solving, and to provide students enough time to work on the programming problems. Through the implementation records, the teacher was able to uncover students' learning process. Furthermore, the teacher should consider the hardware environment and time of executing the simulator, prepare more programming examples, and adjust the instruction procedures in accordance with the need of students.. Keywords:LEGO Mindstorms、Simulator、Programming、Action research ii.

(4) 目. 錄. 附表目錄 ......................................................................................................................... iv 附圖目錄 .......................................................................................................................... v 第一章 緒論 .................................................................................................................. 1 第一節 研究背景 ................................................................................................... 1 第二節 研究目的 ................................................................................................... 3 第三節 研究範圍 ................................................................................................... 3 第四節 名詞釋義 ................................................................................................... 3 第二章 文獻探討 .......................................................................................................... 4 第一節 程式設計教學 ........................................................................................... 4 第二節 機器人與程式設計教學 ........................................................................... 8 第三節 LEGO 機器人程式設計教學實施 ......................................................... 13 第三章 研究方法 ........................................................................................................ 16 第一節 研究設計 ................................................................................................. 16 第二節 研究參與者 ............................................................................................. 18 第三節 教學規劃 ................................................................................................. 19 第四節 研究工具 ................................................................................................. 22 第五節 LEGO NXT 機器人 3D 模擬軟體 ......................................................... 25 第六節 資料蒐集與分析 ..................................................................................... 36 第四章 結果與討論 .................................................................................................... 37 第一節 教學實施結果 ......................................................................................... 37 第二節 成就測驗結果分析 ................................................................................. 54 第三節 課程問卷與訪談結果分析 ..................................................................... 62 第五章 結論與建議 .................................................................................................... 68 第一節 結論 ......................................................................................................... 68 第二節 建議 ......................................................................................................... 70 參考資料 ........................................................................................................................ 72 附錄一 教學講義 ........................................................................................................ 78 附錄二 附錄三 附錄四 附錄五 附錄六. 實作心得紀錄表 ............................................................................................ 94 成就測驗 ........................................................................................................ 95 課程問卷 ...................................................................................................... 100 學生訪談問題 .............................................................................................. 101 教學日誌紀錄表 .......................................................................................... 102. iii.

(5) 附表目錄 表 3.1. 教學單元內容一覽表 ...................................................................................... 21. 表 4.1. 直線折返車實作結果統計 .............................................................................. 38. 表 4.2. 自走巡邏車實作結果統計 .............................................................................. 40. 表 4.3. 單光源軌道車-初賽實作結果統計 ................................................................. 43. 表 4.4. 單光源軌道車-複賽實作結果統計 ................................................................. 45. 表 4.5. 瘋狂碰碰車實作結果統計 .............................................................................. 47. 表 4.6. 混合挑戰賽實作結果統計 .............................................................................. 50. 表 4.7. 各單元教學歷程與教學調整重點一覽表 ...................................................... 53. 表 4.8. 成就測驗答題統計 .......................................................................................... 54. 表 4.9. 試題三:錯誤類型分析 .................................................................................. 54. 表 4.10. 試題四:錯誤類型分析 ................................................................................ 56. 表 4.11. 試題五:錯誤類型分析 ................................................................................ 56. 表 4.12. 試題六:更正錯誤的類型分析 .................................................................... 58. 表 4.13. 試題五:解題方法統計 ................................................................................ 59. 表 4.14. 試題六:程式除錯答題統計 ........................................................................ 61. 表 4.15. 對軟體操作環境的看法 ................................................................................ 62. 表 4.16. 對教學活動實施的看法 ................................................................................ 63. 表 4.17. 程式設計學習情形:程式指令 .................................................................... 64. 表 4.18. 程式設計學習情形:程式設計解題 ............................................................ 65. 表 4.19. 程式設計學習情形:程式除錯 .................................................................... 66. 表 4.20. 程式設計學習態度 ........................................................................................ 67. iv.

(6) 附圖目錄 圖 2.1. Jago 模擬軟體畫面 .......................................................................................... 10. 圖 2.2. 中文化 LMS 模擬軟體 .................................................................................... 11. 圖 2.3. LEGO NXT 機器人 3D 模擬軟體 .................................................................. 11. 圖 2.4. go4IT!-simulator 模擬軟體 .............................................................................. 12. 圖 3.1. 研究架構圖 ...................................................................................................... 17. 圖 3.2. 單元教學實施流程 .......................................................................................... 20. 圖 3.3. LEGO NXT 機器人 3D 模擬軟體系統架構 .................................................. 26. 圖 3.4. 橢圓形軌道地圖設計 ...................................................................................... 28. 圖 3.5. 變形軌道地圖設計 .......................................................................................... 29. 圖 3.6. 迷宮地圖設計 .................................................................................................. 30. 圖 3.7. 圍牆地圖設計 .................................................................................................. 30. 圖 3.8. 變形軌道與障礙物地圖設計 .......................................................................... 31. 圖 3.9. 橢圓形軌道與障礙物地圖設計 ...................................................................... 31. 圖 3.10. 橢圓形軌道 3D 地圖環境 ............................................................................. 32. 圖 3.11. 變形軌道 3D 地圖環境 ................................................................................. 33. 圖 3.12. 圍牆 3D 地圖環境 ......................................................................................... 33. 圖 3.13. 橢圓形軌道與障礙物 3D 地圖環境 ............................................................. 33. 圖 3.14. 原始版本的模擬軟體操作介面 .................................................................... 34. 圖 3.15. 簡化過的模擬軟體操作介面 ........................................................................ 35. 圖 4.1. 試題三:忽略運算過程中變數的變化 .......................................................... 55. 圖 4.2. 試題三:當作解聯立方程式 .......................................................................... 55. 圖 4.3. 試題四:if…else 指令語法錯誤..................................................................... 56. 圖 4.4. 試題五:if…else 指令語法錯誤..................................................................... 57. 圖 4.5. 試題五:條件式關係運算子語法錯誤 .......................................................... 57. 圖 4.6. 試題五:解題邏輯錯誤 .................................................................................. 57. 圖 4.7. 試題二:程序處理錯誤 .................................................................................. 58. 圖 4.8. 試題五:「循序前進」解題方法 .................................................................. 59. 圖 4.9. 試題五:「循序前進+for 迴圈簡化步驟」解題方法 .................................. 60. 圖 4.10. 試題五:「while 迴圈+碰撞偵測」解題方法 ............................................ 60. v.

(7) 第一章. 緒論. 第一節 研究背景. 電腦與問題解決是資訊科技概論課程綱要的六大單元之一,目的在培養學生 邏輯思維及運用電腦解決問題的能力(教育部,2008) ,課程內容即以程式設計教 學為主,先瞭解電腦與問題解決的關係,接著透過程式設計實作課程,讓學生體 驗問題解決的過程,並從中了解電腦科學的內涵,進而達到設定的目標。在研究 者任教高中資訊科技概論課程的經驗裡,如何改善學生在程式設計教學課程的學 習情形,一直是重要的課題。 程式設計教學的授課時數依課程綱要建議為十小時,因為學生幾乎沒有程式 設計的學習經驗,在過去的教學經驗中發現,部分學生容易陷入學習困難:包含 學習意願不高、對程式抽象概念理解困難,以及對程式設計課程不感興趣,對於 教學者而言,這無疑是個挑戰。為了改善這種情形,研究者在程式設計教學工具 與教學策略的選擇上,曾經做過幾次調整,希望能夠提升學生對程式設計概念的 理解,練習設計程式解決問題,並增加學生的學習興趣。 不同的程式設計教學工具需搭配合適的教學策略,而效果亦各有不同。研究 者在使用C++程式語言的經驗裡,搭配教學設計中用來引導學習的問題和範例, 適合初學者的小型程式,大都與數學計算有關。學生雖然能夠體驗傳統程式設計 知識建構的過程,但是受限於嚴謹的語法要求,以及數學計算的思維,學生往往 以為程式設計就只是計算,缺少了趣味。研究者也曾使用 Scratch 作為程式設計教 學工具,而改以說故事的方式來設計程式,不須撰寫傳統的程式碼,降低撰寫程 式的難度與抽象程度,甚至可以輕易地進行遊戲設計,鼓勵學生發揮創意並增加 學習的趣味。然而程式的功能與用途也受到限制,侷限在程式產生的場景中,數 學計算變得比較複雜,少了撰寫傳統程式碼的訓練過程。 1.

(8) 研究者在使用 LEGO Mindstorms NXT 作為程式設計教學工具的經驗中發現, LEGO Mindstorms NXT 可結合 C++與 Scratch 程式設計教學的優點,其教學範例可 以密切地和生活經驗結合,且可採用與傳統程式語言相同的開發環境,並藉由機 器人的實際運作,直接看到程式執行的結果,增加學生的學習興趣。然而 LEGO Mindstorms NXT 機器人套件價格不菲,學校能夠採購的數量有限,教學活動要以 學生分組的方式進行,在學習評量上就難以個人表現的方式評定成效,再加上授 課班級重複使用的情形下,造成時間衝突、教學運用受到限制,以及機器人套件 的保管維護等困難。 參考相關文獻發現,使用機器人模擬軟體可以保留機器人程式設計的優點, 又可以解決研究者所遭遇的問題。曾義智(2007)與謝亞錚(2009)利用 LEGO Mindstorms 的模擬軟體 LMS 進行實驗,發現模擬軟體對學生的學習成就影響效果 無異於實體機器人;由於減少將程式傳輸至實體機器人的時間,學生因此有更多 時間可以進行思考活動。陳玥汝(2010)為了提升模擬 LEGO 機器人的效果,開 發 LEGO NXT 機器人 3D 模擬軟體,可模擬機器人在真實 3D 環境的行為;程式編 輯器的操作介面與實體機器人類似,並採用傳統撰寫程式碼的方式進行程式設 計。 因此本研究將採用行動研究法,以 LEGO NXT 機器人 3D 模擬軟體作為教學 工具,規劃一系列的單元活動,進行高中程式設計教學。希望藉由模擬軟體的導 入,改善學生的學習情形,並在教學歷程中,透過系統性的探究,將教學過程詳 細記錄,分析學生對教學活動的反應與回饋,探討教學實施的成效並進行教學調 整,而研究者也能從教學過程中得到省思與啟發,促進本身教學專業的成長。. 2.

(9) 第二節 研究目的. 本研究應用 LEGO NXT 機器人 3D 模擬軟體於高中程式設計教學,研究目的 如下: 一、使用 LEGO NXT 機器人 3D 模擬軟體學習程式設計,改善學生學習情形。 二、探討應用 LEGO NXT 機器人 3D 模擬軟體於程式設計課程的相關問題, 包含學生遭遇的困難、使用此工具的優缺點,並提出教學建議。 三、藉由本行動研究,促進研究者的教學成長。. 第三節 研究範圍. 本研究採用 LEGO NXT 機器人 3D 模擬軟體為教學工具,進行程式設計教學。 教學內容包括:循序結構、變數與運算式、選擇結構、重複結構以及機器人套件 中光源、碰撞感應器的運用。. 第四節 名詞釋義. 一、模擬軟體(Simulation、Simulator) 本研究之模擬軟體指軟體中具有一主角,該主角是真實物體的模擬,使用者 藉著撰寫程式來控制該主角,使主角與軟體中的環境產生互動,如同在真實世界 的互動情形。. 3.

(10) 第二章. 文獻探討. 本章首先探討程式設計的重要性與教學上初學者遭遇的困難之處,以及文獻 中如何進行改善教學;其次探討目前 LEGO 機器人模擬軟體的發展與如何應用機 器人模擬軟體進行程式設計教學的實施與建議。. 第一節 程式設計教學. 本節先探討程式設計的重要性,接著說明程式設計初學者遭遇的困難以及程 式設計的教學策略。. 壹、程式設計的重要性 培養學生邏輯思維及運用電腦解決問題之能力,是高中資訊教育課程的重要 目標之一(教育部,2009)。Soloway(1986)認為,程式設計與一般問題解決的 道理是相通的。程式設計在電腦科學領域中佔有重要地位,並且能學習到用在其 他領域的問題解決技巧(Linn, 1985) 。具備程式設計能力的人,不但能善用應用軟 體,並對新科技具有較高的接受度與吸收力(Clancy & Linn, 1993)。程式設計可 以培養細心、負責任的態度,亦可訓練自我批判的能力,及激發創意,並透過彼 此合作、分享,增進溝通技巧(Ellinger, 2003)。亦能夠培養邏輯思考以及問題解 決的能力(Dagdilelis, Satratzemi, & Evangelidis, 2004)。 Reichert、Nievergelt 及 Hartmann(2001)認為,讓學生學習程式設計不是為 了讓他們將來能夠當程式設計師,而是希望他們藉此能培養對軟體的基本認識, 對程式的產生過程(撰寫、測試與除錯)有直覺性的瞭解,進而有能力自行使用 不同軟體。美國電腦科學教師協會(Computer Science Teachers Association, CSTA) 制訂的「改進高中電腦科學教育白皮書」提到,程式設計應著重在分析與設計的 4.

(11) 過程,藉此培養學生具問題解決與演算法式思考的能力(Stephenson, Gal-Ezer, Haberman, & Verno, 2005) 。Mannila、Peltomaki 及 Salakoski(2006)認為這種能力 可作為一般化、全面性的能力,並影響將來的學習。由此可見,以程式設計來加 強學生基礎能力已日漸重要。. 貳、程式設計初學者遭遇的困難 Soloway(1986)認為初學者的主要困難是不知道如何將程式片段組合成完整 的程式。程式設計是階層式、多程序的技能,必須同時兼顧語法、語意,以及問 題解決與設計的學習過程(Jenkins, 2002)。初學者必須同時學習程式語法、結構 及除錯的技巧,這種情形更加重學習者的認知負荷(Brusilovsky, Calabese, Hvorecky, Kouchnirenko, & Miller, 1997) 。在建構問題解決方法與了解程式執行過程的同時, 還要面對複雜的語法指令以及抽象的邏輯結構,使得學習程式設計被認為是一項 困難的工作(Kelleher & Pausch, 2005)。 初學者的問題是不知道如何組織並活用所學到的語法知識與設計概念,不會 規劃自己的解題方式,只會使用片段的程式觀念,與固定的解題策略,只學到表 面知識,而未能將獲得的概念與策略確實理解、融會貫通,建立自身的心智模型 (mental model)(Wiedenbeck & Ramalingam, 1999; Winslow, 1996)。Robins、 Rountree 及 Rountree(2003)歸納文獻指出,初學者缺乏清楚的程式設計心智模 型,程式設計的心智模型主要包括語言特徵與機器行為兩部分。語言特徵包含程 式語言的語法、語意與語言本身相關的概念,而機器行為則是電腦如何執行程式 的概念。清楚地擁有這兩部分的心智模型,才能有良好的程式設計能力。 既然程式設計本身有一定的複雜度,在教學方法的使用上就需更加謹慎,然 而傳統的程式語言(如:C、C++)雖然功能強大,卻並非為教學而設計,除了程 式語言的基本結構,還有一些特殊語法,對初學者而言都過於複雜,使得在撰寫 出程式之前,要先學習很多觀念、語法(Gupta 2004; Mannila et al., 2006) 。加上教 科書的範例與習題和學生的生活經驗並無太大關聯,不能讓學生感受到真實的問 5.

(12) 題情境,無法引起學生的興趣(Lahtinen, Ala-Mutka, & Jarvinen, 2005)。學習者如 果因為基礎欠佳,加上學習方法偏差,導致在學習過程中問題橫生,又不敢向教 師發問或與同學討論,如此惡性循環的結果,會使得學生學習程式設計的興趣越 來越低落(Robins et al., 2003)。以上說明了程式設計初學者所遭遇的困難情形與 原因。. 參、程式設計教學策略 在程式設計教學過程提供概念模型(conceptual model) ,可幫助學習者在解題 時更專注並能進行系統化的思考,有利於培養心智模型(Mayer, 1989)。Ben-Ari (2001)以建構論為出發點,認為幫助學習者建立一個可供運作的程式心智模型, 可避免產生迷思概念。若能幫助學習者將所學的程式概念與解題策略結合,轉化 為自己心中以程式概念為主的虛擬機器,能於心中模擬程式的運作情形,有助於 學習者理解與學習程式設計概念(Robins et al., 2003)。使用模擬軟體在程式設計 教學,可使程式執行過程視覺化,有助學習者修正自身心智模型,提升程式設計 能力(Wolfe, Gossett, Hanlon, & Carver, 2003)。 要改善初學者學習程式設計困難的問題,應該使用合適的教學用程式語言、 運用彈性的教學方法以及避免以評量為目的的教學(Jenkins, 2002)。在程式設計 的教學方法中,採用以問題解決為導向的教學方式,不僅能使學生脫離死記語法 敘述的學習方式,更使學生活用所學到的程式觀念,同時透過練習與解題,可培 養學生知識組織的能力(吳正己、林凱胤,1997; Barg, Fekete, Greening, Hollands, Kay, & Kingston, 2000) 。抽象的程式觀念僅憑平面教學,如黑板、投影片的輔助, 是不足的(邱貴發,1996) 。為了協助初學者克服學習程式設計的困難,以及提升 對程式設計的興趣,有學者開始利用機器人於程式設計的學習(Miglino, Lund, & Cardaci, 1999) 。LEGO 機器人的初學者,可在不具有太多硬體背景知識的條件下, 即能透過觀察與操作,由元件的運行變化,或條件差異產生的回饋中,瞭解基本 的程式運作原理(Barnes, 2002) 。LEGO 機器人無論是程式編輯環境,或是積木零 6.

(13) 組件本身、輸出入裝置等,操作環境十分多元,不但增加學習趣味性,更進一步 激發學生進行多樣嘗試與變化(Klassner & Anderson, 2003; Portz, 2002) 。LEGO 機 器人被廣泛應用在電腦相關的課程中。. 肆、小結 研究指出程式設計的重要性,尤其是能培養學生問題解決的能力。然而學習 程式設計被認為是有一定難度的認知學習歷程,於是電腦教育學者發展出各種的 教學策略與教學工具來輔助程式設計教學,目的就是為了降低初學者所遭遇的困 難,而研究指出 LEGO 機器人程式設計是可行的教學方案之一,能藉由實作過程, 建立學生程式設計概念的心智模型,有助於對程式設計知識的理解,並增加學習 興趣。. 7.

(14) 第二節 機器人與程式設計教學. 本節先探機器人於程式設計教學的優點,接著探討機器人模擬軟體的發展與 教學實施的建議。. 壹、實體機器人程式設計教學 Papert 在 1990 年代與丹麥玩具製造商樂高(LEGO)合作,設計出 LEGO Mindstorms 可程式控制機器人,一般廣為人知的有 RCX 與 NXT。機器人本質上 具有引起學生興趣的特性,因此使用機器人最明顯的好處就是可以提升學習動機 (Dagdilelis, Sartatzemi, & Kagani, 2005; Flowers & Gossett, 2002) 。學習者容易沈浸 其中進行主動學習(Linder, Nestrick, Mulders, & Lavelle, 2001) ;並且以符合建構論 的學習觀點,透過具體操作、觀察機器人運行、修正錯誤與驗證知識的過程進行 學習(Bers, Ponte, Juelich, Viera & Schenker, 2002)。LEGO 機器人的學習環境,鼓 勵學習者做中學、動手操作(Fagin, Merkle & Eggers, 2001) ;在實作中發揮創意, 進而鼓勵學生主動解決問題,因此採用問題解決策略,是使用 LEGO 機器人輔助 教學的精神所在(Jacobsen & Jadud, 2005)。 Dagdilelis 等(2005)認為 LEGO 機器人具有以下的優點: (1)機器人是真實 世界的物體,能與真實世界互動,較能吸引學生; (2)機器人可以直接手動操作, 提供立即的回饋。而且機器人在執行學習者所撰寫的程式時,會帶給學習者真實 感與成就感,這是其他學習方式很難取代的(Blank, 2006)。LEGO Mindstorms 的 相關研究大都發現機器人可提升學習的興趣與動機(曾義智,2007; 劉洲,2005; Dagdilelis et al., 2005; Flowers & Gossett, 2002) ,且有助於學生在腦中想像程式執行 過程(許雅慧,2006)。 但有些研究指出機器人程式設計教學的可能限制,例如:機器人程式設計教 學未提升學習成就的原因,可能是缺乏適當程式編譯環境與模擬軟體的配合,花 8.

(15) 費太多時間在程式的傳輸與測試,較少的時間在程式的撰寫與修正,因此建議可 以利用模擬軟體來補足實體機器人的不足(曾義智,2007; 劉洲,2005; Fagin & Merkle, 2002) 。學習者如果可先在模擬軟體測試程式,正確後再傳輸到實體機器人, 如此可以避免太多時間被耗費在反覆傳輸與測試。Schumacher(2001)及 Wolfe 等人(2003)使用實體機器人作為程式設計教學工具,因實體機器人數量不足, 於是使用機器人模擬軟體作為教學工具以兼顧時間與經濟效益。Kammer、Brauner、 Leonhardt 及 Schroeder(2011)在機器人程式設計教學中,因機器人不能外借,學 生無法在家練習而學習受到限制,故發展機器人模擬軟體提供學生自行安裝,增 加學習反思的機會。 故機器人模擬軟體的發展,應有其需要性,可以彌補實體機器人的不足,有 助於學生的學習。. 貳、模擬軟體輔助機器人程式設計教學 Papert 於 1980 年提出「微世界」 (Microworld)的觀點,並以 LOGO 語言作為 初學者學習程式設計的工具,在此之後愈來愈多學者投入發展模擬軟體(Kelleher & Pausch, 2005) 。模擬軟體的特徵是將程式執行過程視覺化,使得初學者可以較具 體地掌握程式語意、語法、結構等(Brusilovsky et al., 1997)。模擬軟體的應用符 合建構論的特點,其微世界不僅可達到情境式學習(situated learning)的效果,還 可讓學生在特定領域知識內探究,藉由發現式學習來促進心智模型的形成(Rieber, 1992, 1996; Soloway, 1993) 。有些學者將模擬軟體中的主角設計成機器人,透過撰 寫程式來控制機器人的動作,使機器人能與微世界產生互動,藉此學習程式設計 的觀念(Bergin, Stehlik, Roberts, & Pattis, 2004; Cooper, Dann, & Pausch, 2000; Hartmann, Nievergelt, & Reichert, 2001; Pattis, 1981) 。應用模擬軟體於程式設計教學 可提升學生的學習動機(Becker, 2001; Cooper, Dann, & Pausch, 2003) ,圖像化輸出 讓使用者容易地看出程式中細微的改變,會造成結果顯著的不同,而在視覺化環 境中,物件的概念也變得容易理解(Powers, Ecott, & Hirshfield, 2007)。 9.

(16) Schumacher 等人(2001)及 Wolfe 等人(2003)學者使用 LEGO 機器人作為 程式設計教學工具,因為實體機器人數量不足,於是使用美國西點軍校發展的程 式設計教學 2D 模擬軟體 Jago(Flowers & Gossett, 2002),如圖 2.1 所示。學生撰 寫完程式後,先將程式傳輸到 Jago 進行模擬,動作模擬正確之後,再將程式傳輸 到實體機器人執行,如此可兼顧時間與經濟效益,讓每位學生儘可能使用到實體 機器人。. 圖 2.1. Jago 模擬軟體畫面(資料來源:Flowers & Gossett, 2002). 德國 Paderborn 大學針對 LEGO Mindstorms RCX 發展出模擬軟體 LMS(Lego Mindstorms Simulator, http://ddi.uni-paderborn.de/en/software),如圖 2.2 所示。曾義 智(2007)將 LMS 介面簡化及中文化,並比較實體機器人與模擬軟體用於學習程 式設計的成效,結果顯示使用實體機器人或模擬軟體的學生其學習成就並無顯著 差異。可能因為 LMS 模擬軟體並不是真正的 3D 效果,以致於學生對實體機器人 的興趣較高。在課堂觀察中也發現,使用模擬軟體的學生因為不需要傳輸程式到 實體機器人,而有較多的時間思考習題中的挑戰題。謝亞錚(2009)比較實體加 模擬、實體機器人、模擬軟體三組學生學習程式設計的成就,結果顯示三組並無 顯著差異,並且皆認為機器人程式設計能讓自己有成就感,也很有挑戰性。. 10.

(17) 圖 2.2. 中文化 LMS 模擬軟體(資料來源:曾義智,2007). 陳玥汝(2010)認為 2D 模擬軟體未能模擬真實世界的情境,為了提升模擬 LEGO 機器人的效果,開發 LEGO NXT 機器人 3D 模擬軟體,如圖 2.3 所示。可在 3D 模擬環境中模擬出機器人在真實環境的行為,以及提供更多感應器模擬功能。 程式編輯器的操作介面與實體機器人類似,採用傳統撰寫程式碼的方式。在經過 使用者評估後,認為 3D 效果真實且操作介面方便,建議設計豐富、變化的地圖環 境,以提高學生使用模擬軟體的興趣。. 圖 2.3. LEGO NXT 機器人 3D 模擬軟體(資料來源:陳玥汝,2010) 11.

(18) Kammer 等人(2011)開發 go4IT!-simulator 模擬軟體,屬於實體機器人的輔 助軟體,必須載入實體機器人的程式機器碼才能夠執行,如圖 2.4 所示。可利用地 圖編輯器進行模擬場景的設計,但必須受限在格子狀的模擬畫面中。因為有這些 條件限制,go4IT!-simulator 模擬軟體以輔助實體機器人,藉由模擬環境進行程式 測試為主要的用途,不能單獨使用。比較特別的是可支援網路連線使用。. 圖 2.4. go4IT!-simulator 模擬軟體(資料來源:Kammer et al., 2011). 綜合上述文獻,多數研究認為應用模擬軟體於程式設計教學可提升學生的學 習動機(Becker, 2001; Cooper, Dann, & Pausch, 2003) ,並建議以實體機器人學習程 式設計的課程中,使用模擬軟體進行輔助,有助於節省時間與金錢(Schumacher et al., 2001; Wolfe et al., 2003) 。而應用實體機器人或模擬軟體於程式設計教學在學習 成就上並無顯著差異(曾義智,2007;謝亞錚,2009),學生對 LMS 模擬軟體興 趣較低的原因可能因為其並未具有真正的 3D 效果(曾義智,2007) 。陳玥汝(2010) 開發的 LEGO NXT 機器人 3D 模擬軟體,可在真實 3D 環境中模擬出機器人的行為, 惟地圖內容物可再豐富些。. 12.

(19) 第三節. LEGO 機器人程式設計教學實施. 本節將探討應用 LEGO 機器人輔助程式設計教學的實施案例,與教學實施時 的注意事項。. 壹、LEGO 機器人輔助程式設計教學的實施案例 Fagin 及 Merkle(2002)採用 LEGO 機器人學習程式設計中循序控制、變數、 常數、副程式、選擇結構與布林表示式、陣列等觀念,並附有相關挑戰題,供學 生練習與完成。例如在「選擇結構」的教學單元中,引入條件判斷的觀念,使 LEGO 機器人,在面對不同的外在條件下,做出不同的行為反應。由於 LEGO 機器人提 供許多相關組件,如碰撞感應器,故可使用「機器人遇到牆壁或其他障礙物,即 變換方向」為例進行教學。希望學習者能在有趣、互動的環境中,專注於進行程 式設計的學習,Fagin 以問題解決為策略,實施「設計-程式撰寫-執行-重新設 計」的學習步驟,希望減少學生的學習負擔,並增加學生動手操作的學習體驗與 樂趣。 Behrens、Atorf、Schneider 及 Aach(2011)使用 LEGO 機器人在大學工程領 域課程活動中,透過實作與競賽活動,學習數學方法、MATLAB 與工程應用的相 關知識,幫助大學新生連結理論與實務課程,增加學生的學習動機。 Kammer 等人(2011)利用工作坊實施機器人教學,包含組裝與運用感應器, 並設計機器人跳舞的專題研究,在課程最後進行成果發表。因採用小組合作進行, 機器人須與人共用亦不得外借,因此搭配 go4IT!-simulator 模擬軟體輔助實體機器 人教學,學員可在課程後使用自己的電腦,執行課程中完成的機器人程式,經由 課後複習與觀看模擬軟體的執行過程,達到學習反思的作用。 由以上教學案例,可歸納使用 LEGO 機器人輔助教學的教學模式如下: 1. LEGO 機器人的使用範圍廣泛,因其使用對象、屬性而有所不同 13.

(20) 中小學的實施方式,多以營隊、社團為主,藉由趣味化的學習環境,強調基 本能力的建立,與程式設計概念的體驗;而國外大專院校部分,多獨立使用於資 訊專業課程、或數理工程領域。 2. 可搭配問題解決之教學策略,以及專題製作的方式進行 利用 LEGO 機器人進行課程教學,由於其程式執行過程得以在真實情境下進 行,因此教學設計很適合採用問題解決策略,搭配專題製作實施。教師可擬定生 活化的習題供學生練習;亦可提供範例,供學生操作,之後規定作業供學生練習, 強化學習印象。或是結合競賽方式,塑造教學情境,以增強學生學習動機。. 貳、LEGO 機器人的教學實施與建議 LEGO 機器人被認為是有助於學習程式設計的教學工具,在規劃教學活動時, 文獻中相關的教學經驗,提醒我們注意以下事項: 1. 實施過程比結果重要 學生主要透過程式的實作與練習,了解程式設計觀念與教學內容。換言之, LEGO 機器人的角色是教學工具,教學內容是透過工具了解程式設計的概念。因此 過程與結果一樣重要,不必強求學生都必須完成每一次實作(Wolz, 2001)。Bers 等人(2002)亦認為操作 LEGO 機器人失敗的經驗,對學生的學習而言更具價值, 因為失敗的經驗將鼓勵同學進行深入的詰問,及自動建立共同學習的機制。 2. 記錄教學活動的過程 透過教學日誌的課堂觀察,與學生實作心得紀錄,可以幫助教師了解學生的 學習情形與課程參與情形,作為改善教學的參考依據(黃世隆,2004)。 3. 妥善處理分組教學情形 LEGO 機器人硬體設備的成本,對一般中小學的教育經費而言,無法達到一人 一套設備的要求,因此多以團隊分組的方式,實施 LEGO 機器人輔助程式設計課 程的教學。這種方式除了節省成本考量外,也可建立團隊合作的機制,在專題實 作或分組競賽上有集思廣益的效果。但是掌握團體的狀況,與小組成員是否確實 14.

(21) 參與,將是教學者必須注意的課題(蔡依琳,2002 ; Weinberg, White, Karacal, Engel, & Hu, 2005)。. 15.

(22) 第三章. 研究方法. 本研究主要目的是運用 LEGO NXT 機器人 3D 模擬軟體於程式設計教學,希 望改善學生學習情形,並探討使用 LEGO NXT 機器人 3D 模擬軟體於程式設計課 程的相關問題,包含學生遭遇的困難、此工具的優缺點,並提出教學建議,以及 經由本行動研究,促進研究者的教學成長。以下就研究設計、研究參與者、教學 規劃、研究工具、資料蒐集與分析等五部分進行說明。. 第一節 研究設計. 本研究採用行動研究法,在教學環境中進行系統性探究,蒐集教與學的資訊, 以精進教學實務為目的(Carr & Kemmis, 1986; Mills, 2007) 。過程分為計畫、蒐集 資料、分析與反思四個步驟,以動態循環的方式實施(Henning, Stone, & Kelly, 2009)。 研究架構如圖 3.1 所示。. 一、計畫 擬定教學目標、教學內容與流程。參考相關文獻中的教學經驗與建議,擬定 以 LEGO NXT 機器人 3D 模擬軟體為程式設計教學的工具,並進行教材範例與研 究工具的開發,規劃欲蒐集的資料類型。 二、蒐集資料 實施程式設計教學,並在過程中觀察學生反應,以及藉由學生的實作心得紀 錄,了解每一個學生的學習情形;教師本身則在課後記錄教學日誌,詳實記載教 學情形。在課程總結後進行成就測驗、課程問卷與訪談。 三、分析 於每次教學活動結束後進行資料分析,從觀察學生的課堂互動、查閱實作心 16.

(23) 得紀錄以及教學日誌,分析教學實施的效果,以及將課程總結後的成就測驗、課 程問卷與訪談資料進行分析,將分析結果做為調整教學模式與策略的依據。 四、反思 將每次課程活動結束後獲得的資料分析結果,進行詮釋說明,從中獲得回饋 並發展新的教學策略,調整教學方式。藉由反覆的思考、推測與驗證,獲得實施 教學的改進與建議。 計畫. 規劃教學內容與編制教材. 程式設計教學(六個單元) 蒐集資料 分析 反思 計畫. 進行教學調整 進行教學檢討與省思. 成就測驗、問卷與訪談 圖 3.1. 研究架構圖. 教學章節為課程綱要的電腦與問題解決,教學內容規劃為六個單元,教學內 容包含循序結構、變數與運算式、條件判斷結構、重複結構以及機器人套件中光 源、碰撞感應器的運用。各單元以範例活動進行設計,分別有其模擬環境與問題 情境,讓學生透過程式設計進行電腦解題實作,將在第三節詳細說明。教學時程 共五週十個小時,利用每週二節之資訊科技概論課程實施。教學過程由研究者(教 師)進行教學,協助學生完成教學活動。每一個單元結束後,就教學狀況、學生 學習反應、學生實作過程中遇到的問題進行記錄與分析,作為修正下一個單元教 學模式與策略的依據。教學實施過程皆進行錄影並以教學日誌記錄。研究最後實 施總結評量與課程問卷,並根據相關蒐集資料分析結果,進行學生小組訪談,以 了解相關問題。. 17.

(24) 第二節 研究參與者. 以下說明行動研究過程中,參與人員的背景,包含參與學生與授課教師(研 究者)分別敘述之。. 壹、參與學生 本研究以某一公立女子高級中學一年級學生為對象,共二個班級 84 名學生, 皆為研究者本學期任課之班級。班級為常態編班。學生除了該學期修習資訊科技 概論課程之外,之前未接觸過程式語言,是程式設計的初學者。學生在國中階段 的電腦課程實施情形差異大,大都以電腦軟體操作為主。研究者先前授課經驗發 現,學生對上機操作之學習內容比較有興趣,對理論講述的內容比較缺乏興趣。. 貳、授課教師 研究者為前述女子高級中學資訊科技概論科教師,自國立臺灣師範大學資訊 教育學系畢業,先在私立高職任教資料處理科一年,再至現職學校任教四年,合 計電腦課程教學經歷滿五年。目前於國立台灣師範大學資訊教育研究所進修碩士 學位。在校內除了教學工作亦兼任學校行政職務擔任資訊組長,並且是校內資訊 研究社的指導老師。教授電腦課程的經歷,包含資訊科技概論課程、程式設計選 修課程以及資訊競賽選手的培訓。曾經實施過 C++、Scratch 程式設計教學、LEGO Mindstorms NXT 實體機器人程式設計教學。. 18.

(25) 第三節 教學規劃. 本節介紹研究過程中教學規劃相關事宜,分為教學實施流程,以及教學單元 內容二部分,分別詳細說明。. 壹、教學實施流程 參考相關文獻發現,機器人程式設計強調做中學,與動手操作的經驗,並且 藉由模擬軟體的操作,有助於幫助初學者建立程式設計的心智模型。因此教學單 元的設計,就採用問題解決策略,參考「設計-程式撰寫-執行-重新設計」的 學習步驟進行規劃。步驟如下:. 一、說明學習目標,提供問題情境 在單元的一開始,說明單元的學習目標,讓學生建立一個主題概念,接下來 在這個基礎上逐步進行建構。接著在單元範例中提供一個問題情境,以圖片與文 字進行說明,並且開啟模擬軟體的範例程式,模擬軟體內的地圖環境已比照問題 情境設定妥當,學生僅需要就機器人的部分進行程式設計。在此階段,學生對問 題進行了解與分析,接下來的步驟就是要運用程式設計,控制機器人在這個問題 情境中將問題解決。. 二、進行示範教學,解說方法與概念 幫助學生了解問題並進行分析,因此教師先示範一次程式執行的結果,透過 機器人在模擬環境中的運作過程,逐步分析解題方法,並講解程式設計的知識概 念,包含指令功能、語法的運用以及邏輯程序,藉此引導過程協助學生建立程式 設計的知識概念。並且利用可以在模擬軟體中操控機器人的特性,吸引學生動手 操作,提升學生的學習興趣。 19.

(26) 三、程式設計實作 在了解解題方法與程式設計知識概念之後,學生實際撰寫程式,透過程式設 計來解決問題。在此過程,學生利用模擬軟體進行測試,觀看程式執行的結果, 因為機器人的動作皆按照其所撰寫的程式碼運作,學生可將模擬軟體的執行結果, 與自己撰寫的程式碼以及心中模擬程式運作的情形相互比對,觀看結果是否有如 預期,或者有哪些部分需要進行修正。實作的過程是一種實踐的過程,學生透過 做中學,建構自己對於程式設計概念的知識。. 四、記錄實作心得 單元活動的最後階段,無論是否成功解決問題任務,都必須記錄實作心得, 主要目的有二:一是記錄學生學習情形,藉此老師可以進行了解學生是否有完成 練習;二是令學生進行學習反思,機器人程式設計因為重視學習過程,成功或失 敗的經驗皆可以學習,因此學生可以描述其在解題操作上的困難,或是如何克服 遭遇的困難。 每個單元的教學實施流程如圖 3.2 所示。 說明學習目標 問題分析 提供問題情境 進行示範教學 解題方法設計 解說方法與概念 程式設計 測試與修正. 程式設計實作 記錄實作心得. 圖 3.2. 單元教學實施流程 20.

(27) 貳、教學單元內容 參考文獻中機器人程式設計教學的主要學習概念,設定教學內容為循序結構、 變數與運算式、選擇結構、重複結構以及機器人套件中光源、碰撞感應器的運用。 實施過程強調問題解決與概念理解為優先,指令語法並不刻意要求記憶,而是在 動手操作的過程中,藉由練習而自然熟悉。教學內容如表 3.1,各單元範例的構想 與發展方式於第五節說明。 在正式實施程式設計教學課程之前,先進行兩個預備單元,一是認識電腦解 題,透過益智遊戲與講解,引導學生了解電腦與問題解決的關係,二是程式設計 教學工具介紹,介紹常見的程式語言,並說明為什麼使用機器人程式設計,以及 本研究採用的機器人模擬軟體的使用環境。各單元時間分配依學習內容進行安排, 前三週每個單元一節課,後二週每個單元二節課。 表 3.1 週次. 教學單元內容一覽表. 單元. 學習內容 電腦與問題解決的關係. 預備一:認識電腦解題. 電腦解題程序. 一 預備二:程式設計教學工具介紹. 機器人程式設計 機器人模擬軟體. 單元一:直線折返車(範例 1-1). 程式執行基本觀念 移動指令(前進、後退). 單元二:自走巡邏車(範例 1-2). 重複結構 轉彎指令. 單元三:單光源軌道車-初賽(範例 2). 選擇結構(條件判斷) 光源感應器. 二. 三 單元四:單光源軌道車-複賽(範例 3). 四. 五. 選擇結構(多重條件判斷) 光源感應器. 單元五:瘋狂碰碰車(範例 4). 碰撞感應器 選擇結構 重複結構. 單元六:混合挑戰賽(範例 5). 變數與運算 選擇結構 光源與碰撞感應器綜合應用. 21.

(28) 第四節 研究工具. 本研究所使用的研究工具包括 LEGO NXT 機器人 3D 模擬軟體、機器人程式 設計學習講義、實作心得紀錄、程式設計成就測驗、課程問卷、學生訪談紀錄、 教學日誌等,分別說明如下。. 壹、LEGO NXT 機器人 3D 模擬軟體 本研究使用陳玥汝(2010)所開發的 LEGO NXT 機器人 3D 模擬軟體,因為 其只有一個固定的 3D 地圖環境,不符合實際教學需求,因此依據教學規劃的內容 將模擬軟體進行部分修改與設計,將於第五節詳細說明。. 貳、機器人程式設計學習講義 依據教學規劃設計講義,分為兩個部分共七個章節,第一個部分是「LEGO NXT 程式設計簡介」 ,在預備單元實施,講解機器人模擬軟體的使用環境與特色。 第二個部分為六個教學單元分別是「直線折返車」、「自走巡邏車」、「單光源軌道 車-初賽」 、 「單光源軌道車-複賽」 、 「瘋狂碰碰車」與「混合挑戰賽」等。每一個單 元規劃「學習目標」、「問題敘述」與「概念提示」等部分,在後四個單元並加入 流程圖說明解題步驟,幫助學生了解解題方法。詳細講義內容參見附錄一。. 參、實作心得紀錄 本記錄用途在於了解每一個學生,在每一個單元的實作完成率,及記錄學生 對此單元的心得回饋。在課程實施前向說明記錄實作心得的方式與原則,學生必 須要回答兩個問題:「是否有完成今天的任務?」與「記錄今天課程的心得」,心 得紀錄可以包含未能完成實作的原因、學習活動的心得感想以及反應與課程有關 的問題,研究者可藉此了解學生學習狀況。實作心得於課程 Moodle 網站上填寫, 22.

(29) Moodle 填寫之網頁內容參見附錄二。. 肆、程式設計成就測驗 成就測驗實施的目的在於了解學生學習的盲點,作為教學改進調整的參考依 據。測驗於全部課程實施完畢後進行,內容由研究者根據教學狀況與以往教學經 驗設計之。以紙筆測驗方式進行,測驗類型包含追蹤程式碼、設計並撰寫程式與 程式除錯。涵蓋的認知層面包含:記憶、理解與應用。測驗內容包括: 一、了解學生是否理解程式設計基本概念與循序結構的學習內容。 二、了解學生是否理解程式設計變數與運算概念的學習內容。 三、了解學生是否理解程式設計選擇結構與重複結構的學習內容。 四、了解學生是否能夠應用選擇結構與重複結構進行程式設計。 詳細成就測驗問題參見附錄三。. 伍、課程問卷 問卷於全部課程實施完畢後進行,內容由研究者根據想要了解的教學層面問 題進行設計,藉由問卷進行整體教學的意見調查。並將此問卷實施收集之結果, 作為整體教學過程的檢討依據,同時也列為訂定訪談問題的參考。收集的意見層 面包含: 一、對於機器人模擬軟體的意見。 二、對於機器人程式設計課程實施的意見。 三、學習程式設計的心得與感想。 四、整體課程實施的建議。 詳細問卷內容參見附錄四。. 陸、學生訪談 教師根據教學日誌的紀錄,與學生問卷的回答情形,設計一系列的訪談問題, 23.

(30) 進行學生小組訪談,其目的在釐清實作心得紀錄、課程問卷與成就測驗中的特殊 情形,以及獲得學生對於課程與學習過程中進一步的觀點,藉此得到更深入的資 訊。訪談問題參見附錄五。. 柒、教學日誌 教學日誌為研究者記錄六個單元的機器人程式設計教學過程與重要事項。日 誌中記載的項目包括課程實施概要、教師課堂觀察、師生互動紀要、教學遭遇問 題、教學調整方式與教學省思等。日誌內容作為研究者教學自省與教學調整改進 的用途。參見附錄六之教學日誌紀錄表。. 24.

(31) 第五節. LEGO NXT 機器人 3D 模擬軟體. 本研究使用陳玥汝(2010)所開發的 LEGO NXT 機器人 3D 模擬軟體,為了 符合教學規劃與實施內容,將模擬軟體進行修改並設計符合教學需要的 3D 地圖環 境。本章先說明 LEGO NXT 機器人 3D 模擬軟體的功能分析,接著介紹軟體開發 工具與地圖環境設計與實作要點。. 壹、LEGO NXT 機器人 3D 模擬軟體的功能分析 陳玥汝(2010)為了提升模擬 LEGO 機器人的效果,開發 LEGO NXT 機器人 3D 模擬軟體,在 3D 模擬環境中模擬出機器人在真實環境的行為,以及提供更多 感應器模擬功能。此軟體的設計架構共分為五個模組:. 一、機器人行為動作模擬模組 負責模擬機器人行為動作,所有與機器人行為有關的服務都必須透過此模組 模擬,機器人操控指令簡化模組與使用者介面模組可經由此模組模擬機器人行為 動作。 二、3D 環境模擬模組 負責模擬 3D 環境與此環境中的物理現象,將模擬出的畫面傳到使用者介面模 組。 三、使用者介面模組 可透過機器人操控指令簡化模組呼叫機器人行為動作模擬模組,或是直接使 用機器人行為動作模擬模組對機器人進行操控。 四、程式編輯器模組 使用機器人操控指令簡化模組的指令來編輯程式,並提供除錯、編譯程式等 功能。程式語言是 C#。 25.

(32) 五、機器人操控指令簡化模組 使用者可經由程式編輯器模組使用本模組簡化後的指令控制機器人行為動作 模擬模組。使用者介面模組可決定啟動或停止本模組所提供的指令。 各模組的功能與關係,如圖 3.3 所示。. 圖 3.3. LEGO NXT 機器人 3D 模擬軟體系統架構(資料來源:陳玥汝,2010). 了解此模擬軟體的系統架構與模組關係之後,因為模擬軟體只有一個固定的 3D 地圖環境,為了搭配本研究教學設計的問題情境,需修改 3D 環境模擬模組, 新增符合本研究需要的 3D 地圖環境,並且為了將撰寫程式的流程簡化與調整模擬 軟體的操作介面,也需要將使用者介面模組進行修改。. 貳、軟體開發工具 LEGO NXT 機器人 3D 模擬軟體是基於 MRDS(Microsoft Robotics Developer Studio)與 Microsoft Visual Studio 2008 進行開發。其中 MRDS 提供 3D 環境模擬 並內建機器人套件模組,而 Microsoft Visual Studio 則是整合開發環境,透過 Microsoft Visual Studio 進行程式編輯,將使用者建立的程式與 MSRDS 溝通後產生 3D 模擬的執行結果。 26.

(33) 因此本研究採用此兩套開發工具將模擬軟體進行修改,並針對 3D 環境模擬模 組與使用者介面模組這兩部分進行深入了解,研究在模擬軟體中新增與修改 3D 地 圖環境的方法。. 参、教學範例設計 依據文獻中機器人程式設計教學相關資料與研究者的教學經驗,擬定適合初 學者進行機器人程式設計實作的問題情境,運用於各個教學單元中,作為程式設 計的教學範例。下一個階段則依據教學範例,進行 3D 地圖環境實作。 以下說明各個單元教學範例的設計要點。. 單元一:直線折返車(範例 1-1) 1. 學習目標 學習如何撰寫程式、程式執行的基本觀念以及如何使用機器人的移動指令包 含前進、後退、速度控制等。 2. 問題情境 設計一段程式,讓機器人可以在地板上前進、後退共折返 2 次,並且嘗試改 變它行走的速度。 3. 地圖設計:使用陳玥汝(2010)開發的原始地圖環境,如圖 3.15。. 單元二:自走巡邏車(範例 1-2) 1. 學習目標 學習如何使用機器人的移動指令-轉彎以及程式設計的重複結構。 2. 問題情境 設計一段程式,讓機器車可以在地板上前進、右轉,走一個正方形的軌跡回 到原位。嘗試使用迴圈指令,來簡化上述的問題,並且修改程式讓機器人可以任 何方式在房間裡自動進行巡邏。 27.

(34) 3. 地圖設計:使用原始地圖環境,如圖 3.15。. 單元三:單光源軌道車-初賽(範例 2) 1. 學習目標 學習如何使用機器人的光源感應器,以及程式設計的選擇結構(條件判斷)。 並且學習分析機器人是如何沿著黑線前進。 2. 問題情境 設計程式使得在黑色橢圓形軌道上面的機器人,可以沿著地圖上的黑色軌道 前進繞圈行走,並且嘗試改變機器人行走的速度與方法,使得它能夠走得越順暢、 花越少時間越好。 3. 地圖設計:須使用橢圓形軌道如圖 3.4 所示。. 圖 3.4. 橢圓形軌道地圖設計. 單元四:單光源軌道車-複賽(範例 3) 1. 學習目標 學習如何使用機器人的光源感應器,以及程式設計的選擇結構(多重條件判 斷) 。並且學習分析機器人是如何沿著彎彎曲曲的黑線前進。. 28.

(35) 2. 問題情境 設計程式使得在黑色軌道上的機器人,可以沿著地圖上彎彎曲曲的黑色漸層 軌道繞圈行走,這個彎曲的軌道有左、右轉彎。並且嘗試改變機器人行走的速度 與方法,使得機器車能夠走得越順暢、花越少時間越好。 3. 地圖設計:變形軌道如圖 3.5 所示。. 圖 3.5. 變形軌道地圖設計. 單元五:瘋狂碰碰車(範例 4) 1. 學習目標 學習如何使用機器人的碰撞感應器,以及程式設計的選擇結構。並且學習分 析在機器人撞到障礙物之後,要如何動作,才能夠順利迴轉。 2. 問題情境 設計程式使得在紅色圍牆內的機器人自動向前進,直到撞到障礙物,機器人 迴轉 180 度再繼續前進。思考在迴轉時要如何設計才可以順利過關。 3. 地圖設計 原本規劃為迷宮如圖 3.6 所示,利用碰撞感應器,令機器人從迷宮的起點進行 走訪至離開迷宮,但是在進行 3D 地圖環境測試時發現,機器人容易因為碰撞與轉 彎產生的誤差,以致於機器人在迷宮中迷走,造成不斷進行參數校正而阻礙了學 習的重點,因此更改設計,簡化成圍牆如圖 3.7 所示。 29.

(36) 圖 3.6. 迷宮地圖設計. 圖 3.7. 圍牆地圖設計. 單元六:混合挑戰賽(範例 5) 1. 學習目標 學習如何綜合應用機器人的光源與碰撞感應器,以及程式設計的選擇結構, 並且學習分析如何運用變數與運算來改變機器人繞圈的方向。 2. 問題情境 撰寫程式使得機器人沿著地圖上黑色橢圓形軌道前進,但是在另一端有個紅 色障礙物擋住去路,當機器人撞到障礙物時,迴轉 180 度再繼續前進。思考機器 人在不同的前進方向是如何動作,當撞到障礙物又要如何調整才能順利過關。 30.

(37) 3. 地圖設計 原本教學規劃的是圖 3.8 的變形軌道與障礙物,但是在教學過程中發現原本的 設計比較複雜,在教學活動的進行中可能會因為時間不夠讓學生完成實作,而阻 礙學習進行,因此進行教學調整,將地圖修改成如圖 3.9 的橢圓形軌道與障礙物, 將變形軌道簡化成橢圓形軌道,保留學習的重點,降低部分複雜度。. 圖 3.8. 圖 3.9. 變形軌道與障礙物地圖設計. 橢圓形軌道與障礙物地圖設計. 31.

(38) 肆、3D 地圖環境實作 原始的 LEGO NXT 機器人 3D 模擬軟體只有一個固定的 3D 地圖環境,而為了 搭配本研究各個單元設計的問題情境,必須新增符合教學需要的 3D 地圖環境。因 此在了解模擬軟體的系統架構與模組關係之後,研究在模擬軟體中新增與修改 3D 地圖環境的方法。 其中與 3D 環境模擬模組有關的程式碼片段都在 newMAP.xml 檔案中,查詢相 關參考資料並進行程式碼分析,結果發現可將新增地圖的點陣圖片以物件表面填 充材料的方式,替換掉原始的地圖場景,另外需要注意是否需要將圖片進行旋轉, 以保持原本的長寬比例。 而新增、修改或移除模擬環境中的物件,也是在 newMAP.xml 檔案中進行。 找到物件相對應的程式碼片段,對其 x、y、z 座標進行修改,可移動其位置,亦 可修改數值調整物件的重量,但必須注意在調整 LEGO NXT 機器人的位置時,因 為其碰撞感應器與機器人本體,是兩段不同的程式碼,並未群組在一起,因此需 要同步修改,以免感應器失靈。 以下是依據各單元問題情境的地圖設計,在模擬軟體中新增的 3D 地圖環境。 如圖 3.10 橢圓形軌道、圖 3.11 變形軌道、圖 3.12 圍牆、圖 3.13 橢圓形軌道與障 礙物等 3D 地圖環境所示。. 圖 3.10 橢圓形軌道 3D 地圖環境 32.

(39) 圖 3.11 變形軌道 3D 地圖環境. 圖 3.12. 圖 3.13. 圍牆 3D 地圖環境. 橢圓形軌道與障礙物 3D 地圖環境. 33.

(40) 伍、簡化操作介面與程序 原始的 LEGO NXT 機器人 3D 模擬軟體在畫面上同時有兩台機器人,分別保 留三個待執行的程式,因為研究者考量適合初學者的教學環境不宜複雜,以直覺 易操作為佳,因此欲修改模擬環境為一台機器人,且只執行一個程式的操作環境 以達到簡化的目的。在實作中,除了將第二台機器人物件移除,同時也移除了其 相關的模擬模組,並且修改 DriveControl.Designer.cs 檔案中使用者介面模組的程式 碼片段,移除不需要的介面按鈕,簡化使用者操作介面。原始操作介面如圖 3.14, 簡化過的操作介面如圖 3.15 所示。 簡化執行程式的程序,以降低不當操作造成的錯誤發生。調整執行程式的程 序以 script(run.bat 檔案)執行程式,當執行 run.bat 時會自動 rebuild 專案並執行 機器人模擬,程式錯誤訊息仍保留在 console 介面,提供除錯的資訊。因此學生只 需要以程式編輯器將程式碼撰寫在 new.cs 檔案中,並執行 run.bat 即可觀看程式執 行的結果。. 圖 3.14. 原始版本的模擬軟體操作介面. 34.

(41) 圖 3.15. 簡化過的模擬軟體操作介面. 35.

(42) 第六節 資料蒐集與分析. 資料蒐集與分析包括實作心得紀錄、教學日誌、成就測驗、課程問卷與學生 訪談。 在實作心得紀錄與教學日誌方面,依據學生在每個單元的實作心得紀錄,輔 以課堂觀察與教學日誌,對每一個單元實施後的教學情形進行分析,從分析結果 進行反思,再進行計畫性的教學調整,採用新的教學策略,此為行動研究中的動 態循環過程。並將每個單元的改善建議,以及對教學工具 LEGO NXT 機器人 3D 模擬軟體的教學實施方式,在本研究的結果進行討論。 在成就測驗方面,主要在了解一系列課程活動的進行是否能夠達到原先教學 計畫的目標,並從分析中了解應加以改善的部分。依據學生的作答情形進行統計 與歸類,分別檢核學生在哪些程式設計概念上發生問題,再比對各單元教學實施 的分析結果,去驗證原先教學實施計畫、教學內容與活動,以及教學策略與實施 要點之間,是否已能相輔相成,或是有缺失不足之處,藉此提出改善建議。 在課程問卷與學生訪談方面,主要在了解學生學習態度,以及了解學生對於 課程活動規劃上的意見。問卷採用李克特五點量表,在學習態度方面,問題敘述 皆以正面詢問,故滿分為五分,若得分在三分以上者,顯示對該項目的意見表示 為正向想法。依據學生的作答結果,可以支持與驗證教學實施的情形,並進一步 獲得對於課程實施方式的建議與回饋。. 36.

(43) 第四章. 結果與討論. 本章就行動研究過程及問卷結果進行分析討論,內容分為教學實施結果、成 就測驗結果分析及課程問卷與訪談結果分析等三部分。. 第一節 教學實施結果. 本節主要介紹單元一至單元六的教學實施情形。各單元描述的重點,包含教 學概要、課堂觀察、實施結果以及教學省思與調整等項目。而各單元的教學觀察, 以學生操作 LEGO NXT 機器人 3D 模擬軟體撰寫程式的過程為紀錄重點。. 壹、單元一教學 一、教學概要 單元一的教學目標為學習如何撰寫程式,藉由機器人的移動指令,來了解程 式執行的基本觀念與流程,並且熟悉程式語言的基本語法。設定的問題情境是: 設計程式讓機器人可以在地板上前進、後退共折返 2 次,並且嘗試改變它行走的 速度。在說明完教學目標與問題情境後,進行示範以及講解解題方法與程式設計 的概念。在教學過程中,因為學生是第一次撰寫程式,因此在循序結構的概念, 程式指令語法的使用上,給予逐步引導與解釋,務必要讓學生充分了解。並且也 藉由實際操作,熟悉使用模擬軟體進行程式設計的步驟。. 二、課堂觀察 在實作過程中有部分學生遭遇到問題如:指令語法錯誤、看不懂錯誤訊息、 對指令用法不夠熟悉,以致於發生誤用指令,與模擬軟體不明原因突然當掉,導 致電腦需要重新啟動等情形。大多數的學生反應熱烈,能夠投入在學習活動中, 37.

(44) 甚至有學生在完成基本練習之後,嘗試使用更多指令或修改參數,觀察程式執行 的結果有什麼變化,例如:學生對模擬環境感到好奇,調整視野進行探索;有學 生嘗試修改指令,令機器人故意去撞環境中的物品,製造有趣的事件;也有學生 使用老師尚未講解的指令,使用轉彎指令讓機器人改變前進方向,引起同學間的 注意與討論。. 三、實施結果 依據實作心得紀錄,學生完成解題的實作情形如表 4.1。 表 4.1. 直線折返車實作結果統計(N=84). 單元名稱. 正確執行. 程式有誤. 直線折返車. 98%. 2%. 從學生的心得紀錄中發現,大部分的學生對程式設計有正面的第一印象,例 如: 「第一次寫程式,一開始還蠻多錯誤的,不是一直前進就是不會動,不過完 成之後就有莫名的成就感,希望之後可以學到更多有挑戰性的東西。」 「好興奮,第一次寫程式,還想嘗試看看更多動作喔!」 「第一次撰寫程式設計,雖然感覺蠻簡單的,但後來可能會漸漸複雜化吧! 不過這次的程式設計體驗還是很好玩很有趣!」 「以前的老師沒教過,所以很新奇,今天學的難度也不會太高,很適合初學 者,本來一聽程式設計就覺得是很複雜的東西,完全提不起興趣,但覺得看機器 人動起來的樣子其實很有趣,希望以後可以學更多,但也不要教太難的啊!」 總結而言,大部分的學生覺得課程活動很有趣;看到機器人正確運作時覺得 有成就感;對電腦下達指令而機器人就會動起來覺得很神奇;發現程式設計沒有 原先想像的那麼困難等。. 38.

(45) 四、教學省思與調整 分析學生的課程反應與回饋,研究者認為使用 LEGO NXT 機器人 3D 模擬軟 體進行程式設計教學給予學生的第一印象是正向的。範例難度以第一支程式而言 是合適的,可以達成學習基本觀念的學習目標,過程中也能掌握學習進度,學生 有時間透過修改程式與調整模擬軟體的視野,進行探索學習,同時亦展現了對程 式設計的好奇心。 研究者進行以下的調整來降低學生在學習過程中遭遇的困難。一是在講解指 令的過程中,實際帶領學生撰寫一遍,讓學生比較不同指令的差異,例如同樣是 移動指令,forward()沒有帶參數,而 travel(x)則需要有參數。二是提醒語法的正確 性,因為學生第一次寫程式,對程式的指令語法不熟悉,因此在講解過程中,向 學生說明要特別留意加入分號的時機與括弧是否有成對,如此一來學生在實作時 遇到此類問題的情形會比較少。三是學生對程式的錯誤訊息不了解,因此老師可 以故意製造一個程式錯誤,示範如何除錯,如何透過錯誤訊息發現語法錯誤的位 置並進行修改。. 貳、單元二教學 一、教學概要 單元二的學習目標為如何使用機器人的移動指令-轉彎以及程式設計的重複 結構。設定的問題情境是,設計程式讓機器人可以在地板上前進、右轉,走一個 正方形的軌跡回到原位。為了引導學生感受到迴圈指令的功能,先採用一個指令 一個動作的方式,循序完成機器人的動作。接著講解在有規律的情況下,可以利 用重複結構簡化這個過程,因此帶入 for 迴圈的概念。要求學生在完成基本練習之 後,修改程式,例如嘗試調整指令的參數大小,改變行走的距離與旋轉角度,讓 機器人可以在房間裡自動進行巡邏。. 39.

(46) 二、課堂觀察 學生在實作過程中,學習氣氛是輕鬆的,能夠投入學習活動,並且跟老師與 同學進行討論。例如有學生故意使用轉彎指令,設計大角度轉彎並加速前進的動 作,造成機器人甩尾翻車,引來同學的好奇與笑聲。部分學生也能在完成基本練 習之後,嘗試修改程式,不再只是受限於老師原先給予的操作示範,能夠自行發 揮創意,以自己的設計方式,令機器人進行巡邏。由於在講解指令時,特別比較 不同指令的差異,以及說明錯誤訊息如何閱讀,學生在撰寫程式時發生的錯誤比 較少。. 三、實施結果 學生實作情形如表 4.2。 表 4.2. 自走巡邏車實作結果統計(N=84). 單元名稱. 正確執行. 程式有誤. 自走巡邏車. 96%. 4%. 從學生的心得紀錄中發現,學生對於程式設計的感受逐漸加深,例如: 「要是不清楚自己要什麼樣的程式,就沒辦法確實完成任務,僅僅是一個符 號或字母,整個程式就會錯誤無法執行。終於打出正確的程式時,有種成就感。」 「新學的迴圈跟上次比起來就有趣多了,變化比較多。有了上次的體驗,感 覺這次就變的比較容易上手,而且我隔壁的同學還能讓車子跌倒真是太厲害!有 不同的想法想試試看,會不會有出乎意料的事發生!非常有趣~」 「for 好好用,車子也可以繞長方形的,改角度還會到處跑,指令變得很簡單, 很方便使用,不用複製貼上一大串。」 「用了兩種不同的方法執行了同一個動作,原來可以用不同的方式完成,而 不是只有唯一一種方法,對程式設計有更多的了解。」. 40.

(47) 另外,有學生覺得使用重複結構很聰明,可以減少步驟,也令機器人增加智 慧,可以做更多的事情。也有學生認為,從設計到執行的過程,可親自體驗程式 設計的感覺,相當新鮮且有成就感。甚至有學生表示,想要學習更多程式設計。. 四、教學省思與調整 從教學過程中發現,機器人模擬軟體有助於學生理解重複結構的概念,可以 讓教學者藉由學習活動,很自然地把重複結構引導出來,並且從實際觀察機器人 的執行過程中,了解重複結構抽象的運作步驟。在撰寫程式方面,由於採用傳統 撰寫程式碼的方式,指令的語法結構對於初學者而言,有一定的複雜度,因此必 須小心謹慎地講解說明,例如運用變數控制迴圈的執行次數,會涉及到變數與運 算概念,如果有充分的時間,最好加強說明這些概念,雖然不見得要全盤托出(例 如變數型態可以只講整數),但至少與學習目標相關的部分,應該盡量說明清楚。 也因如此,在教學內容與時間的掌握上,教學者必須特別留意,教學內容的難度 與份量,以及教學現場裡可能會有的意外影響因素,例如在示範時,等待模擬器 執行所造成的時間消耗等,都必須納入課程規劃的考量中。 另外,可以在實作中增加開放性問題,讓學生自行設計問題,描述問題情境 並說明如何解決,增加實作的變化性,激發學生的創意與樂趣。. 参、單元三教學 一、教學概要 單元三的學習目標為如何使用機器人的光源感應器,以及程式設計的選擇結 構(條件判斷) 。首先說明問題情境,由教師示範執行的結果,幫助學生理解問題。 接著對於問題情境進行分析與思考:機器人是如何沿著黑線前進,以至於可以繞 行整個橢圓形軌道。引導學生使用光源感應器,並講解指令與用法,以及選擇結 構的語法與用途。其中,光源感應器在偵測到黑色時數值約為 0,而白色時數值約 為 80,若要進行條件判斷,則需要加入臨界值的觀念。講解完畢,讓學生進行實 41.

(48) 作練習,可以提示學生,嘗試改變機器人行走的速度與方法,使得它能夠走得越 順暢、花越少時間越好。 雖然程式碼只有短短幾行,但是這支程式包含了理解機器人沿著黑線前進的 方法,以及選擇結構的抽象概念,有一定的複雜度,因此教學時,可試著運用流 程圖幫助學生理解程式的邏輯結構。. 二、課堂觀察 由於上個單元實作經驗的收穫,能夠將講解與實作的時間分配,掌握得更恰 當。本單元不如前兩個單元容易,因為加入選擇結構的觀念,學生需要時間進行 思考與理解。大多數的學生雖然可以了解老師所提的解題方法,但是卻無法直接 地運用指令來描述解題方法,也就是學生對於要如何把解題概念轉換成程式碼, 產生了學習困難。 學生對於語法結構不熟悉,儘管已經提醒括號要成對,還是有部分學生在實 作過程中,發生少了右邊括弧的錯誤,導致程式錯誤無法執行,不過當發生錯誤 時,有些學生能自行除錯解決,或是向老師請求協助。 另外有些學生的程式錯誤來自於指令的參數數值設定錯誤。前進和轉彎的參 數大小會影響前進距離與轉彎角度,這兩個因素會影響機器人是否能順利沿著黑 色軌道前進,儘管教學過程已經提示學生要謹慎修改參數,避免數值過大,使得 機器人轉彎過頭、衝過頭,仍然有學生因參數設定不當,致使機器人行走過程中 出錯的情形發生。例如有學生表示: 「今天的程式比上次還要難好多,比較複雜而且速度太快的話,他就不會繞 著黑色圈圈走了!一開始寫出來,它一直在原地轉圈圈…,今天的程式多了許多 大括號,寫到後來根本不知道哪個括號是哪一個指令的。」 「一開始走得很順,可是繞半圈之後就停下了,所以帶入的數字應該要再調 一下。」. 42.

(49) 三、實施結果 學生實作情形如表 4.3。 表 4.3. 單光源軌道車-初賽實作結果統計(N=84). 單元名稱. 正確執行. 程式有誤. 單光源軌道車-初賽. 77%. 23%. 從課堂觀察中即可發現,在這個範例中,學生的程式錯誤情形增加,因此也 反應到實作的正確率。在觀察中發現,因為移動指令的參數數值設定不正確,機 器人就可能因轉彎角度過大,而轉到黑色軌道的內部去,造成機器人不斷地掉頭, 或者是因為移動距離過大而衝出軌道。 有部分學生在心得紀錄中描繪了程式執行失敗的情形,但是並不明白發生的 原因。有些學生則直接表示覺得程式設計是困難的。例如: 「程式變的越來越複雜了,要調整好多次才能成功。」 「為什麼它會一直往裡面轉啊?不過好像是角度移動距離太大了吧…今天的 好難喔~」 另外也有學生提到,經過這個學習活動,感覺機器人可以做更多事情,以及 在完成挑戰(有難度的程式或解決錯誤)之後,特別有成就感。例如: 「…一個看似簡單的動作需要許多指令才能完成,真的很神奇,希望可以完 成更多複雜的指令。」. 四、教學省思與調整 這個範例考驗學生對程式的理解與語法的運用。在原本的講義設計中,並沒 有提供機器人沿著黑線前進的完整程式碼作為範例,而是以另一個例子講解選擇 結構,希望透過引導,讓學生套用解題方法,把程式碼用選擇結構描述出來。這 個作法低估了解題概念轉換成程式碼的難度,因此重新調整講義的編排,適當地 提供對應到解題方法的程式碼範例作為參考,將納入後面單元講義修正的考量。 43.

參考文獻

相關文件

包括三維機械設計的所更的功能(SolidWorks 三維建模軟體)、資料管 理軟體 PDMWorks Client、以及用於設計交流的常用工具:eDrawings 專 業版(基於 e-mail 的設計交流工具),

資源和支援 學與教資源 社區資源 學校設施 和支援 研究與 發展計劃 學校領導與

配合小學數學科課程的推行,與參與的學校 協作研究及發展 推動 STEM

 TPR教學法是一種利用肢體動作和聲音 連結的直覺教學法,研究發現TPR教學

高中課程會多元化;讓學生有第二次機會而設計的其他教育 課程(例如毅進計劃及在中學試行的類似計劃),會因應新學

配合小學數學科課程的推行,與參與的學校 協作研究及發展 推動 STEM

研究不同的、新的教學方法/模式 試教行動 Æ 分享經驗 Æ

本研究旨在使用 TI-Nspire CAS 計算機之輔助教學模式,融入基礎 統計學的應用,及研究如何使用 TI-Nspire CAS