• 沒有找到結果。

第五章 結論與未來研究

5.2 未來研究

72

第五章 結論與未來研究

73

價格、躲避障礙物以達終點…等,更多的多元教材,讓學生在使用此系統學 習時能感到更有趣,更能沈浸於數位遊戲學習的環境中。

(3) 使用更多 C 程式語言標準函數庫

C 語言程式本身功能強大有很多的標準函數庫,建議在將來的研究中能 夠在教材上結合更多的函數庫的使用,除了能加強學習者學習更多函數庫的 使用方法,也能增加課程的豐富性,提高學習的廣度。

(4) 對戰模式

在學習上本研究所開發出的學習平台具有自我挑戰的特性,以及競競爭 的特性,學習者透過觀看他人的學習狀況,來刺激學習的動力,但如果能夠 加入即時的對戰模式給與學習者之間對戰,必然可以提升更高的學習動機。

(5) 支援不同語言

由目於前本研究系統上只支援 C 程式語言的學習輔助,未來可以增加 本系統的學習彈性,融入更多種的程式語言,讓學習者可以利用此系統學習 更多的程式語言。

74

參考文獻

[1] Amory A., Naicker K., J. Vincent, Adams C., "The use of computer games as an educational tool: identification of appropriate game types and elements", British Journal of Educational Technology v30 no4, pp.311-321, 1999.

[2] Lepper M.R. and Cordova D.I., "A desire to be taught: Instructional consequences of intrinsic motivation”, Motivation and Emotion v16 no3, pp.187-208, 1992.

[3] Becker, K. and Jacobsen, D. M., "Games for learning: are schools ready for what‟s to come? ", DiGRA 2005 2nd International Conference, „Changing Views:Worlds in Play‟. Vancouver, BC, Canada: Digital Games Research Association, 2005.

[4] Kirriemuir, J. and McFarlane, A.,“Literature review in games and learning.”, Retrieved June 11, 2004, from http://www.nestafuturelab.org/research/reviews/08_01.htm

[5] Prensky, M., “Don‟t bother me mom I‟m learning! St. Paul, MN: Continuum”, 2006.

[6] Ma, Y., Williams, D., Richard, C., Prejean, L., Liu, M., “Integrating video games with problem-based learning: a conceptual model.”, In P. Kommers and G.

Richards (Eds), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications 2006, pp.2364–2368, 2006.

[7] Pannese, L., Cassola, M. and Grassi, M., “Interaction with simulation tools:

analysis of use cases”, Graz, Austria: I-KNOW Conference, 2005.

[8] Howell, K., “First Computer Languages. Journal of Computing Sciences in

75

Colleges archive”, Vol. 18, No. 4, pp.317-331, 2003.

[9] Rajaravivarma, R., "A Games-Based Approach for Teaching the Introductory Programming Course", ACM SIGCSE Bulletin archive. No. 4, Vol. 37, pp.

98-102, 2005.

[10] Mayer, R.E., “Thinking, Problem Solving, and Cognition, Freeman Publishing, San Francisco”, CA, 1983.

[11] Feldgen, M. and Clua, O., "Games As A Motivation for Freshman to Learn Programming". 34th ASEE/IEEE Frontiers in Education Conference, Vol. 3, 2004.

[12] Prensky, M., Digital game-based learning. ACM Computers in Entertainment, Vol. 1, No. 1, pp. 1-4, 2003.

[13] Din, H.W.-H., "Play to Learn: Exploring Online Education Games in Museums", International Conference on Computer Graphics and Interactive Techniques, No.

13, 2006

[14] Squire, K., Jenkins, H., and Hinrichs, R., "Games-to-Teach Project: Envisioning the Next Generation of Educational Games", Educational Game Conference, Edinburgh, Scotland, 2002.

[15] Roussou, M., Learning by Doing and Learning Through Play: An Exploration of Interactivity in Virtual Environments for Children. ACM Computers in Entertainment, Vol. 2, No. 1, 2004.

[16] Csikszentmihalyi, M., Flow: The Classic work on how to achieve happiness.

New York:Harper Perennial, 1992.

76

[17] Jones, M. G., Creating engagementin computer-based learning environments.

Paper presented at the ITForum, 1998.

