第五章 結論與未來研究
5.3 未來研究
在未來研究上,建議可以從下列幾個方向思考。
z 編輯介面
由於在實驗的過程中,有些使用者覺得系統的編輯介面不夠友善,一般的 編輯工具如 Dev C++等的介面,一些 C 程式語言的保留字與識別字或是註解 等,有變換顏色以利使用者區別的功能,使用者也因而習慣傳統程式編輯軟體 的介面,有鑑於此,期望未來能夠改良編輯介面,能將軟體版面更加美化。
z 套用到不同的程式語言課程上
由於目前本研究所建置的系統只有應用於 C 程式語言的學習上,未來期望 能夠增加本系統的學習彈性,融入更多種的程式語言,讓學習者可以利用此系 統學習更多的程式語言。
參考文獻
[1] 王子玲(民 92)。運用合作學習於程式設計專題教學之行動研究,國立臺灣 師範大學資訊教育研究所,台北市。
[2] 牟英傑(民 95)。利用 H.323 在多人線上遊戲中建立身歷其境的音效通訊,
中華大學資訊管理所,新竹市。
[3] 柯建盛(民 95)。語音在網路遊戲之應用,中華大學資訊管理所,新竹市。
[4] 高宜敏(民 90)。合作競爭式的網路分享建構學習環境,國立交通大學資訊 科學研究所,新竹市。
[5] 張桂悅(民 90)。線上合作學習與課程播放系統,國立臺南大學資訊教育研 究所,台南市。
[6] 許湧坤(民 92)。網路合作學習模式應用於「程式設計」課程之研究,銘傳 大學資訊管理所,桃園縣。
[7] 陳建豪(民 94)。支持 VoIP 之巨量多人線上遊戲架構,中華大學資訊管理 所,新竹市。
[8] 黃有川(民 92)。高職程式設計課程網路學習環境建置與應用,銘傳大學資 訊管理所,桃園縣。
[9] 黃俊仁(民 89)。網路合作學習系統與小組互動觀察工具,國立中央大學資 訊工程所,桃園縣。
[10] 廖韋傑(民 96)。智慧型線上合作學習平台之規劃與建置,國立暨南大學資 訊管理所,南投縣。
[11] Bjorck, U. (1999): "Theoretical foundations of Computer Supported Sustainable Learning Processes (CSSLP)", in U. Nulden & C. Hardless (eds.) CSCL, A Nordic Perspective. Papers From the Nordic Workshop on Computer Supported Collaborative Learning, pp. 11–17, Goteborg, Sweden.
[12] Boland C++, http://www.codegear.com/products/cppbuilder
[13] Butcher, D., Li, X., Guo, J. (2007): Security Challenge and Defense in VoIP Infrastructures. In: IEEE Transactions on Systems, Man, and Cybernetics-Part C: Application and Reviews, Vol. 37, No. 6, pp. 1152-1162
[14] Carroll, J. M. (2004), “Beyond Fun,” Interactions, Vol. 11, No. 5, pp. 38-40.
[15] Dev C++,http://www.bloodshed.net/devcpp.html
[16] Draper, S. W. (1999): "Analysing Fun as a Candidate Software Requirement ", Personal and Ubiquitous Computing, Vol. 3, No. 3, pp. 117-122.
[17] Fine - Tuning Voice over Packet Services, http://www.protocols.com/papers/voip2.htm
[18] GCC Compiler, http://gcc.gnu.org/
[19] GCC, http://zh.wikipedia.org/wiki/GCC
[20] Liu, H. (2000): "Voice over IP signaling: H.323 and beyond", Petros Mouchtaris, Telcordia Technologies, IEEE Communications Magazine, vol. 38, pp. 142-148.
[21] NetBeans Collaboration Project: Developer Collaboration, http://collab.netbeans.org/
[22] Prata, S. (2004), C Primer Plus.5th edition, SAMS, Indianapolis Indiana.
[23] Richard Matthew Stallman’s Homepage, http://www.stallman.org/
[24] Sun C.T., Chou C. (1996): “Experiencing CORAL: Design and Implementation of Distant Cooperative Learning,” IEEE Transactions on Education, Vol. 39, No. 3, pp. 357-366.
[25] Turani, A., Calvo, R. (2006): "Sharing Synchronous Collaborative Learning Structures using IMS Learning Design", 7th International Conference on Information Technology Based Higher Education and Training (ITHET '06), Ultimo, NSW, pp. 25-34.
[26] Turbo C, http://www.sandroid.org/TurboC/
[27] Visual C++, http://msdn.microsoft.com/en-us/visualc/default.aspx
[28] Voice over IP 101 Understanding the Basic Networking Functions, Components, and Signaling Protocols in VoIP Networks, 2007, pp. 9-11.
http://www.juniper.net/solutions/literature/white_papers/200087.pdf
[29] Wong, W.T., and Chou, Y.M. (2007): An Interactive Bomberman Game-Based Teaching/Learning Tool for Introductory C Programming. In: conference of Edutainment 2007, Vol. 4469, pp. 433-444, Springer Berlin / Heidelberg.
[30] Zhang Ge, Hillenbrand, M., Muller, P. (2005): "Facilitating the Interoperability among Different VoIP Protocols with VoIP Web Services", First International Conference on Distributed Frameworks for Multimedia Applications
(DFMA’05), pp. 39-44.
附錄 A 問卷調查量表
本問卷主要是針對此系統使用過後的滿意度,希望透過您的意見,以了解 系統在功能上的優缺點並加以改進。本問卷採用不記名方式作答,所有資料僅 供學術研究分析之用,絕對保密,請您詳細閱讀每題的敘述後作答,謝謝您的 幫忙。
基本資料
性別 □男 □女
年齡 □18 □19 □20 □21 □22 □22 以上
年級 □大一 □大二 □大三 □大四
您家中或宿舍是否有電腦? □是 □否 您家中或宿舍是否可上網? □是 □否
您學習電腦的時間約有幾年? □半年以內 □1~2 年 □2~5 年 □5 年以上 您每天使用電腦大約多少時間? □0~2 小時 □2~4 小時 □4~6 小時 □6 小時以上 您每週使用電腦大約多少時間? □0 小時 □0~7 小時 □8~14 小時 □15 小時以上 您修過 C 語言次數 □0 □1 □2 □3 □4 □5
您撰寫過幾個 C 語言程式 □未曾撰寫過 □1~5 □6~10 □11~15 □15 以上 您學習 C 語言程式,喜歡與同學討
論程式嗎?
□是 □否
測驗中的程式設計專案共完成幾項? □0 □1 □2
完 不 沒 同 完 全 同 意 意 全 不 意 見 同
同 意
題號 問題內容
意
1. 我覺得提供的功能容易使用 □ □ □ □ □
2. 我覺得功能按鍵容易找到 □ □ □ □ □
3. 我覺得學習過程容易 □ □ □ □ □
4. 我覺得即使沒人指導我使用此系統,我一樣能使用此系統 □ □ □ □ □ 5. 我覺得即使我不曾使用過類似的學習系統,我一樣能使用
此系統 □ □ □ □ □
6. 我覺得只要我有系統操作手冊可參考,我就能使用此系統 □ □ □ □ □ 7. 我覺得如果操作上遇到問題,有人可以協助我,就能使用 □ □ □ □ □
此系統
8. 此系統提供互動高的學習環境 □ □ □ □ □
9. 此系統能幫助學習程式除錯能力 □ □ □ □ □
10. 此系統能幫助學習程式溝通能力 □ □ □ □ □
11. 此系統能幫助學習程式撰寫能力 □ □ □ □ □
12. 此系統能幫助學習開發程式能力 □ □ □ □ □
13. 此系統有很清楚的編譯及除錯資訊 □ □ □ □ □
14. 聊天室(Chat Room)對於你在與組員溝通互動時有幫助 □ □ □ □ □ 15. 語音對話功能視窗(Voice Dialog)對於你在與組員溝通互動
時有幫助 □ □ □ □ □
16. 與小組成員共同撰寫程式對你開發程式的品質更好 □ □ □ □ □ 17. 與小組成員共同撰寫程式對你開發程式的時間較短 □ □ □ □ □
18. 喜歡使用此系統學習 □ □ □ □ □
19. 此系統能夠增加學習興趣 □ □ □ □ □
20. 此系統會增加學習程式設計的認真度 □ □ □ □ □
21. 此系統比傳統教學方式有趣 □ □ □ □ □
22. 此系統學習過程感到有趣 □ □ □ □ □
23. 此系統比程式開發的 IDE 有趣 □ □ □ □ □ 24. 小組對於 Leader(領隊)的選擇在開發程式很重要 □ □ □ □ □ 25. 小組對於彼此信任對程式開發很重要 □ □ □ □ □ 26. 小組對於溝通順暢對程式開發很重要 □ □ □ □ □ 27. 願意使用此系統來做為協助小組合作學習的工具 □ □ □ □ □ 28. 願意花較多的時間在使用此系統學習 □ □ □ □ □ 29. 願意使用此系統來輔助傳統教學方式 □ □ □ □ □ 30. 與小組成員同步撰寫程式可以幫助你解決什麼問題?
_______________________________________________
31. 聊天室(Chat Room)對於你在與其他組員溝通互動時有什麼幫助?
_______________________________________________
32. 語音交談服務對於你在與其他組員溝通互動程式設計概念時有什麼幫助?
_______________________________________________
33. 程式設計課程的進行,希望增加什麼樣的元素到課程教學方面?
_______________________________________________
34. 程式設計教學,希望能夠帶來什麼樣改進的地方?
_______________________________________________
註:IDE=Integrated Development Environment,整合開發環境。將編輯器、編譯 器、連結器、除錯器、執行等功能整合在一套程式開發軟體中。
附錄 B 英文論文投稿(ㄧ)
發表於 International Conference on Web-based Learning, Jinhua, China, August 20-22, 2008, pp. 178-186. The Best Student Paper Award.
71
Collaborative Learning Tool applying to C programming language
Wen-Chih Chang and Kuen-Chi Chen
707, Sec.2, WuFu Rd., Department of Information Management, Chung Hua University Hsihchu, Taiwan, R.O.C.
[email protected], [email protected]
Abstract. Collaborative learning, which includes activities of interaction between learners, share knowledge each other, and cooperate in finishing some tasks, is a popular research topic in the past decades. The essence of collaborative learning is that active participation is significant in the learning process and that learners share the valuable knowledge to other learners in traditional classroom. Nowadays, computers and information technology (IT) become a general component on a lot of aspects of education. The combination of collaborative learning and information technology is commonly called “Computer Supported Collaborative Learning” (CSCL), and that is currently having many attention. Therefore, we have developed a friendly server / client tool, which embedded voice and text chat communication to support collaborative learning via internet. Learner can study from group's collaborative learning, find and solve the problem of C programming language designing through communicating and discussing. Besides, it makes users gained the experience and knowledge of program designing efficiently.
1. Introduction
The traditional way of learning C programming language [1], students' individual learning is the main method. In traditional learning, students are stipulated to complete the teacher's designated homework after class. In individual learning, every student must proceeds at their own pace to accomplish the study goal without other classmates' help.
But in these processes, the students may encounter a lot of problems, for example, they may have some trouble in designing the structure of program, or they make some errors and cannot solve the problem in the process of compile and debug. These problems will make learners lose the interest of C programming language, and they may give up to studying.
Collaborative learning has offered a chance to learners working together to reach a common goal. And collaborative learning uses a way of group-learning, with classmates learning together to increase their own and other classmates' awareness [2, 3]. Learners’ co-operation and teamwork always support collaborative learning.
Through enhancing information sharing and supporting the group process, effective collaborative learning might be reached. Improving the learner’s participation and ameliorating join actively in knowledge construction by assisting creation, exchange, and analysis of information during learning group interactions, it will be made possible to increase the effectiveness of collaborative learning [4, 5 and 6]. During the collaborative learning process, all teammates will benefit from each other [7]. The approach to education that is more suitable to the educational environment through group collaborative learning. In this paper, we introduce the system architecture which we have developed, that include audio and text information communication to support co-operation and teamwork, and it has program co-editor interface [8].
The rest of this paper is organized as follows: Section 2 presents related work about our research. Section 3 introduces the main research of the system architecture implementation. Section 4 we will discuss with the difference of other collaborative software and our tool. Section 5 concludes this paper and discusses the future works.
2. Related Work
In this section, we are going to introduce the related work about this paper. First, we will present the theoretical background about collaborative learning. Collaboration defined "working together to complete the shared goals" [9].
Collaborative learning allows students to share their knowledge and information each other within the
problem-solving process [10]. Second, we present the ways of teaching / learning C programming language. At last, we will talk about the theoretical foundations of VoIP, the technology we use in our system.
2.1 Collaborative learning
Studies have shown that collaborative learning procedures have proved to be more effective than traditional instructional methods for student's learning and academic achievement process. It also improves participants’
satisfaction with the learning [4, 11]. Learning is sharing, and more shared that is more learned. It is even supposed that students are learning as much from each other as from teaching material of course or from the teacher in the class. In America, the studies have also presented that students who usually use the collaborative learning procedures in class, they have more interaction with each other, and they are more satisfied with their learning experiences. Besides, group-oriented collaborative learning, reflection and connection enhance learning.
Collaborative activities are one way of learning by allowing individuals to exercise, verify and improve their mentality through questioning, discussing and sharing information during the problem-solving process [4]. And then, collaborative learning has an obvious potential to improve critical thinking, creative thinking, elaborative thinking, social communication, and social skills (leadership, decision-making, trust-building, conflict-management, etc) [6, 12].
2.2 Teach / Learn C programming Language
C programming Language is a general-purpose, structured, procedural and imperative computer high-level programming language. It developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. Although C was exploited in last three decades, it is also one of the most important and popular programming language at this time [1]. In practice, Students need to know how to [13]:
(1) Discover and understand the problem (2) Work toward a solution
(3) Rework the solution into code (4) Enter the code into the computer (5) Debug syntax errors
(6) Test and debug logic errors
(7) Verify that the problem has been solved
Through these seven steps, students can learn logical thinking and how to solve the problem of C programming language. Besides these steps, students have to learn the syntax and structures of C programming language. Finally, students will accomplish more tasks and improve problem-solving skills when they master these steps.
2.3 Voice over Internet Protocol
Voice over Internet Protocol (VoIP) is a protocol optimized for the transmission of voice through the Internet or other packet switched in networks [14]. And VoIP is a technology that allows users to make telephone calls using a broadband Internet connection to take the place of an analog phone line. Through the low cost feature of the internet usage, VoIP can decrease the telephone call costs comparing with the traditional PSTN (public-switched telephone network) system [15]. Furthermore, it can also mend distorted audio, echo and loss of the voice data on the process of transmission [16]. Since the VoIP technology was developed, many VoIP protocols have been proposed. H.323 is considered as the first generation VoIP protocol [17].
In June 1996, ITU (Internet Telecommunications Union) began to institute relevant communication protocols to H.323 [18], it can operate Video Telephony in Package-Based networks and use on the Multimedia Conferencing, etc. The main architecture of H.323 includes H.323 Terminal, Gateway, Gatekeeper, and MCU. The purpose is that can make VoIP to transmit the voice data through RTP (Real-time Transport Protocol) and incorporate the PSTN, Integrated Services Digital Network (ISDN) and Broadband ISDN (B-ISDN) in the telecommunication system [19].
Gateway is a channel that connected with other communication systems, and it is responsible for the exchange of the
73
network package and conversion of circuit exchange. Gateway provides the functions about
Signaling Translation and Decode. Gatekeeper is the administrator in H.323 system, and its main function includes Address Translation, Admission Control and Bandwidth Management. Besides, it also manages the H.323 system of Terminal, Gateway and MCU. MCU offers the function of multi-communication, and it consists of MC (Multipoint Controller) and MP (Multipoint Processor); MC manages about the process control, MP is responsible for decode, encode and mix of audio or video [20].
In next section, we are going to present our system architecture of the collaborative learning tool, and introduce the major function about the tool.
3. System Architecture
Our system architecture is composed of voice server and master server (see Fig. 1). Considering the collaborative learning efficiency, we designed three users a team which includes one team leader and two partners to use our tool.
Fig. 1. System architecture
Master server mainly controls the learner information, such as learner portfolio and information transmission. We list the functions as follows:
(1) User Login/Logout: When user login the system which will record the IP address and learner information.
After the user logout, the system will close the editing window and terminate the connection.
(2) Login User: We designed three people in a study group which is consisted of group leader and two group members. Because the main purpose of our system is to assist the group's work and cooperate together, to finish their homework and task.
(3) Record and Communicate the Message in the Chat Room: Users can discuss how to program or what kind of function should be used in the chat room. Master server will broadcast the instant message and record the message in a text file which will be stored in system record file permanently.
(4) Dispatch the Program Editor Sequence Automatically: Master server dispatches the users with login order, the user has his/her own editing interface.
(5) User Synchronous Programming: User can edit the program in each editing window; the user program will be broadcasted to the team member after a period of time.
(6) Record the User Program Progress Automatically: The system will record user's program progress automatically in a period of time, in case that the users disconnect abnormally to lose the information.
(7) Connecting to Voice Server: Connecting and recording the voice server IP address to support voice communication service simultaneously.
A voice server supplies user communicates with voice and records the discussion. Voice server applied VoIP (Voice over IP) technique to connect all the users in real time. Voice communication is divided into group talk and private talk. Group talk furnishes users voice talk with other team members. Private talk supplies one to one discussion to solve the program writing problem.
In Fig. 2, this is our tool interface, the description are in the following:
(1) Editor: The upper side has three columns for three users to edit the program. The left window is designed for team leader, the other two windows for the team members. The system will distribute the user interface automatically. In Fig. 1, team leader can arrange the sub-tasks for the other two teammates. For program writing, there will be one main program and other functions. Team leader handles the main program, the other two teammates focus on functions writing. The system will record user’s program progress automatically in a period of time, in case that the users disconnect abnormally to lose the information. During the process of program writing, the user can't edit other members’ editor besides his own editor.
(2) Chat Room: Chat room plays a role to supply a text typing mode for uses who like to copy the code and communicate the programming problems. In programming course, some users have problems using the commands and variables. Some problems are suitable for text mode and some are proper to talk with voice directly. The similar situations occur in MSN communication in our daily life. Sometimes, people just like talk or type text when discussion. Therefore, we provide voice and text tools for communication.
(3) Menu Bar: There are some functions in our menu bar. First function is [File] which is supported for users to import or save the program file. Users can exit the system by [Exit].When users completed the program, they can push the [Compile] to compile the code. [Voice Dialog] assists the users to talk with voice. For example, users can choose group talk, private talk (one-to-one talk) or suspense talk. If the users have questions using the tool, they can get the related information in [help] function bar.
Users can program cooperatively with the other two teammates or learn how to write a simple program by imitating other codes. Fig. 3 shows the cooperative programming. All the team has to write the program. Team leader is responsible of main program. The second user is in charge of user_request( ) and print_menu(). Third user writes draw_triangle( ) and draw_rectangle( ). They can discuss and teach each other. Fig. 3 demonstrates the imitating programming example. Team leader completed a simple program. The other two users follow and learn how to code.
4. Discussion
There have some similar collaborative tools developed in last 5 years, like NetBeans Collaboration Project, it’s a module named “Developer Collaboration” [21]. This module emphasizes that users can collaborate and share their work with Sun engineers or their team members simultaneously. And users also can communicate easily with each other and real time file sharing. Users can enter a message and then send it to the other participants in the conversation. And users can enter messages in the chat input pane in several formats: Plain text, Java, HTML, XML.
Furthermore, user can share files with other members within a conversation. Files are shared using the Shared Files collaboration channel visible within each conversation window.
Our tool has some elements that are differ from the above-mentioned tool. Now, we will address some difference elements as follows:
(1) Voice communication: Besides text conversation, we also provide voice communication mode to improve the efficiency of communication. Because users communicate with each other in text mode, they may type too many word for conversation, and they will waste too much time. For this reason, we join voice communication mode to assist with text mode.
(2) Share information faster: Our tool can present users’ mutual editor panel more immediately, and show each member's progress. It does not need to open other windows or channels to share the progress and information presently in addition, and then it can be faster to discover and solve the problem.