• 沒有找到結果。

第五章 結論與建議

第二節 建議

本研究對於未來應用 LEGO NXT 機器人 3D 模擬軟體於教學中,提出參考建 議與教學策略如下:

一、將 LEGO NXT 機器人 3D 模擬軟體與實體 NXT 機器人進行使用成效比較 依據本研究結果顯示,LEGO NXT 機器人 3D 模擬軟體可以真實地模擬實體 NXT 機器人的動作,提供每位學生獨立實作的學習環境,並且可提升學生程式設 計學習興趣,又可降低學校購買與維護實體 NXT 機器人的開銷。

未來若能再進一步比較 LEGO NXT 機器人 3D 模擬軟體與實體 NXT 機器人的 使用成效及差異,將可更確定教師在規劃機器人程式設計課程時,是否可以 LEGO NXT 機器人 3D 模擬軟體取代實體 NXT 機器人。

二、考量執行模擬軟體所需的電腦軟硬體與時間

執行 LEGO NXT 機器人 3D 模擬軟體的先決條件,必須先在電腦上安裝 Microsoft Visual Studio 2008、Microsoft Robotics Developer Studio 2008 R3 與 SimplySim NXT MSRDS 套件,並且將軟體參數設定妥當,因此建議將軟體與教學 範例,在上課前預先安裝在電腦裡以節省時間。另外建議的硬體標準,為雙核心 CPU,2GB 記憶體,有獨立顯示卡為佳,硬體設備效能會影響執行模擬軟體的速 度,因此必須將等待模擬器執行所造成的時間消耗,納入教學實施的考量中。

三、增加教學範例提供多元練習

教師若要開發機器人模擬軟體的教學範例,須具備物件導向程式設計能力,

可參考研究者開發教學範例的步驟,新增模擬軟體的教學範例,提供多元的實作 練習。建議以問題解決為導向,首先設計一個機器人解題的問題情境,並設定教

學目標,接著進行地圖設計,然後開發 3D 地圖環境並進行教學評估。在進行教學 單元規劃時,應提供學生充裕的實作時間,引導學生思考,培養問題解決能力,

並適時進行教學策略的調整。

四、教學內容可依課程需要調整順序

在教學單元的實施中,教學內容實施的順序除了先講解概念,再進行模擬實 作,亦可調整成先讓學生嘗試進行模擬實作,老師再進行講解概念,這種方式可 以先讓學生進行思考、嘗試解題,如此一來對於比較有能力的學生而言,可以檢 核自己的不足之處為何。教學內容的實施順序可以視情況彈性調整,對某些單元 可以收到比較理想的效果。

參考資料

吳正己、林凱胤(1997)。問題解決導向的程式語言教學。資訊與教育雜誌創刊十 週年特刊,75-83。

邱貴發(1996)。八五級暑研所資訊教學專題彙集。國立台灣師範大學資訊教育研 究所。

教育部(2008):普通高級中學必修科目「資訊科技概論」課程綱要。普通高級中 學課程綱要,335-352。

教育部(2009):普通高級中學資訊科課程綱要補充說明。普通高級中學課程綱要 補充說明,17,1-15。

許雅慧(2006):應用 LEGO Mindstorms 視覺化環境輔助程式設計觀念學習。國 立台灣師範大學資訊教育研究所碩士論文,未出版,台北市。

陳玥汝(2010):Lego NXT 機器人 3D 模擬軟體的開發與評估。國立台灣師範大 學資訊教育研究所碩士論文,未出版,台北市。

黃世隆(2004):應用電腦樂高輔助高中生程式設計學習之行動研究。國立台灣師 範大學資訊教育研究所碩士論文,未出版,台北市。

曾義智(2007):應用機器人於程式設計教學—實體機器人與模擬軟體使用成效比 較。國立台灣師範大學資訊教育研究所碩士論文,未出版,台北市。

蔡依琳(2002)。機械原理之運用-以樂高積木設計為例。生活科技教育月刊,35 卷 10 期,35-40。

劉洲(2005):應用 Lego Mindstorms 在高中程式設計教學的成效探討。國立台 灣師範大學資訊教育研究所碩士論文,未出版,台北市。