[18] Jones, M. G., "What Can We Learnfrom Computer Games: Strategies for Learner Involvement", Paper presented at the National Convention of the Association for Educational Communications and Technology, 1999.

[19] Hudson Soft, http://www.hudsonsoft.net/

[20] Bomberman , http://en.wikipedia.org/wiki/Bomberman

[21] GCC Compiler, http://gcc.gnu.org/

[22] GCC, http://zh.wikipedia.org/wiki/GCC

[23] Richard Matthew Stallman‟s Homepage, http://www.stallman.org/

[24] Prata, S.,: C Primer Plus.5th edition, SAMS, Indianapolis Indiana, 2004 [25] Prensky, M.: Digital game-based learning. McGraw-Hill, New York (2001) [26] Draper, S. W., "Analysing Fun as a Candidate Software Requirement, " Personal

and Ubiquitous Computing, Vol. 3, No. 3, pp. 117-122, 1999.

[27] Carroll, J. M., “Beyond Fun,” Interactions, Vol. 11, No. 5, pp. 38-40, 2004.

[28] Baker, A.; Navarro, E.O.; van der Hoek, "A. (2003) An experimental card game for teaching software engineering", Proceedings of 16th Conference on Software Engineering Education and Training, (CSEE&T 2003), pp.216 – 223, 2003.

[29] Baker, A.; Navarro, E.O.; van der Hoek, A., "Problems and Programmers: an educational software engineering card game", 25th International Conference on Software Engineering, 2003. Proceedings. pp.614 – 619, 2003.

77

[30] Baker, Alex; Navarro, Emily Oh; Van Der Hoek, Andre, "An experimental card game for teaching software engineering processes", Journal of Systems and Software, v 75, n 1-2, Software Engineering Education and Training, pp.3-16, 2005

[31] Carrington, D.; Baker, A.; van der Hoek, A., "It‟s All in the Game: Teaching Software Process Concepts", Proceedings 35th Annual Conference Frontiers in Education, F4G-13 - F4G-18, 2005.

[32] Kaur, D.; Haar, J., "Fuzzy logic based Euchre game design on palm PDA", Fuzzy Information Processing Society, NAFIPS, pp.693 -699, 2005

[33] Chang, W.C. and Chen, Y.L., "Cultivating Operating System Process Concept with Card Game", ICPPW 2007. International Conference on Parallel Processing Workshops, pp. 23 – 23, 2007

[34] Kim S.B., Choi S.K., Jang H.S., Kwon D.Y., Yeum Y.C., and Lee W.G.,“Smalltalk Card Game for Learning Object-Oriented Thinking in an Evolutionary Way”, OOPSLA‟ 06, pp.683-684, 2006

[35] Goschnick,S., and Balbo, S., "Game-first Programming for Information Systems Students, " Proceedings of the Second Australasian Conference on Interactive Entertainment, Sydney, Austria, pp. 71-74, 2005.

[36] Goschnick, S., “An Object Lesson in OOP-A General Board Game Class,”

Proceedings of the first Australian Software Developer Conference, Sydney, Australia, 1992.

[37] Natvig, L., and Line, S., "Age of Computers:"An Innovative Combination of History and Computer Game Elements for Teaching Computer Fundamentals, in

78

Proceedings of FIE 2004 , Lasse Natvig, Steinar Line and Djupdal, 2004.

[38] Nevison, C., and Wells, B., "Using a Maze Case Study to Teach Object-Oriented Programming and Design Patterns, " Proceedings of the sixth conference on Australasian computing education, pp. 207-215, 2004.

[39] TurboC,http://www.sandroid.org/TurboC/

[40] Dev C++,http://www.bloodshed.net/devcpp.html

[41] Visual C++,http://msdn.microsoft.com/en-us/visualc/default.aspx

[42] Boland C++,http://www.codegear.com/products/cppbuilder

[43] Scratch,http://scratch.mit.edu/

[44] NetLogo, http://ccl.northwestern.edu/netlogo/

[45] StarLogo, http://education.mit.edu/starlogo/

[46] JavaBomberman, http://sourceforge.net/projects/javaBomberman

[47] Jxpose, http://sourceforge.net/projects/jxpose

[48] JDIC, https://jdic.dev.java.net/

[49] JFreeCharts, http://sourceforge.net/projects/jFreeCharts

[50] Erich, G., Richard, H., Ralph, J., and John, M. V.,: Design Patterns : Elements of Reusable Object-Oriented Software. Addison-Wesley.

[51] Yang, L., "Add dynamic Java code to your application," JavaWorld.com, 2006.

79

附錄一 問卷調查量表

本問卷是針對此軟體所做的調查,希望各位試用完後,能夠花點時間填選問卷,

謝謝!!

選項說明: A:非常不贊成 B:不贊成 C:普通 D:贊成 E:非常贊成

A B C D E

1.第一次看到這樣的系統 □ □ □ □ □

2.我覺得提供的功能容易使用 □ □ □ □ □

3.功能按鍵容易找到 □ □ □ □ □

4.學習過程容易 □ □ □ □ □

5.此系統提供好的程式學習知識 □ □ □ □ □

6.此系統提供好的學習環境 □ □ □ □ □

7.此系統能幫助學習 □ □ □ □ □

8.此系統能漸進式的學習 □ □ □ □ □

9.此系統有很清楚的回饋資訊 □ □ □ □ □

10.喜歡使用此系統學習 □ □ □ □ □

11.此系統能夠增加學習興趣 □ □ □ □ □

12.願意花較多的時間在使用此系統學習 □ □ □ □ □

13.願意使用此系統來輔助傳統教學方式 □ □ □ □ □

14.願意使用此系統做為學習程式的第一步 □ □ □ □ □

15.此系統比傳統教學方式有趣 □ □ □ □ □

16.學習過程感到有趣 □ □ □ □ □

基本資料

性別 男 □ 女 □

年齡 18 □ 19□ 20□ 21□ 22 □ 22 以上□

年級 大一□ 大二□ 大三□ 大四□ 研一□ 研二□

修過 C 語言次數 0□ 1□ 2□ 3□ 4□ 5□ 6□ 7□

對那些概念較有幫助(多選) 一維陣列□ 二維陣列□ if-else 敘述□

switch-case 敘述□

80

附錄二 英文論文一

發表於 Edutainment 2007, Hong Kong, China, June 11-13, 2007, pp.433-444

An Interactive Bomberman Game-Based Teaching/ Learning Tool for Introductory C Programming

Wai-Tak Wong, Yu-Min Chou

Deparment of Information Management, Chung Hua University Hsinchu, Taiwan

*wtwong@chu.edu.tw, yuminchou@gmail.com

Abstract. Edutainment teaching/learning tools must be very “entertaining”. Otherwise, the tools will lose its attraction soon or later. In order to become formal tools in everyday teaching/learning process, they must be something more and also “something less” than an ordinary computer game in some aspects. We report our design and development of the proposed interactive Bomberman game-based teaching/learning tool that we are authoring. It brings modern education concept in concert with the classical teaching and laboratory work. While are reading/writing C codes in the proposed game-based environment, their C codes will control the movement of the Bomberman accompany with game music.

This vivid learning environment can engage students spending their precious time for extensive practice since students have highly motivation to win the game. We hope that we have shown a new path for educational practice with computer games for teaching C programming course.

Keywords: Edutainment, Bomberman, Interactive game, Programming Course, C Programming language

1 Introduction

The real issue of the first computer language is not what language to teach first but how to approach the teaching of the language [1]. The syntax and language constructs are really only a very small part of programming. The programming courses aim at building an effective foundation for the development of programming skills by emphasizing problem solving, logical thinking and programming process [2].

Problem solving and logical thinking involve a series of mental operations directed toward some goal [3] while programming process involves a series of computer operations. However, many students have become so weak in the development of learning strategies since their elementary education, especially for problem solving and logical thinking. Therefore, the challenge of the instructors faced is that a significant number of their students are not highly motivated to learn the programming language.

Computer games have become an integral part of the popular culture in modern societies. Moreover,

81

“game-based programming” is the latest buzz word in the computer science educational curriculum.

Research [4] shows that students today have a totally different way of learning – react more to interactive learning. If they are not entertained while they learn, the instructor has lost them. However, much of content that needs to be learned by students today lacks of motivation to them. The word