謝亞錚(2009):機器人輔助程式設計教學之學習成效與學生心智模型探討。國立 台灣師範大學資訊教育研究所碩士論文,未出版,台北市。

Barg, M., Fekete, A., Greening, T., Hollands, O., Kay, J., & Kingston, J. H. (2000).

Problem-based learning for foundation computer science courses. Computer Science Education, 10(2), 109-128.

Barnes, D. J. (2002). Teaching introductory Java through LEGO MINDSTORMS models. ACM SIGCSE, 34(1), 147-151.

Becker, B. W. (2001). Teaching CS1 with karel the robot in Java. Proceedings of the thirty-second SIGCSE technical symposium on Computer Science Education, 50-54.

Behrens A., Atorf L., Schneider D. & Aach T. (2011). Intelligent Robotics and Applications, ICIRA 2011, 71(1), 553-562.

Ben-Ari, M. (2001). Constructivism in Computer Science Education. The Journal of Computers in Mathematics and Science Teaching, 20(1), 45-73.

Bergin, J., Stehlik, M., Roberts, J., & Pattis, R. (2004). Karel J. Robot: A Gentle Introduction to the Art of Object-Oriented Programming in Java. California:

Dreamsongs Press.

Bers, M., Ponte, I., Juelich, C.,Viera, A., & Schenker, J. (2002). Teachers as designers:

integrating robotics in early childhood education. Information Technology in Childhood Education Annual, 123-145.

Blank, D. (2006). Robots make computer science personal. Communications of the ACM, 49(12), 25-27.

Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997).

Mini-languages: a way to learn programming principles. Education and Information Technologies, 2(1), 65-83.

Carr, W., & Kmmis, S. (1986). Becoming critical: Education, knowledge, and action research. Philadelphia, PA: Falmer Press.

Cooper, S., Dann, W., & Pausch, R. (2000). Alice: a 3-D tool for introductory programming concepts. Proceedings of the fifth annual CCSC northeastern conference on the journal of computing in small colleges, 107-116.

Cooper, S., Dann, W., & Pausch, R. (2003). Teaching objects-first in introductory computer science. Proceedings of the 34th SIGCSE technical symposium on Computer science education, 191-195.

Dagdilelis, V., Satratzemi M., & Evangelidis, G. (2004). Introducing secondary education students to algorithms and programming. Education and Information Technologies, 9(2), 159-173.

Dagdilelis, V., Sartatzemi, M., & Kagani, K. (2005). Teaching (with) Robots in Secondary Schools: Some New and Not-So-New Pedagogical Problems.

Proceedings of the Fifth IEEE International Conference on Advanced Learning Technologies, 757-761.

Ellinger, H. (2003). A natural sense of algorithm: Children should learn computer programming as a basic skill.

http://hunter.ellinger.org/education/ProgrammingForChildren.htm

Fagin, B. S., Merkle, L. D., & Eggers, T. W. (2001). Teaching computer science with robotics using Ada/Mindstorms 2.0. ACM SIGAda Ada Letters, 21(4), 73-78 Fagin, B. S., & Merkle, L. (2002). Quantitative analysis of the effects of robots

onintroductory Computer Science education. Journal on Educational Resources in Computing, 2(4), 1-17.

Flowers, T. R., & Gossett, K. A. (2002). Teaching problem solving, computing, and information technology with robots. Journal of Computing Sciences in Colleges, 17(6), 45-55.

Gupta, D. (2004). What is a good first programming language? Crossroads, 10(4).

Hartmann, W., Nievergelt, J., & Reichert, R. (2001). Kara, finite state machines, and the case for programming as part of general education. Symposia on Human-Centric Computing Languages and Environments, 135-141.

Henning, J. E., Stone, J. M., & Kelly, J. L. (2009). Using Action Research to Improve Instruction: An Interactive Guide for Teachers. New York: Routledge.

Jacobsen, C., & Jadud, M. (2005). Towards concrete concurrency: occam-pi on the LEGO Mindstorms. ACM SIGCSE, 23-27.

Jenkins, T. (2002). On the difficulty of learning to program. Proceedings of the 3rd LTSN-ICS Conference, 53-58.