“boring”, “dry” and “too technical” often crosses their lips [5]. Finally, it leads to frustration. A good game helps students to enhance their learning techniques, such as learning by doing, learning from mistakes, goal-oriented learning, discovery learning, task-based learning, question-led learning, and etc [6]. Although game-based learning has been made a good progress in academic research [7], using computer games for educational purposes has been rather uncommon. Although learning by playing has been reported to education [8], nevertheless, it is still less popular in post-elementary education.

In this paper a new approach to the student activities that supplements the ordinary auditorium lectures is proposed. We apply a computer game, called Bomberman, to develop a C programming language course. Bomberman is a strategic maze-based computer game originally developed by Hudson Soft [9]. The original game was published in 1983 and new games in the series are still being published in this day. The current version is the fifth generation called “Bomberman Land”. In this approach, students explore the problem in the form of games. The games-based approach provides an enriched interactive learning environment by asking students to come up with appropriate solutions to solve problems. The rest of paper is organized as follows. Section 2 describes how we teach introductory c programming language course in the past. Section 3 outlines the software design of the proposed Bomberman game-based teaching/learning tools. Section 4 shows some implementations of our tool. Then, we conclude with discussion of current and future work.

2 How to Teach Introductory C Programming Language

C, a high-level programming language, is powerful, fast, compact and portable. After three decades of its birth, C language is still one of the most important and popular programming language today. In practice, there are seven steps to write a C program [1, 10]:

(a) Discover and understand the problem (b) Design the program

(c) Write the code (d) Compile (e) Run the program

(f) Test and debug the logic error

(g) Verify that the problem has been solved

According to these seven steps, we set up our teaching procedure. First of all we teach the skill of mastering problem solving to the student. Secondly, we emphasize the logical thinking of how to solve the problem. Then, we teach the syntax and language constructs of C programming language. Followed

82

by that, we emphasize how to translate our logic thinking into C codes. After the introduction of compiling, linking and loading process, we teach how to use the integrated development environment such as Microsoft Visual Studio to compile and run the program. Also, we demonstrate some fundamental debugging procedure.

However, this traditional teaching approach cannot keep our students‟ engagement, not even an hour – certainly no shouting with glee at their successes and no desire to overcome their failures [5]. It is because there is no fun in the formal teaching. Draper [11] suggests that fun is associated with playing for pleasure with their own sake through freedom of choice. Carroll [12] summaries “fun” as

“Things are fun when they attract, capture, and hold our attention by provoking new or unusual emotions in contexts that typically arouse none, or arousing emotion not typically aroused in a given context.” To provide an engaging learning environment, keeping students‟ attention by providing fun may be a way not to lose our students. Edutainment may be a solution for teaching introductory programming courses.

Many researchers have used virtual reality technology as a modern tool for fun learning of Physics Biology and even Molecular Biology [13,14]. Currently, researchers have begun to consider the edutainment approach to teach programming course. Rajaravivarma [2] proposed a game-based approach for teaching the introductory programming course. He used two broad categories of game, word games and number games, in his course materials. The course started from some simple games that utilized basic programming skill and additional programming skills were required through the course progress. However, all proposed games are text-based, not interactive and with no game music.

Goschnick and Balbo [15] proposed to motivate students by giving assignments of 2D board game such as Snakes and Ladders, Ludo and Checker for the Information Systems students. However, those students had to have first well learned the SG_Board library [16] and then they could deliver the assignment. SG_Board Library is a generic board game class developed in Java language. Their approach looks like a game programming course more than an introductory programming course. The board games supported by the library are mainly for the primary school students to play. Therefore, students who take the course may not really enjoy the game that they have developed. Nevison and Wells [17] presented a case study based on a maze as an example that provided a complex framework to teach an introduction course in Computer Science. They found out that using different structures for maze could be a rich source for illustrating design patterns. Although they claimed that one of the authors had used this concept in an introductory Java programming class with great success, what they proposed was an initial framework or a stretch of their work. In the next section, we are going to present our interactive Bomberman game-based teaching/learning tool. Our tool has the following characteristics: interactive, good graphics, fascinating music in different stage, applying constructive learning theory and especially learning with fun.

83 3 Software Design

From the opinion of Din [6], a successful education game has the following five main factors:

(a) The game itself must be immersive.

(b) The playability of the game must be elevated.

(c) The game must be attractive, challenging, and competitive.