Kammer, T., Brauner, P., Leonhardt, T., & Schroeder, U. (2011). Simulating LEGO Mindstorms Robots to Facilitate Teaching Computer Programming to School Students. EC-TEL 2011, 196-209

Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: a survey of programming environments and languages for novice programmers. ACM Computing Surveys, 37(2), 83-137.

Klassner, F., & Anderson, S. D. (2003). LEGO Mindstorms: not just for K-12 anymore.

IEEE Robotics & Automation Magazine, 12-18.

Lahtinen, E., Ala-Mutka, K., & Jarvinen, H. M. (2005). A study of the difficulties of novice programmers. Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education, 14-18.

Linder, S. P., Nestrick, B. E., Mulders, S., & Lavelle, C. L. (2001). Facilitating active learning with inexpensive mobile robots. Journal of Computing Sciences in Colleges, 16(4), 21-33.

Linn, M. C. (1985). The cognitive consequences of programming instruction in classrooms. Educational Researcher, 14(5), 14-16, 25-29.

Mannila, L., Peltomaki, M., & Salakoski, T. (2006) What about a simple language?

Analyzing the difficulties in learning to program. Computer science education, 16(3), 211-227.

Mayer, R. E. (1989). Models for Understanding. Review of Educational Research, 59(1), 43-64.

Miglino, O., Lund, H. H., & Cardaci, M. (1999). Robotics as an Educational Tool.

Journal of Interactive Learning Research, 10(1), 25-47.

Mills, G.E. (2007). Action research: A Guide for the teacher researcher. Upper Saddle River, N.J: Merrill.

Pattis, R. E. (1981). Karel the Robot: A Gentle Introduction to the Art of Programming.

New York: John Wiley & Sons.

Papert, S. (1980). Mindstorms: children, computers, and powerful ideas. New York:

Basic Books.

Portz, S. M. (2002). Lego league: bringing robotics training to your middle school. Tech Directions, 61(10), 17-19.

Powers, K., Ecott, S., & Hirshfield, L. (2007). Through the Looking Glass: Teaching CS0 with Alice. ACM SIGCSE Bulletin, 39(1), 213-217.

Reichert, R., Nievergelt, J., & Hartmann, W. (2001). Programming in Schools - Why, and How.

http://www.swisseduc.ch/informatik/karatojava/docs/programming_why_how.pdf Rieber, L. P. (1992). Computer-based microworlds: A bridge between constructivism

and direct instruction. Educational Technology Research and Development, 40(1), 93-106.

Rieber, L. P. (1996). Seriously considering play: Designing interactive learning environments based on the blending of microworlds, simulations, and games.

Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: a review and discussion. Computer Science Education, 13(2), 137-172.

Schumacher, J., Welch, D., & Raymond, D. (2001). Teaching introductory programming, problem solving and information technology with robots at West Point. Frontiers in Education Conference, 2001. 31st Annual, 2, F1B 2-7.

Soloway, E. (1986). Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850-858.

Soloway, E. (1993). Should we teach students to program? Communications of the ACM, 36(10), 21-24.

Stephenson, C., Gal-Ezer, J., Haberman, B., & Verno, A. (2005). The New Educational Imperative: Improving High School Computer Science Education.

http://csta.acm.org/Publications/White_Paper07_06.pdf.

Weinberg, J. B., White, W. W., Karacal, C., Engel, G., & Hu, A. P. (2005).

Multidisplinary teamwork in a robotics course. ACM SIGCSE’05, 446-450.

Wiedenbeck, S., & Ramalingam, V. (1999). Novice comprehension of small programs written in the procedural and object-oriented styles. International Journal of Human-Computer Studies, 51, 71-87.

Winslow, L. E. (1996). Programming pedagogy–a psychological overview. SIGCSE Bulletin, 28(3), 17-22.

Wolfe, D., Gossett, K. A., Hanlon, P., & Carver, C. A. (2003). Active learning using mechatronics in a freshman information technology course. Frontiers in Education, 2003. 33rd Annual, 3, S1D 24-28.

Wolz, U. (2001). Teaching design and project management with Lego RCX robots.

ACM SIGCSE’01, 95-99.

附錄一 教學講義

LEGO NXT 程式設計簡介