(d) The game should offer a goal or several goals for players to achieve.

(e) The game should allow players to track and manage their progress.

Based on the aforementioned characteristics and successful factors, we design our Bomberman teaching/learning tool. There are seven components in the proposed tool shown as follows:

(a) Road Map – an overview of the teaching plan of selected chapters from the text book over the semester.

(b) Presentation – provide a platform for reading the teaching materials

(c) Example – explore the fundamental programming paradigms through the demonstration of the Bomberman game.

(d) Exercise – structured lab works for students to practice the fundamental programming concept while playing the Bomberman game.

(e) Test – evaluate the learning result of students through problems solving while they are playing the Bomberman game.

(f) Discussion – Provide a communication platform for students to feed back.

(g) Progress Evaluation – report the achievement of students by comparing the benchmarks of participants‟ progress to point out personal learning developments.

3.1 Welcome Page

In order to give our students an exciting beginning, we provide a welcome page with Musical Instrument Digital Interface (midi) game music called “battle” as shown in Fig. 1. The welcome figure we used comes from an open source project “javaBomberman” administrated by Michel [18]. There are eight main functions including the seven aforementioned components and the exit function for manipulating the proposed C programming teaching/learning tool.

3.2 Road Map

In order to give our students an overview of the programming course, we provide a road map as shown in Fig. 2. Each castle contains the course materials of a chapter to learn, examples to explore, exercises to practice and tests to pass. When the cursor falls at the castle, a window will be pop up to show the brief description of that chapter. When the student click the “Start” button, the sprite “Bomberman”

starts to go forward to the next castle and experience the scenario of the next level if the student has

84

already won the game in the pervious chapter. Otherwise, it stays on the same place. If the

“Bomberman” reach the exit, it means the student has gone through all chapters.

3.3 Presentation

We provide a function to let the instructor present the course materials in slideshow. The slideshow program was rewritten from the open source Jxpose [19]. It is a presentation making software, a

"Microsoft PowerPoint" like software written in Java. We have integrated the Jxpose software into our tool. If the student have entered the first castle in the aforementioned Road Map and then hit the left side “Presentation” button, then the slideshow of the first chapter course materials will be presented on the screen. It also provides a full screen show capability. Fig 3 shows the slides of the chapter 1 prepared from our textbook [10].

Fig. 1. The welcome page including eight buttons for manipulating the proposed C programming teaching/learning tool.

3.4 Example

Examples can enrich the teaching contents and engage the learners. Since learning happens when learners work with the materials, we provide a platform to let students learn through example by reading (in this section) and writing new code (in the next two sections). The code is presented in the context of the game as a small piece of code that controls the movement of the sprite, “Bomberman”.

The success of the change is directly determined by the behavior of the sprite in the game world.

Moreover, the examples and the exercise can ignite students in the habit of learner-to-learner interaction, collaboration and mutual assistance.

In our tool, we provide a component „Example‟ which contains two sub components: “Code Reading”

and “Run”. Students can switch to another subcomponent by selecting the tab of the sub component‟s

85

frame. In the „Code Reading‟ sub component as shown in Fig. 4 we demonstrate the description of the example and the sample function written in C language that works for that example. In the „Run‟ sub component as shown in Fig 5 a “Bomberman” locates in the top left corner of a maze which consists of a grid of floors, blocks and trees. The walker “Bomberman” in the maze can only move into floor but not blocks and trees. The bottom left corner is designated as the goal to be reached to finish the example. Once the student click the “start” button, the bomber will start to walk according to the direction of the “moveit()” sample function. Apparently, the walker can reach the goal by continuously going down or going right if it can move forward. When the walker reaches the left corner, a popup window presents to notify the achievement. Then the walker stops at the bottom left location. The student can stop the movement of the walker anytime and also change the speed of movement by clicking the “Decr. Speed” and “Incr. Speed” button. When the speed is changed, the label of “SPF”

button which means the millisecond per frame is also updated. Each button press causes 25 milliseconds per frame increment or decrement. Current setting is 250 milliseconds per frame.

Fig. 2. The “Road Map” component of the C programming teaching plan.

Fig. 3. The “Presentation” component” provides the slideshow functionality to demonstrate the C programming teaching material.

相關文件