一、LEGO NXT 機器人套件

是一種可程式化的機器人零組件模組。可將樂高積木進行組裝,並藉由程式 語言對控制器下達指令,對機器人進行程式控制,是一種可以動手組裝,進行程 式設計與問題解決的工具。

http://mindstorms.lego.com

二、LEGO NXT 3D 模擬軟體

使用 Microsoft Robotics Developer Studio 2008 R3 及 Microsoft Visual Studio 2008 進行開發,是一模組化設計的程式設計教學工具,使用者不用撰寫複雜的程 式指令,只需要了解模組的功能,組合指令來進行程式設計、解決問題。因此可 以專注在程式設計的流程控制、問題解決與邏輯思考的訓練。

3D 模擬軟體的特點:所有程式執行的結果皆在 3D 模擬環境下進行,可以立 即看到程式設計的結果,並且可以單人單機進行操作,解決傳統實體機器人數量 不足,必須與人共用的限制。

1.撰寫程式的步驟

(1)使用文字編輯器開啟 new.cs 檔案,將程式撰寫其中。

(2)執行 run.bat 觀看程式執行結果,如果程式語法錯誤在 console 中會有錯誤 訊息,如果程式邏輯有錯誤,則機器車將會有出乎預期的結果。

(3)通常我們會對程式進行測試,視需要進行修正。

※new.cs 檔案的最後面,撰寫程式的區塊(將程式撰寫在此區塊中)。

※Console 畫面會顯示執行程式執行過程中的訊息,包含程式語法錯誤的訊息。

2.模擬軟體操作介面

※使用左下角的按鈕移動視野,也可使用滑鼠切換視角與視野拉近拉遠的功能。

模擬畫面

視角控制

執行程式

感應器資訊

機器人視角

程式碼第 1389 行有錯誤 編譯過程中有 1 個錯誤

3.基本操作指令

※模擬軟體指令表

指令 功能敘述

pilot_setMoveSpeed(x) 設定機器人行走速度為 x pilot_setRotateSpeed(x) 設定機器人旋轉速度為 x pilot_forward() 機器人向前走

pilot_backward() 機器人向後走 pilot_travel(x) 機器人行走 x 單位 pilot_rotate(x) 機器人旋轉 x 度 pilot_accrotate(x) 機器人準確旋轉 x 度

touch_isPressed() 用來偵測是否有碰撞到障礙物 light_readValue() 用來偵測機器人輪下物體的明亮度 sonic_getDistance() 用來偵測機器人與障礙物的距離 Button_ESCAPE_isPressed() 用來偵測是否按下停止鍵

操控機器人的指令已經過模組化,也就是說使用者只需要按照想要達成的事 情去設計流程、組合指令,有幾點需要特別注意:

(1)字母都是使用半形字,而且英文字大小寫是不同的。

(2)每行指令的結尾,須加上分號「;」代表這行敘述結束。

(3)程式註解是不會被執行的文字,通常用來說明程式碼的功能或目的。

單行註解使用符號「//」,多行註解則使用成對的「/* */」符號來表示。

[範例 1-1]直線折返車

◎學習目標:

這是我們撰寫的第一支程式,在這個場景中,我們要簡單地使用幾個指令,

來了解程式執行的流程,並且熟悉程式語言的基本語法,包含機器車的移動指令。

◎問題敘述:

這是一個辦公室裡的場景,地板上有一張圖,一台機器車,以及一些小物品

(這些物品都是可以互動的喔!)。

請你設計一段程式,讓機器車可以在地圖上前進、後退共折返 2 次,成功了 以後,請嘗試改變它行走的速度。

◎提示:

運用底下幾個跟移動有關的指令來進行操控,試試看有甚麼效果。

指令 功能敘述

pilot_setMoveSpeed(x) 設定機器人行走速度為 x pilot_forward() 機器人向前走

pilot_backward() 機器人向後走 pilot_travel(x) 機器人行走 x 單位

Pilot_forward()與 pilot_backward()兩個指令需要跟迴圈進行搭配,pilot_travel(x)

Pilot_forward()與 pilot_backward()兩個指令需要跟迴圈進行搭配,pilot_travel(x)