中 華 大 學 碩 士 論 文
題目:合作學習工具應用於C程式語言
Collaborative Learning Tool applying to C Programming Language
系 所 別:資訊管理學系 碩士班 學號姓名:M09510016 陳坤祺 指導教授:張 文 智 博 士
中華民國 九十八 年 七 月
合作學習工具應用於 C 程式語言
中華大學 資訊管理學系
摘 要
隨著電腦和資訊科技的發達,利用電腦與網際網路來支援學習活動也愈來 愈普遍,近幾年已經成為線上學習的熱門主題之一。合作學習包含了學習者之 間的互動,學習者互相分享知識,並且合作去完成某些任務。合作學習主要的 目的是讓使用者能夠在學習的過程中積極的參與,在課堂上互相分享有用的知 識,進而從同儕中獲得更多有價值的知識,使學習者能夠更有效的學習 。因此,
本研究開發一個合作學習的工具,利用 Server / Client 的架構,結合文字交談與 語音交談的功能,讓使用者能夠在網際網路的環境之下,共同合作來完成一些 C 語言的專案,並一起解決在程式設計的過程中所遇到的問題。學習者可以在 小組合作學習的過程當中,除了互相分享自己所擁有的知識,也可以即時學習 到新的知識,獲得一些程式設計上的經驗,並增進解決問題的能力。本研究目 的是為了能夠提升學生學習的動機,讓他們能夠積極的參與並學習程式設計的 知識與經驗。
關鍵詞:合作學習, 電腦支援合作學習(CSCL), C 程式語言, Problem-Solving, VoIP
研究生:陳坤祺 指導教授:張文智 博士
Collaborative Learning Tool applying to C Programming Language
Department of Information Management, Chung-Hua University
ABSTRACT
With the development of computer science and information technology (IT), it is more and more common to make the use of computer and internet to support the activity of studying, there have already become one of the hot topics of e-learning in recent years. Collaborative learning includes the activities of interaction between learners, and learners share the information and knowledge with each other, and cooperate in finishing some tasks. The main purpose of collaborative learning allows users to participate positively in the course of study, and share useful knowledge each other to obtain more valuable knowledge to make the learner studying more and more effective. The combination of collaborative learning and information technology is commonly called
“Computer Supported Collaborative Learning” (CSCL), and that is currently an important issue to be noticed. Therefore, we develop a tool of collaborative learning based on the server / client architecture, and combine the functions of text and voice communication via the internet. It will allows user to cooperate in finishing some special projects of C programming language together, and solving the problems during the process of programming together. Learners can study in
Student:Kun-Chi Chen Advisor:Dr. Wen-Chih Chang
the course of group collaborative learning. In addition to sharing their own knowledge with each other, they can study some new knowledge immediately as well, and acquire some experience in programming. Furthermore, they can gain the ability of solving problems. The purposes of our research is to make students to improve the motivation in study C programming language, and to participate actively to attain knowledge and experience of programming.
Keywords: Collaborative Learning, CSCL, C Programming Language,
Problem-Solving, VoIP致 謝
非常感謝指導教授張文智老師這兩年來在課業及研究上的細心指導,每當 我遇到難題與瓶頸時總是能適時給予我相當大的幫助。另外也要感謝在大學時 以及碩一時期指導我的王偉德老師,不管在處事態度上或是研究方向,總能帶 給我許多的建議與協助。我能夠在研討會上拿到最佳論文獎,都是兩位老師的 功勞。
此外也要感謝曾經在系統實作上協助過我的陳登傑學長、柯建盛學長、牟 英傑學長,在撰寫程式的概念及想法上給予我相當多的批評指教,不厭其煩地 協助我解決問題。另外也感謝 M222 實驗室的同學周育民、徐志煌與李茂帆、
李宗璞等學弟們,以及 M226 實驗室的夥伴們,不斷地支持、鼓勵我,讓我能 夠有動力來完成我的碩士論文。
最後還要感謝前來擔任口試委員的林曉雯老師、王德華老師、楊宣哲老師,
感謝你們對於我的碩士論文細心指導與建議,讓我收穫良多。
目 次
摘 要... i
致 謝... iv
目 次... v
表 次...vii
圖 次...viii
第一章 緒論... 1
1.1 研究背景與動機... 1
1.2 研究目的... 2
1.3 研究流程... 3
1.4 論文架構... 4
第二章 文獻探討... 5
2.1 合作學習... 5
2.2 合作學習相關應用之研究... 7
2.2.1 線上合作學習與課程播放系統... 7
2.2.2 高職程式設計課程網路學習環境建置與應用... 7
2.2.3 智慧型線上合作學習平台之規劃與建置... 9
2.2.4 網路合作學習系統與小組互動觀察工具... 10
2.2.5 珊瑚學習環境(CORAL 系統) ... 11
2.3 C 語言程式設計 ... 12
2.3.1 C 程式語言在傳統教學方法上的缺失 ... 13
2.3.2 GCC ... 13
2.3.3 程式語言開發工具比較... 14
2.4 VoIP (Voice over Internet Protocol) ... 17
第三章 系統實作與展示... 20
3.1 系統開發環境... 20
3.2 系統架構... 20
3.3 系統實作... 21
第四章 實驗方法與結果分析... 33
4.1 實驗一:語音服務可行性... 33
4.1.1 實驗目的... 33
4.1.2 實驗資源配置... 33
4.1.3 測量方法... 33
4.1.4 Voice Server 網路流量結果分析... 34
4.1.5 Voice Server CPU 使用率分析 ... 36
4.2 實驗二:系統使用成效實驗... 37
4.2.1 實驗目的... 37
4.2.2 問卷調查量表設計... 37
4.2.3 實驗背景... 37
第五章 結論與未來研究... 62
5.1 結論... 62
5.2 本研究所遇到的困難及解決方法... 62
5.3 未來研究... 64
參考文獻... 65
附錄 A 問卷調查量表 ... 68
附錄 B 英文論文投稿(ㄧ) ... 70
附錄 C 英文論文投稿(二) ... 78
表 次
表 1 各類相似程式開發工具比較... 17
表 2 開發環境硬體配備... 20
表 3 開發環境軟體需求... 20
表 4 人數統計... 38
表 5 年齡層統計... 38
表 6 年級分布統計... 38
表 7 學習使用電腦年數統計... 39
表 8 每天使用電腦時間統計... 39
表 9 每週使用電腦時間統計... 39
表 10 修過 C 程式語言課程次數統計 ... 40
表 11 撰寫 C 語言程式個數統計 ... 40
表 12 學習 C 程式語言喜歡與同學討論意願 ... 40
表 13 測驗中的程式專案完成項目統計... 40
表 14 問卷調查綜合面向分類表... 55
圖 次
圖 1 研究流程圖... 3
圖 2 線上合作學習與課程播放系統首頁... 8
圖 3 高職程式設計課程學習網站畫面... 8
圖 4 智慧型線上合作學習平台網站畫面... 9
圖 5 群體合作學習系統平台畫面... 10
圖 6 珊瑚學習系統(CORAL)畫面 ... 11
圖 7 Turbo C 執行畫面 ... 14
圖 8 1Dev C++執行畫面... 14
圖 9 Visual C++執行畫面 ... 15
圖 10 C++ Builder 執行畫面... 15
圖 11 Developer Collaboration 使用者介面 ... 16
圖 12 H.323 網路元件架構圖... 19
圖 13 系統架構... 21
圖 14 Master Server 視窗 ... 22
圖 15 Voice Server 視窗 ... 23
圖 16 Voice Server 管理介面 ... 23
圖 17 使用者介面... 24
圖 18 登入畫面... 24
圖 19 使用者編輯器介面... 25
圖 20 Chat Room 窗格 ... 26
圖 21 Debug Message 視窗 ... 26
圖 22 Personal Icon 視窗... 27
圖 23 Voice Dialog 語音對話控制功能視窗... 28
圖 24 除錯功能選單視窗... 29
圖 25 Compile(Personal)功能視窗 ... 31
圖 26 Compile(Group)功能選單視窗 ... 31
圖 27 顯示行號之選單視窗... 32
圖 28 C 語言參考教材之畫面 ... 32
圖 29 Voice Server 網路接收流量圖 ... 35
圖 30 Voice Server 網路傳送流量圖 ... 36
圖 31 Voice Server CPU 使用率圖... 36
圖 32 提供的功能容易使用調查... 41
圖 33 功能按鍵容易找到調查... 41
圖 34 覺得學習過程容易調查... 42
圖 35 覺得沒人指導一樣能使用此系統調查... 42
圖 36 不曾使用過類似的學習系統一樣能使用此系統調查... 43
圖 37 只要有系統操作手冊可參考就能使用此系統調查... 43
圖 38 如果操作上遇到問題,有人能協助我就能使用此系統調查... 44
圖 39 此系統提供互動高的學習環境調查... 44
圖 40 此系統能幫助學習程式除錯能力調查... 45
圖 41 此系統能幫助學習程式溝通能力調查... 45
圖 42 此系統能幫助學習程式撰寫能力調查... 46
圖 43 此系統能幫助學習程式開發能力調查... 46
圖 44 此系統有很清楚地編譯及除錯資訊調查... 47
圖 45 聊天室(Chat Room)對於在與組員溝通互動時有幫助調查... 47
圖 46 語音對話功能(Voice Dialog)對於在與組員互動時有幫助調查 ... 48
圖 47 與小組成員共同撰寫程式對開發程式的品質更好調查... 48
圖 48 與小組成員共同撰寫程式對開發程式的時間較短調查... 49
圖 49 喜歡使用此系統學習調查... 49
圖 50 此系統能夠增加學習興趣調查... 50
圖 51 此系統會增加學習程式設計的認真度調查... 50
圖 52 此系統比傳統教學方式有趣調查... 51
圖 53 此系統學習過程感到有趣調查... 51
圖 54 此系統比程式開發的 IDE 有趣調查 ... 52
圖 55 小組對於領隊的選擇在開發程式很重要調查... 52
圖 56 小組對於彼此信任對程式開發很重要調查... 53
圖 57 小組對於溝通順暢對程式開發很重要調查... 53
圖 58 願意使用此系統做為協助小組合作學習的工具調查... 54
圖 59 願意花較多的時間在使用此系統學習調查... 54
圖 60 願意使用此系統來輔助傳統教學方式調查... 55
圖 61 易於使用調查... 57
圖 62 有用性調查... 57
圖 63 合作通訊對於學習的幫助調查... 58
圖 64 使用態度調查... 58
圖 65 有趣性調查... 59
圖 66 程式設計學習的團體關係調查... 59
圖 67 使用意願調查... 60
第一章 緒論
隨著資訊科技與網際網路的迅速發展,使得學生的學習方式也不再侷限於 課堂上老師的教授。透過網際網路,合作的學習方式提供了更豐富的學習資源 及同儕互動。而本研究主要是建置一個以合作式學習為主的程式開發平台,提 供學習者以小組合作的方式來學習如何開發程式與解決問題能力的學習環境,
提升學習者對於程式撰寫的參與度,期望他們能夠在此學習環境不斷地學習當 中,培養並激發他們對於開發程式的興趣。在本章中將說明本研究之背景與動 機、研究目的、研究流程及論文架構。
1.1 研究背景與動機
合作學習能夠讓學習者透過與同儕互相討論、分享資訊及知識的方式,提 升他們學習的意願及效果。隨著電腦和網路的普及化,愈來愈多的學習軟體平 台也正在迅速的發展當中,教學的方式也不再侷限於學校的課堂上。利用網際 網路與電腦,讓學習者不受限於時間、地區、空間的限制,進行具備自主性的 個人化學習。然而傳統上的 C 程式語言設計課程強調的是個人化的學習,大都 是採用老師單方面將程式語言設計的概念教授給學生,學生再獨自回去練習並 完成老師指派的作業。但是學生在學習的過程中往往會遇到問題,例如程式結 構設計的問題,語法設計編輯的問題,或是除錯編譯時發生錯誤而不知如何解 決等等的問題。這些問題都將可能造成學習者降低學習 C 程式語言的興趣,影 響他們學習的參與度及成效,甚至使得學習者放棄學習的機會。
為了讓學習者能夠積極的參與學習的過程,提高他們的學習動機及意願,
有不少以電腦輔助合作式學習(Computer Supported Collaborative Learning)的教 學網站及軟體平台紛紛建置成立,讓學習者能夠透過網路與電腦,不受時間與 空間的限制來學習。然而一般的教學網站、軟體平台大多是利用討論區、網路 聊天室、留言板及 Microsoft Networks(MSN)等網路通訊平台來做為溝通討論的 媒介,讓學習者在這些溝通媒介上面互相討論,但是這些通訊平台在實際的學
習過程中也有一些問題,例如學生在討論區或聊天室上提出問題,對問題的陳 述表達上不盡完善,或是發問之後卻沒有其他人參與討論或協助解答,缺乏即 時性的互動,另外在學習者互動過程中,只能記錄討論的內容,對於其他的學 習活動並無完整的記錄;一般的即時通訊軟體、討論區不容易與教學活動緊密 結合等的缺失。
合作學習主要是利用小組合作的方式,讓學習者除了互相討論分享知識之 外,還能夠學習到如何與人討論溝通的社交技巧,透過互助合作來共同解決遇 到的難題,進而完成學習的目標。而程式語言設計技術的培養,其實就是訓練 學習者解決問題的能力,進行合作學習則能夠讓學習者提升解決問題能力的方 式之ㄧ。基於以上合作學習的觀點,為了支援於網路上進行合作學習活動,應 規劃、建置一個能滿足合作學習要素的合作學習系統。因此本研究目的在開發 一個合作學習平台,提供學習者以三人為一組,共同來合作開發 C 程式設計專 案。透過此平台,期望學習者能夠在程式開發設計的過程當中,磨練程式設計 的技術及增進解決問題的能力,並且培養溝通協商的社交技巧。
1.2 研究目的
根據上一節所提出的研究動機,本研究主要的目的在於提出一個合作學習 軟體平台來輔助學習者學習 C 程式語言設計開發的技巧與增進解決程式開發問 題的能力。此系統包括個人程式編輯視窗、文字聊天室(Chat Room)、網路語音 對話服務與除錯編譯的功能,讓學習者在使用此系統開發編輯程式的同時,可 以利用文字及語音的功能服務來互動,相互溝通討論,並在編輯完成後可以利 用編譯的功能來找出語法上的錯誤,共同來解決所碰到的問題,提高他們對於 學習 C 程式語言設計的興趣與參與度。並且將在其後進行評估的工作,以了解 此系統是否能支援合作學習活動的進行,以及對學習者的學習成就是否有影響。
1.3 研究流程
本研究首先探討及闡述研究背景、動機與目的,在確定研究主題為「以合 作學習工具應用於 C 程式語言設計」後,再依照相關文獻的蒐集與整理,確立 其研究的範圍,分析及探討相關文獻,並作為本論文研究之理論基礎。其後的 系統實作部分則是使用 JAVA 程式語言來開發此系統,並加入 XML 及 VoIP 網 路電話服務等技術,使系統功能更加完整。本論文研究流程如圖 1 所示。
圖 1 研究流程圖
研究背景與動機
研究目的
系統分析
系統開發
文獻探討與確定研究主題
系統測試
實驗問卷調查
問卷分析
實驗結果分析與結論
1.4 論文架構
本研究所開發之系統,主要是以合作的方式來輔助學生學習 C 語言程式開 發設計之學習工具。有關本論文的相關章節介紹如下:
第一章:主要為緒論的部分,探討關於合作學習的特點與傳統 C 程式語言教學 方法上的缺失,以改善傳統教學的缺失與激勵學習者參與學習為出發 點來做為本研究的動機與目的。
第二章:相關文獻探討,對本研究之背景做一些介紹,並討論有關在過去一些 應用於合作式學習的研究,此外也針對本系統和其他 C 語言程式開發 工具和程式合作學習工具做比較,並探討其優缺點。
第三章:系統實作與展示,介紹系統開發環境與系統執行環境、系統架構、設 計理念和介紹本系統利用到的一些相關技術,最後則對本研究所開發 之系統做詳細的說明以及一些範例的介紹。
第四章:實驗方法與結果分析,介紹實驗目的、實驗背景、以及針對本系統所 做的問題調查,分析各項分析和綜合分析,進而了解學習者使用此系 統的成效。
第五章:結論及未來研究,總結本研究相關的研究成果並針對未來研究之延伸 加以說明。
第二章 文獻探討
在本章節中,將介紹一些與本研究上有相關的理論和系統背景相關研究,
其中包括合作學習的定義、特性及學習方法,另外還介紹一些與合作學習相關 應用之研究,C 程式語言的介紹、特性,以及傳統 C 程式語言教學上的一些缺 失,還有過去 C 程式語言開發編輯工具與本系統的比較。最後將介紹本系統的 語音服務功能所使用的 VoIP 網路電話技術。
2.1 合作學習
z 合作學習的定義
合作學習基本上的含意是以合作的方式來進行學習,指兩人或兩人以 上為一組,共同來合作達成他們學習上的目標。學習者在合作的過程當中 可以一起分享自身的知識、所了解的資訊及經驗,互相討論及溝通,透過 這樣的方式提高他們學習的參與度,進而達到小組合作學習的成效。合作 學習的活動透過學習者之間彼此發問、討論、分享資訊,來解決他們在學 習上面所遇上的問題[11]。合作學習最常被用到的字眼為 Cooperative Learning 及 Collaborative Learning,但在細分之下還是有不同的解釋:
Cooperative Learning 是指已有共同的目標的一群人分工合作,或是各自獨 立工作,最後再組合成一個完整的結果,強調是分工合作;Collaborative Learning 的定義是較高層次的合作,一群人必須充分的相互的討論,互相 幫助、交換知識與資訊、有回饋的互動、評論或鼓勵、協調解決不同的意 見,進而達到團體的最大利益[6]。另外,合作學習擁有一個明顯的潛力,
它能夠增進學習者的重點思考、創造性思考、仔細的思考、社交溝通的技 巧(領導能力、決策能力、互信建立及衝突管理等等)[25]。
z 合作學習的特色
合作學習主要的精神在於培養學生積極參與學習過程的態度以及與 人溝通協調的能力,不僅要對個人負責,也要對小組的成員們負責。Johnson
and Johnson 學者為合作學習提出以下之特性[1][4]:
1. 建立正向積極的互相依賴關係(Positive interdependence):小組的成員 之間應該建立互相依賴的關係,關心彼此的表現而一同努力以完成共 同的目標。互相依賴的關係,包括的有目標的相互依賴(具有共同的目 標)、事務的相互依賴(事務分工)、資源的相互依賴(資訊、資源共享)、
角色的相互依賴(角色分配)與報酬的相互依賴(報酬共享)。
2. 成員之間要有面對面的互動(face-to-face interaction):讓學習者了解合 作學習是一種積極的互相信賴,促進學生之間的互動關係、彼此關 心,共同討論、研究,一起達到目標。
3. 小組成員要負起個人之績效責任(individual accountability for learning the assigned material):合作學習除了強調小組合作的成效,個人也需 擔負一些責任與義務,每位小組成員都必須負責將自己的任務完成,
任何一個成員怠惰都將造成小組合作的績效滑落。因此每位成員都必 須為自己負責,提升個人的成效作為小組合作表現的基礎。
4. 成員應受先期合作技能訓練(training for collaborative skills):每位成員 必須先學習社交溝通的技巧,如衝突管理、彼此互信,相互接納及支 持等等。如此才能在溝通協調的過程中順利進行任務。
5. 成員應對其團體歷程作監督與反省(monitoring and reflective of group processing):合作的過程中除了討論學習的內容之外,還需要討論過 程是否具有效益,並加以改善不當之處,以增進合作學習的效果。
z 合作學習的學習方法
合作學習常見的類型[6] 包括:共同學習法(Learning Together,LT)、
學生小組成就區分法(Student's Team Achievement Division,STAD)、小組 遊戲競賽(Teams-Games-Tournament,TGT)、小組協力教學法(Team Assisted Instruction,TAI)、團體探究(Group Investigation,GI)、第二代拼圖法(Jigsaw
II)等。其中共同學習法(LT)是 Johnson and Johnson 於 1987 年所提出,本研 究主要是利用共同學習法來進行合作學習,其內容如下:異質分組,共同 學習一單元課程,一起接受測驗,所得到的成績為全組成員的成績。LT 學 習方式有以下幾點原則[1]:
(一)給予學生能力範圍內可達成的任務。
(二)小組成員以 2-6 人較為合適。
(三)強調合作學習的行為包括一起討論工作、傾聽、問問題、解釋、分 享想法、鼓勵…等。
(四)互相依賴,小組成功才算成功,學生們需要以小組的效益為考量。
(五)強調個人績效及責任。
2.2 合作學習相關應用之研究
在本節中,將介紹一些合作學習相關應用的研究案例,並嘗試加以探討其 優缺點。
2.2.1 線上合作學習與課程播放系統
此系統又名 CLASS 系統(如圖 2)[5],由國立台南大學資訊教育研究所張桂 悅碩士所開發,使用對象以小學生為主。此系統主要是提供一個線上合作學習 環境,其功能主要有提供線上課程、線上評量、學生的學習資訊記錄、小組會 議室討論區的建立等等。其中線上課程包括可以線上播放投影片,線上評量的 部分則提供線上測驗來評量使用者使用系統後進步的程度。而小組溝通的部分 有包含了線上白板及討論區供使用者利用文字及圖形化的訊息來互相溝通討 論。雖然系統的功能上相當齊全,但在小組討論的功能上,只有文字上的訊息 傳遞,即時性稍嫌不足,如能加上語音交談的功能,即時性將提高不少。
2.2.2 高職程式設計課程網路學習環境建置與應用
此學習系統由銘傳大學資管所黃有川碩士所研究開發(如圖 3)[8],目的是
設置一個網路合作學習環境,讓學生能夠在此環境中互動、提升其學習的動機 及成效,主要是針對高職生的程式設計課程來做開發研究。此系統功能包含:
最新消息、上課講義、線上測驗、聊天室、專題討論、留言板、學習追蹤、意 見箱以及友站連結。其中專題討論的功能主要為討論區、作品上傳、展示觀摩,
另外還加入學生作品互評的功能,主要是由老師依照課程來指定專題討論,並 要求學生在時限內完成一項專題。當學生討論完後,可將完成的作品上傳到系 統讓所有人互評。此網站上學習者之間只有留言板等文字訊息的傳遞,缺乏即 時性的互動。
圖 2 線上合作學習與課程播放系統首頁
圖 3 高職程式設計課程學習網站畫面
2.2.3 智慧型線上合作學習平台之規劃與建置
智慧型線上合作學習平台(如圖 4)由暨南大學資管所廖韋傑碩士所開發 [10],主要是建置一個以教師為主體的合作教學 Blog,讓教師可以透過此平台 迅速建立一個以合作式教學為目標的課程設計。此平台是利用 Blog 的功能來提 供教材的管理、作業的指派管理及上傳、Blog 網誌的管理維護等,系統也提供 了討論區及線上聊天室的功能讓學習者能夠在系統上共同討論分享知識及資 訊。系統還提供自動分組的功能,讓教師可以使用其功能隨機替學生分組或是 手動分組。另外討論區還提供了自動化回覆的功能,讓學習者在提出問題時可 以設定回覆問題的時限,超過時限若無人回應這個問題,系統則會從資料庫中 搜尋最適合此問題的解答來進行回覆;教師則可在學習者的問題無法由自動回 覆系統尋找到答案時,介入協助回答問題。系統中也提供了問卷評量讓教師能 夠掌握學生們的學習狀況。而在此平台上皆是利用討論區及聊天室提供學生使 用文字傳遞來互動,在學習者面臨問題待解決時無法即時予以解決,無人回應 時只能等待系統自動回覆及教師上線解答,因此較為耗時。
圖 4 智慧型線上合作學習平台網站畫面
2.2.4 網路合作學習系統與小組互動觀察工具
此系統由中央大學資工所黃俊仁碩士所開發(如圖 5)[9],共分為三大部分,
以異質分組為主的分組輔助工具、提供小組學習互動的群體學習系統,還有一 個便於教師觀察學生互動情形的輔助互動觀察工具。分組輔助工具是利用學習 者的個人學習特徵,透過立意分組法及異質分組法來進行替教師進行分組的動 作。而群體學習系統則是設計一個提供小組互動及完整記錄下小組作品集的學 習互動系統,主要有各小組的簡介、小組專案的管理、小組討論專區等多項功 能。其中小組討論區分有同步與非同步的討論區,非同步討論區功能就如同一 般討論區,可發表主題留言,而同步討論則類似一般線上聊天室。系統中也有 線上即時呼叫的功能,可以讓小組成員即時掌握組員的行蹤。而輔助互動觀察 工具則是利用學習系統上所蒐集到的小組學習特徵的資訊檔案來分析並預測,
提供給教師參考以利於老師及時的介入協助。
圖 5 群體合作學習系統平台畫面
2.2.5 珊瑚學習環境(CORAL 系統)
CORAL 珊瑚學習系統[24]是由國科會科學教育發展處所資助,國立交通 大學所開發(如圖 6),其目的是在提供一個以多媒體網路與教材為基礎的遠距合 作學習環境,此系統主要整合了三大部分:1.建構於電腦網路、傳輸通訊協定 技術與多媒體等技術之上的互動式學習環境;2. 注重教育理論的互動教學課程 的設計、發展和評估;3.遠距合作式學習的研究環境。
z 溝通方式:
CORAL 系統提供學生五種方式與老師及同儕溝通:
(1) 一個類似 BBS 電子佈告欄的筆記本視窗,能讓老師和學生彼此以非 同步的方式留話。
(2) 經由系統提供的語音播送系統傳送語音資料。
(3) 利用影像視窗讓老師和同學能夠溝通。
(4) 提供學生一個電子白板,讓學生可以用來打字與畫圖。
(5) 提供一個對談視窗環境,讓師生可以利用文字作同步即時的交談。
圖 6 珊瑚學習系統(CORAL)畫面
2.3 C 語言程式設計
本研究的主要目的是設計一個合作學習的平台來幫助學習 C 程式語言的學 生能夠在與同儕互動的學習環境下學習,因此在這裡僅針對 C 程式語言進行簡 單的介紹。C 程式語言是一種通用的、有結構的、程序的、命令式的電腦高階 程式語言。C 語言是由 UNIX 的開發者丹尼斯·里奇(Dennis Ritchie)和肯·湯普 遜(Ken Thompson)於 1970 年研製出的 B 語言的基礎上發展出來的。目前 C 語言編譯器普遍存在於各種不同的操作系統中,例如 UNIX、MS-DOS、Microsoft Windows 及 Linux 等。C 語言的設計影響了許多後來的程式語言,例如 C++、
Java、C#等。C 程式語言在西元 1989 年經過了 ANSI(American National Standards Institute) 制 定 了 標 準 規 範 (ANSI C) , 在 西 元 1990 年 由 ISO(International Organization for Standard)制定了 ISO C,進而結合先前的 ANSI C 產生 C90 的版 本,目前最新的版本是在西元 1994 年所制定的標準規範:C99[22]。從西元 1972 年至今,在經過了三十多年的發展之後,C 程式語言依然是目前最重要和最受 歡迎的程式語言其中之一[29]。
C 程式語言本身具有以下特色[22]:
(1) 靈活的控制流程:可以容易的設計出具有結構化及模組化的程式語言。
(2) 快速:執行速度快,效能高。
(3) 精簡的程式碼:可以用很少的程式碼來完成一支程式。
(4) 可攜性佳:想跨越平台來執行 C 語言,通常只要修改極少部分的程式 碼,再重新編譯即可執行。
而在實務上,通常開發與設計一支 C 程式語言的程式[22],會經過以下七 個步驟:
(1) 探索與理解欲解決的問題。
(2) 針對所要開發的程式進行系統的設計。
(3) 開始進行程式的撰寫。
(4) 將已撰寫完成的程式進行編譯與連結的作業。
(5) 運行所完成的程式。
(6) 針對程式進行邏輯上的測試與除錯。
(7) 驗證程式所有問題是否已解決。
而本合作學習工具的 C 程式語言開發步驟,將會依照上述七項步驟不斷地 來進行。
2.3.1 C 程式語言在傳統教學方法上的缺失
過去老師在教學 C 程式語言的課程上效果往往並不是很好,所碰到的問題 不外乎在於傳統的教學方式並不能夠激發學生對於學習程式語言的興趣,以致 於學生在學習的過程中不斷的產生問題與挫折而無法突破,就此放棄而不願意 再去挑戰。因此也發現學生常常把程式語言的課程形容成「無聊」、「枯燥」和
「太過專業」的課程,以此作為不肯學習的藉口。而 Draper[16] 建議多讓學習 者自由的學習,來提高學習的興趣。Carroll[14]總結說: 樂趣是由不平常或者是 新穎的事物所激發出來的,在一般的情境下通常不會被激發出來,必須創造出 一個能夠吸引的學習環境,藉由此環境的刺激下來產生學習樂趣。
2.3.2 GCC
GCC[18],全名為 GNU Compiler Collection,是本研究中用來作為 C 程式 語言語法檢查和程式編譯功能時所必須用到的工具,GCC 不僅能夠處理 C 程式 語言,也可處理 C++、Fortran、Pascal、Objective-C、Java 以及 Ada 等其他程 式語言[19]。GCC 是源自於 GNU 計畫的需要,由 GNU 計畫的創始者 Richard Matthew Stallman[23]在西元 1985 年發展 GNU 系統時所產生,它是一套以 GPL(General Public License) 及 LGPL(Lesser General Public License)許可證所 發行的自由軟體,也是 GNU 計畫的關鍵部分,亦是自由的類 Unix 及蘋果電腦 Mac OS X 操作系統的標準編譯器。經過多年的發展,目前最新版本是 4.1.1 版。
2.3.3 程式語言開發工具比較
以下將針對一般關於 C 程式語言的開發環境與軟體來做介紹,並將與本研 究所建置的程式開發平台來做一些功能與特性上的比較。
(1) Turbo C[26]: Borland 公司在 MS-DOS 作業系統時代開發的 C/C++語言整合 開發環境,如圖 7 所示,在 Windows 作業系統只能在 MS- DOS 模式或「命 令提示字元」視窗執行。
圖 7 Turbo C 執行畫面
(2) Dev C++[15]: Bloodshed Dev C++(使用 GNU 的 GCC 編譯程式),一套免 費 C/C++程式的整合開發環境,如圖 8 所示,提供中文使用介面,可以在 Windows 98/ME/2000/XP 作業系統執行。
圖 8 1Dev C++執行畫面
(3) Visual C++[27]: Visual C++是微軟公司所開發出的一套適用於 C/C++的程 式開發工具,屬於 Windows 作業系統下的整合開發環境,如圖 9 所示。
圖 9 Visual C++執行畫面
(4) C++ Builder[12]: Borland 公司在 Windows 作業系統下開發的 C/C++整合開 發環境,如圖 10 所示。
圖 10 C++ Builder 執行畫面
(5) NetBeans Collaboration Project: Developer Collaboration
Developer Collaboration [21]是 NetBeans 所開發的一個合作解決問題的程式 開發平台(如圖 11)。使用者可以透過此介面與朋友甚至是 NetBeans 開發小組工 程師來互動,解決程式上面所遇到的問題。當使用者在編輯程式時遇到解決不 了的問題時,他們可以利用程式共享的功能,邀請在線上的朋友或工程師來協 助他們解決問題。
圖 11 Developer Collaboration 使用者介面
本研究提出了幾個方面的特性如下所述,做為類似開發工具比較的依據。
z 使用者之間的互動: 軟體工具本身具備互動性元素,例如:文字交談。
z 使用者能迅速、即時的對談:具備語音的對談服務
z 使用者互相分享資訊:在撰寫程式時能夠分享彼此所知的知識與資訊。
z 解決問題:碰到問題與困難時能夠互相幫忙,共同解決難題。
根據上述所提及的三個項目所做的比較如表 1:傳統的程式開發工具 (Integrated Development Environment, IDE),例如: Turbo C、 Dev C++、 Visual C++、C++ Builder,本身所具備的互動性是很低的,此外這些工具有著很致命 的問題就複雜性太高,當學習遇到像這種工具時就會失去學習的熱情,進而導 致學習效果變差。
表 1 各類相似程式開發工具比較
Our tool
NetBeans Collaboration Project:“Developer
Collaboration”
Turbo C、Dev C++、Visual C++、C++ Builder
程式編輯介面 9 9 9
語音交談服務 9 8 8
文字交談服務 9 9 8
分享資訊 9 9 8
解決問題 9 9 8
附註:表中9代表開發工具所具有的功能,8則代表沒有。
2.4 VoIP (Voice over Internet Protocol)
VoIP 語音傳輸協議,又稱爲 IP 電話技術、網路電話技術以及數位電話,
是透過具備網路的電腦設備來傳輸語音對話封包的一種技術[30]。早期網際網 路正盛行時,一些研究人員或使用者即已使用 IP 技術透過 Internet 來開發網路 電話,只是當時的軟、硬體尚未成熟,利用網路來傳輸語音的效果並不理想,
且僅限於實驗階段。1995 年初,以色列 Vocaltec 公司,首先開發出網路電話軟 體,並實現了同時可在 Internet 上撥打電話的語音通訊與資料傳輸服務;Internet 上二端的 PC 使用者只要使用該網路電話軟體,即可免費撥打國際或長途電 話,雖然當時語音品質不佳,但仍引起網友們廣泛的興趣。
1996 年,網路業者推出了網路電話閘道器(IT Gateway,ITG),使得網路電 話可透過 Internet 與公眾電話網路(PSTN)連結;也就是說,使用者只需要一具 網路電話,即可與傳統的電話機互相交談,而無需再借助於 PC。
1998 年,一些網路業者意識到 VoIP 技術可替代傳統 PSTN 所帶來的商 機,即開始陸續建立相關的 IP 電話網路通訊協定;如 H.323、會談開始通訊協 定(Session Initial Protocol,SIP)、媒體閘道器控制通訊協定(Media Gateway Control Protocol,MGCP)、H.248 等等,並以 PC 至 PC 的軟體撥接之點對點通 訊為主[7]。
簡而言之,VoIP 即是將類比聲音訊號(Voice)數位化,以資料封包(Data
Packet)的型式在 IP 數據網路 (IP Network)上做即時傳遞,因為是透過網際網 路來傳輸聲音訊號,並不需要另外架設專屬的線路,且 VoIP 是透過 Data Switch (資訊封包交換)的方式,使用所謂的軟體或硬體將類比的語音訊號轉為網路上 的數位資料封包,達到資料交換的動作,因此比起傳統電信技術來說,成本相 對降低很多[13]。它還可以將在網路上傳遞過程中所發生的失真、迴音及資料 遺失做適當的修補功能,使其原音重現[3]。由於更多網路業者的積極投入與技 術的突破,促使更多 VoIP 應用與服務的蓬勃發展,如傳統 PSTN 的電話可經 由 Internet 連接到另一個 PSTN 電話上,以及企業、住宅與校園網路等通話服 務。本系統的語音服務功能所使用的 IP 電話網路通訊協定為 H.323,因此接下 來將介紹 H.323 通訊協定。
z H.323
1996 年 1 月國際電信聯盟(Internet Telecommunications Union,ITU)制定一 系列 H.323[20]通訊協定,以用在 Package-Based(封包網路)上可以操作視訊電信 (Video Telephony)和進行多媒體會議(Multimedia Conferencing)等功能。
1998 年 1 月 ITU 制定 H.323 Version 2;1999 年 9 月 ITU 制定 H.323 Version 3,以合併許多先進的功能和新概念,使得 H.323 有能力於現有之 IP 網 路上使用 IP 電話。2000 年 11 月 17 日 ITU 制定 H.323 Version 4,納入了許 多 重 要 的 增 強 功 能 , 包 括 可 靠 度 (Reliability) 、 可 調 性 (Scalability) 和 彈 性 (Flexibility);這些新功能可彈性的調整閘道器(Gateway)和多點控制器單元 (Multipoint Controller Unit,MCU),以符合快速成長的市場需求。2003 年 ITU 制定 H.323 Version 5,包含更多新進的功能,以符合 VoIP 網路電話的需求與系 統的互通性。
H.323 主要架構中包含了 H.323 Terminal、Gateway、Gatekeeper,以及 MCU,如圖 12 所示[17]。其目的就是使 VoIP 的技術能透過 RTP(Real time Transport Protocol)來傳輸資料並融入現在的公眾電信網路(PSTN) 、整合服務數
據網路(ISDN)、寬頻整合服務數據網路(B-ISDN)等電信系統中[28]。
圖 12 H.323 網路元件架構圖
Gateway 是與其他通信系統聯通的管道,負責網路封包的交換和電路交換 的轉換。負責與外界其他異質的通信系統,如 PSTN、ISDN、B-ISDN 等進行 溝通,提供訊號轉換(Signaling Translation)與資料編碼(Decode)等功能。
Gatekeeper 扮演著 H.323 通信系統中的管理者,主要負責位址轉換(Address Translation) 通 話 、 允 許 控 制 (Admission Control) 以 及 頻 寬 管 理 (Bandwidth Management)等所謂功能。負責管理系統中的 Terminal、Gateway、MCU。
MCU(Multipoint Control Unit)則提供了可以進行多方通話的功能。其由兩 個單元所組成,MC(Multipoint Controller)、MP(Multipoint Processor);MC 負責 流程控制,MP 則是負責作聲音或影像資料的解碼、混合、編碼[2]。
以上各節為與本研究相關的理論基礎及背景的文獻整理,包含了三大部 分:合作學習相關研究、C 程式語言的背景與開發環境的比較與整理,VoIP 技 術的理論基礎整理。本研究將依循參考這些相關的文獻研究來開發建置本合作 學習工具,並且改善過去的合作學習系統與傳統程式設計教學方法上的缺點。
第三章 系統實作與展示 3.1 系統開發環境
本系統在環境建置上符合目前一般電腦用戶之規格,不需要太高效能的硬 體即可運行,且在軟體方面的需求上亦不需要太多額外的支援。而其所採用的 軟、硬體配備,如表 2 與表 3 所示。
表 2 開發環境硬體配備
Module CPU RAM
Master Server Intel Pentium4 3.0G MHz 1024 MB Voice Server Intel Pentium4 2.6G MHz 1024 MB Client AMD Turion64 MK-36 2.0GHz 2048 MB
表 3 開發環境軟體需求 Java Runtime Environment JDK 1.5.0_15 Operation System Windows XP SP2 Developed Tool NetBeans IDE 6.1
3.2 系統架構
本系統是採用 Client-Server 為本系統之架構,如圖 13 所示,共分為 Master Server、Voice Server 和 Client,主要作用如下:
z Client:
主要為使用者介面,包含了程式編輯介面、文字聊天視窗、語音聊天控制 視窗、除錯訊息視窗、個人化圖示等以及正確的接收及傳送訊息給 Server 端。
z Master Server:
包括儲存使用者登入的資訊、使用者程式備份、文字對話訊息備份等,以 及正確的接收及傳送訊息給 Client 端。
z Voice Server:
負責處理系統內部多點語音溝通之運作、與 Client 建立連線,主要運作方 式為從所有連線至 Voice Server 的 Client 端收集 H.323 應用程式之聲音串流,
將之混合,並將這些混合好的聲音串流散佈到所有連線至此台 Voice Server 的
Client 端之上,藉此達到多點語音溝通之功能。
圖 13 系統架構
3.3 系統實作
本系統以合作學習的理論為基礎,設計一個讓學習者可以一起合作學習的 平台來學習 C 語言,使他們能夠利用本系統來完成他們的目標。我們考慮到合 作學習的效率及有效性,我們設計了三人為一組的小組合作學習,每組有一名 組長及兩名的組員,組長的選定由各組組員自行推選。以下將介紹本系統相關 的元件及功能:
Master Server 主要是管理使用者的相關資訊(如圖 14 所示),包括使用者資 訊及訊息傳遞,分為以下幾項功能:
z 管理使用者登入/登出:當使用者要求登入時,記錄使用者的 IP 位址及使 用者名稱等資訊。當使用者關閉編輯視窗時終止其連線。
z 管理使用者登入人數:本系統使用者人數上限為 3 人,當到達上限人數時 系統將不允許其他使用者再登入。主要是因為考慮到小組合作學習的效 率,避免小組內人數過多而造成了討論及決策的過程複雜化。
圖 14 Master Server 視窗
z 管理 Chat Room 中使用者之間的文字訊息傳遞:當使用者之間在傳送文字 訊息時,Master Server 會將訊息即時廣播並將其記錄在文字檔內,此文字 記錄檔案將會依照日期存放,永久保存在系統記錄資料夾中。
z 自動分配使用者程式編輯視窗的順序:Master Server 會依照使用者登入的 順序,自動安排三位使用者各自所擁有的編輯器介面。
z 管理使用者編輯程式時的同步化:使用者可以在自己所擁有的編輯介面上 編輯程式碼,而這些程式碼將會即時地呈現到其他小組成員的介面上。
z 自動記錄使用者在編輯程式時的進度:每隔一段時間 Master Server 將自動 幫助使用者作進度的存檔,以避免使用者不正常斷線時而遺失了資料。所 有的存檔皆永久存在 Server 端供使用者查詢。
z 與 Voice Server 連接:記錄 Voice Server 的位址,讓使用者能夠在連上系統 時即可語音交談。
Voice Server 主要是管理使用者語音交談的訊息傳遞與記錄(如圖 15 所 示),利用 VoIP 的技術作為 Voice Server 的基礎,透過即時的方式,將語音串 流傳送給在相同群組裡的使用者。圖 16 則為 Voice Server 的管理介面,可從管 理介面去更改設定以及觀看使用者的連線狀態及資訊。
圖 15 Voice Server 視窗
圖 16 Voice Server 管理介面
圖 17 為本系統的使用者介面,以下將一一介紹本系統使用者介面的功能:
z Login Page
系統執行時會顯示一個登入畫面顯示如圖 18,圖中「User name」為 使用者名稱,使用者可任意輸入自己想要的名字,「Group name」則為各
小組的名稱,由各小組自行決定並輸入小組代號名稱,以便於在系統中 分享資訊以及語音交談。「Identity」是使用者的身分,分為「Leader」、
「Partner」兩種身分供使用者選擇,「Leader」每組只限一名登入,而選 擇「Partner」登入的使用者則會依照登入的時間順序決定 Partner1 和 Partner2 的使用者。最後「Personal Picture」為個人化圖示,每位使用者 皆可挑選自己想要的圖示以顯示在個人的編輯介面的圖示視窗,所有圖 示皆為系統內建。
圖 17 使用者介面
圖 18 登入畫面
z Editor
如圖 19 框線範圍所示,使用者介面中央三格編輯視窗主要是讓 使用者來撰寫編輯程式碼,最左方的視窗為 Team Leader,其餘兩格 則為兩位 Partner,系統會自動幫此二位組員安排所使用的編輯介面。
Team Leader 的主要任務是協調及分配每位組員所需要撰寫的子程式 部分,並負責撰寫主程式和整合全部程式的工作,並且適當地給予組 員程式撰寫的指導,而其餘兩位組員則負責完成所分配到的副程式。
系統每隔一段時間會自動幫使用者在 Server 端作進度上的存檔,以避 免使用者不正常離線而遺漏資料。
圖 19 使用者編輯器介面 z Chat Room
Chat Room(如圖 20 所示)的目的主要是讓使用者能夠在編輯程式 碼過程中遇到困難及麻煩而跟組員一起討論,使其能夠解決程式撰寫 上的麻煩,本系統雖然已有語音對話的功能,但是為了讓使用者能夠 更清楚地表達出在程式上所碰到的疑難雜症,因而加入此一功能,希 望讓使用者在編輯程式的過程中能夠更加順利。
圖 20 Chat Room 窗格
圖 21 Debug Message 視窗
z Debug Message
「Debug Message」視窗是當使用者要檢查語法錯誤時,錯誤訊 息顯示的視窗(如圖 21 所示)。使用者編譯及除錯時,系統編譯器所回 饋的錯誤訊息將顯示在這個視窗裡,而每一位使用者的錯誤訊息皆顯 示在此視窗中,並且皆可看到其他組員編譯的訊息,但是只顯示最近 一次編譯的使用者之錯誤訊息。不僅使用者個人可以編譯,整合後的 程式碼編譯後的錯誤訊息也會顯示在此視窗中。
z Personal Icon
「 Personal Icon 」 個 人 化 圖 示 能 夠 讓 使 用 者 在 登 入 視 窗 的
「Personal Picture」中選擇他們所喜愛的圖示以顯示在使用者的個人 編輯視窗裡(如圖 22 所示)。使用者登入以及編輯介面開啟之後,可在 選單工具列上的「Option」勾選「Icon」來顯示自己的個人化圖示,
同時也會顯示組員們的圖示。如果使用者並沒有選擇任何的圖示,個 人化圖示仍會顯示系統預設好的小圖示。
圖 22 Personal Icon 視窗
z Voice Dialog
「Voice Dialog」為本系統語音交談的功能,主要是利用 VoIP 網 路電話的技術協助使用者在系統中進行群組語音對話的服務。當使用 者登入系統並開啟使用者介面時,「Voice Dialog」也會一併開啟並且 初始化,系統同時也會自動幫助使用者連線上 Voice Server,針對使用 者所輸入的群組名稱(Group name)分配群組,以便於進行群組語音交 談服務(如圖 23 所示)。當使用者已連線進入群組語音服務, 右邊的
「Voice Dialog」視窗會顯示連線成功的訊息,「Call to Voice Server」
功能按鍵也因為連線成功而轉換。 「Call to Voice Server」主要的功 能在於使用者尚未連線至 Voice Server 或是已離線時,可利用此按鍵 來進行連線上 Voice Server 的動作。而使用者若不需要使用語音對話 服務或是想離開本系統,他們可以關閉 「Voice Dialog」視窗或是按 下「Hang Up (Call)」的按鍵,語音服務即可終止。
圖 23 Voice Dialog 語音對話控制功能視窗
z Compile
「Compile」編譯的功能是所有程式語言設計的編輯軟體最重要 的一項功能,編譯器除了可以檢查程式碼語法上的錯誤之外,並且能 產生一個可執行檔案以便使用者檢查程式碼的輸出是否有錯誤。在本 系統中,我們所使用的編譯器為 GCC,來幫助使用者編譯及除錯他們 的程式碼。以下介紹本系統幾項除錯及編譯的功能:
¾ Debug:此功能主要是針對單一使用者個人使用,每一位使用者都可 使用它來檢查 C 程式語法上的錯誤,檢查出來的錯誤訊息皆會顯示在 右下角的「Debug Message」視窗中(如圖 24 所示)。當使用者完成了 各自的程式碼時,可以點選此功能來進行個人程式碼的語法檢查。
¾ Debug All:此功能主要是用來檢查所以使用者的程式碼整合後的語 法,檢查後的除錯訊息會顯示在「Debug Message」視窗,所有使用 者都可以看到除錯的訊息(如圖 24 所示)。
圖 24 除錯功能選單視窗
¾ Compile(Personal):此功能只限單一使用者使用(如圖所示),當使用者 各自完成自己的程式作業時,即可使用此項功能。每位使用者都可以 利用此功能來編譯自己撰寫的程式碼,並且產生執行檔來檢查程式的 輸出是否有錯誤。
¾ Compile (Group):所有使用者合作完成程式專案作業時所使用的功 能,當使用者合作完成程式專案時,可以使用此項功能來編譯並執行 已完成的程式專案(如圖 26 所示)。其主要是將所有使用者的程式碼整 合過後再利用 GCC 編譯器來編譯檢查語法與程式執行後的結果正確 與否,能夠讓所有使用者檢查自己編輯的程式碼語法與程式輸出結果 是否出現問題,可讓他們自行檢查並進行修改。
z 顯示行號
使用者在編輯程式時,可以在「Option」中勾選「Line Number」
來顯示該編輯視窗的行號(如圖 27 所示)。每位使用者所使用的編輯視 窗皆可顯示行號,而使用者僅能看到所擁有之編輯視窗的行號。
z C 程式語言參考教材
使用者在編寫程式過程中可能遭遇到各式各樣的問題,本學習工 具為輔助學習者在遇到問題時能夠及時地找出解答,提供了一部 C 語 言的參考教材,給予使用者得以快速地獲得解決問題的依循管道(如圖 28 所示)。教材的製作方面主要是節錄自旗標出版社所出版,由洪維 恩先生著作的「C 程式語言教學手冊」(四版)。
圖 25 Compile(Personal)功能視窗
圖 26 Compile(Group)功能選單視窗
圖 27 顯示行號之選單視窗
圖 28 C 語言參考教材之畫面
第四章 實驗方法與結果分析
本章將提出兩項實驗的方法及實驗結果分析。第一項實驗為語音服務的可 行性實驗,針對本系統所加入的 VoIP 語音服務來進行實驗,測試其使用的狀況 與資源消耗的程度。第二項實驗則是學習者使用此系統成效之實驗,在學習者 使用此系統後利用問卷的方式來得知此系統對於學習者的學習是否有影響。
4.1 實驗一:語音服務可行性
4.1.1 實驗目的
為了驗證本研究之語音服務功能的可行性,證明 Voice Server 能夠在一般 個人電腦平台與 ADSL、Cable 等網路上順利運作,我們將 Voice Server 建置在 一台 Intel Pentium4 3.0 GHz 的個人電腦,測量其網路頻寬及電腦資源的使用程 度。在此實驗中,電腦配備及音效設備皆為一般學生所使用的配備,並無使用 高等級的設備,也可以來證明此系統之語音服務功能在一般電腦平台上即可運 作。
4.1.2 實驗資源配置
本實驗在中華大學資管系 M315 電腦實驗室進行實驗,共使用 31 台電腦設 備。Voice Server 建置在 Intel Pentium4 3.0 GHz,記憶體 512MB 的個人電腦,
而參與實驗的個人電腦,一部分為 Intel Pentium4 3.4 GHz 及記憶體 1GB,另一 部分為 Intel Core2 Duo 2.33GHz 及記憶體 1GB 的個人電腦上,每台電腦所使用 的作業系統皆為 Windows XP Professional,並且皆有連上同一個區域網路。除 了建置 Voice Server 的電腦之外,其餘 30 台電腦上都有安裝本系統並且執行連 接上 Voice Server。
4.1.3 測量方法
1. 網路傳送/接收量與 CPU 使用率:以 Windows XP Professional 內部之「效 能」工具程式來紀錄每分鐘 Voice Server 的網路傳送/接收量與 CPU 使用率。
2. 模擬語音溝通:為了要模擬多人在撰寫程式的同時進行語音溝通之情形,
我們使用了語音產生器來播放一段事先錄製好的人聲。人聲的部分是從一 段文章閱讀的對話,G.711 的 wav 格式製作節錄而成,這段語音將利用語音 產生器不斷的發送語音封包,播放到實驗結束為止。
3. 實驗步驟:本實驗的目的是測量多人同時上線時,Voice Server 所產生的網 路流量與 CPU 的使用率。實驗的流程步驟如下:
i. 啟動 Voice Server。
ii. 由每一組的組長啟動 Master Server 並登入系統。
iii. 各小組的成員在 Master Server 啟動完成後即可登入其所屬小組的 Master Server。而所有的使用者開啟本軟體平台之後將自動連上 Voice Server,但是為了先測量未使用語音功能時的網路流量和 CPU 使用 率,並沒有使用語音對話。Voice Server 每分鐘的網路流量與 CPU 使 用率將記錄在記錄檔中,待 30 分鐘以後,停止所有的用戶端、Master Server 和 Voice Server ,並儲存其紀錄檔。
iv. 接著在重複步驟 iii 的流程開啟 Master Server、Voice Server 及所有用戶 端,再將每一台用戶端電腦上的語音產生器開啟並連結上 Voice Server,
產生器便會將語音封包傳送到 Voice Server 上,以模擬真人發音所傳送 的語音封包.
v. 當 30 台用戶端電腦的語音產生器皆連結上 Voice Server 並開始相繼傳 送語音封包之後,直到 30 分鐘過後,便可停止測量。接著儲存網路傳 送/接收量的 log 檔案與 CPU 使用率的 log 檔。
vi. 停止並關閉所有的用戶端電腦、和 Server 端。實驗結束。
4.1.4 Voice Server 網路流量結果分析
從 Voice Server 的行為來加以分析,Voice Server 必須要持續地與所有跟它 建立連線之 Client 保持連線,並混合轉送其它連線 Client 之語音訊息封包,我
們將分析 Voice Server 接收與傳送的網路流量,如圖 29 與圖 30 所示。在圖 29 中,X 軸代表實驗流程時間,Y 軸代表 Voice Server 網路接收流量。圖中虛線 代表沒有使用聲音時的網路接收量,而實線代表的是有使用聲音時的網路接收 量,我們將圖分成兩個部分來分析。在時間區間 0~4 分鐘時,Voice Server 啟動 而所有的用戶端電腦正在連接上 Server,可以看到圖中此區間的實線不斷爬升 到 170 Kbps 左右,而虛線部分則低於 1 Kbps 以下。而從 4 分鐘以後,所有的 用 戶 端 電 腦 都 已 經 登 入 並 開 始 持 續 的 傳 送 語 音 訊 息 封 包 , 實 線 則 維 持 在 160~180 Kbps 的流量,虛線則依舊低於 1 Kbps 以下。根據圖 29 所示,Voice Server 網路接收語音訊息的流量並未超過 180Kbps,以 30 位使用者來計算,平 均 Voice Server 所接收每位使用者傳送的封包流量大約在 6Kbps 以下,以目前 的寬頻網路如 ADSL 所提供的頻寬速度(目前最低費率下載 256Kbps/上傳 64Kbps)是足夠使用的。
圖 29 Voice Server 網路接收流量圖
在圖 30 中,X 軸為實驗流程的時間,而 Y 軸則是 Voice Server 傳送廣播語 音訊息封包的流量,虛線代表沒有使用聲音時的網路接收量,而實線代表的是 有使用聲音時的網路接收量,我們將圖 30 分為三個部分來做分析。在實驗時間 第 0~4 分鐘時,Voice Server 啟動且所有用戶端正在登入系統,但是有九位使用 者在沒有使用語音交談功能實驗時資料登入發生問題,導致連線錯誤,因此可
以看到在第 4~11 分鐘時,虛線部分呈現梯形。而在實線的部分,在第 4 分鐘以 後 30 位使用者即登入完成並連接上 Voice Server,而封包傳輸的速率也在同時 達到 290Kbps 以上,虛線的部分則從 11 分鐘以後也達到 290Kbps 左右。因此 平均每位使用者接收到 Voice Server 所廣播的語音訊息封包流量約在 10Kbps 以 下,就以一般寬頻網路的下載速率來說足以應付的。
圖 30 Voice Server 網路傳送流量圖
4.1.5 Voice Server CPU 使用率分析
圖 31 Voice Server CPU 使用率圖
根據圖 31 所示,我們可以看到 CPU 使用率除了在第一分鐘啟動系統時超 過 10%以上,之後便低於 10%以下,並且變化量低於 5%,顯示系統相當穩定 地執行。這是因為我們使用了預先定義好的陣列表在音訊封包的混合過程中去 對應聲音密度的變化。因此 3.0 GHz 的 CPU 處理器效能足夠讓 Voice Server 來 使用。
4.2 實驗二:系統使用成效實驗
4.2.1 實驗目的
本實驗目的在於評估合作學習系統平台結合 C 語言程式設計課程學習,對 學習者的學習成效、學習態度及學習動機上是否有所影響,以及該影響是否為 正面、支持,並作為日後融入大學 C 語言程式設計課程教學輔助工具。
4.2.2 問卷調查量表設計
本研究為了評估合作學習工具是否真的對於學習者有所助益,以及對於本 系統的一些看法,因此我們主要針對下列幾個方面去設計問卷調查量表:
(1) 易於使用:學習者在本系統之各項操作上的認定為程度為何?
(2) 有用性:學習者對本系統之各項有用性的認定為程度為何?
(3) 合作通訊對於學習的幫助?
(4) 使用的態度:學習者對本系統各項使用態度上的認定程度為何?
(5) 有趣性:學習者對於使用本系統後是否有趣的認定程度為何?
(6) 程式設計學習的團體關係?
(7) 使用意願:學習者對本系統各項使用意願上的認定程度為何?
4.2.3 實驗背景
z 實驗地點:中華大學資管系 M315 實驗室。
z 實驗對象:該系大二以上第一次或第二次學習 C 程式語言之學生。
z 人數統計:男生 25 人、女生 16 人,總人數為 41 人,如表 4 所示。
z 年齡層統計:18 歲有 1 人,19 歲與 20 歲各占 16 人,21 歲與 22 歲占 4 人,
如表 5 所示。
z 年級分布:二年級 34 人,三年級 1 人,四年級 6 人,如表 6 所示。
z 實驗內容:以三人為一組,以小組合作的方式,在固定的時間內完成二至 三題的 C 程式專案,專案題目的範圍則為 C 程式語言之基本概念,如 if-else 敘述、switch-case 敘述、基本函式的運用等。
表 4 人數統計
性別 人數 比例
男 25 60.98%
女 16 39.02%
表 5 年齡層統計
年齡 人數 比例
18
1 2.44%19
16 39.02%20
16 39.02%21
4 9.76%22
4 9.76%表 6 年級分布統計
年級 人數 比例
1
0 0.00%2
34 82.93%3
1 2.44%4
6 14.63%基本資料的調查方面,所有受測者家中或宿舍都擁有電腦與網路,而使用 與學習電腦的時間方面(如表 7),半年有 1 人,1~2 年者有 7 人,2~5 年者有 14 人,5 年以上則有 19 人。每天使用電腦的時間(如表 8),0~2 小時有 2 人,2~4 小時有 11 人,4~6 小時有 15 人,6 小時以上者有 13 人。每週使用電腦的時間(如 表 9),0~7 小時有 2 人,8~14 小時 7 人,15 小時以上有 32 人。而修過 C 語言
程式課程次數統計(如表 10),修過 0 次有 2 人,1 次有 11 人,2 次有 20 人,3 次有 7 人,4 次者有 1 人。撰寫過 C 程式的個數方面(如表 11),未曾撰寫過者 有 2 人,1~5 個有 7 人,6~10 個有 6 人,11~15 個有 7 人,15 個以上有 19 人。
學習 C 程式語言喜歡與同學討論程式部分(如表 12),選擇是的人有 30 位,否 的人有 11 位。而在測驗過程中完成的專案項目,完成兩項者有 38 人,完成三 項有 3 人(如表 13)。
表 7 學習使用電腦年數統計
年數 人數 比例
半年以內 1 2.44%
1~2 年
7 17.07%2~5 年
14 34.15%5 年以上
19 46.34%表 8 每天使用電腦時間統計
時間 人數 比例
0~2 小時
2 4.88%2~4 小時
11 26.83%4~6 小時
15 36.59%6 小時以上
13 31.71%表 9 每週使用電腦時間統計
時間 人數 比例
0 小時
0 0.00%0~7 小時
2 4.88%8~14 小時
7 17.07%15 小時以上
32 78.05%表 10 修過 C 程式語言課程次數統計
次數 人數 比例
0
2 4.88%1
11 26.83%2
20 48.78%3
7 17.07%4
1 2.44%表 11 撰寫 C 語言程式個數統計
個數 人數 比例
未曾撰寫過 2 4.88%
1~5
7 17.07%6~10
6 14.63%11~15
7 17.07%15 以上
19 46.34%表 12 學習 C 程式語言喜歡與同學討論意願
人數 比例
是 30 73.17%
否 11 26.83%
表 13 測驗中的程式專案完成項目統計
個數 人數 比例
0
0 0.00%1
0 0.00%2
38 92.68%3
3 7.32%4.2.1 問卷調查分析
本節將使用者在測驗過後所做的問卷調查中,針對共 29 項問題逐一做統計 分析。另外還有五題的開放式問題讓使用者來回答,以提供我們了解使用者對 於使用此系統學習的過程中一些使用上的問題。
(1) 覺得提供的功能容易使用
針對問卷項目中「覺得提供的功能容易使用」的調查結果如圖 32 所
示,非常贊成有 24%、贊成有 44%,兩者加起來約 68%,所以此系統對大 部分的使用者而言使用上並不會增加負擔,也不會有使用上的因擾,沒有 新工具適應上的問題。
(2) 功能按鍵容易找到
針對問卷項目中「功能按鍵容易找到」的調查結果如圖 33 所示,非 常贊成有 20%、贊成有 49%,兩者加起來近 70%,所以此系統的按鍵位置 對大部分的使用者來能夠很容易就能找到。
圖 32 提供的功能容易使用調查
圖 33 功能按鍵容易找到調查
(3) 覺得學習過程容易
針對調查項目中「覺得學習過程容易」調查結果如圖 34 所示,非常贊成有 20%、贊成有 41%,兩者加起來超過 60%,顯示在學習過程中大部分的使用者 覺得是容易的。
圖 34 覺得學習過程容易調查 (4) 覺得即使沒人指導一樣能使用此系統
針對調查項目中「即使沒人指導一樣能使用此系統」調查結果如圖 35 所 示,非常贊成有 7%、贊成有 24%,而選擇普通有 37%,不贊成者與非常不贊 成者加起來有 32%,選擇普通的人居多,顯示部分的使用者認為使用此系統時 仍需要指導協助。
圖 35 覺得沒人指導一樣能使用此系統調查
(5) 即使不曾使用過類似的學習系統,一樣能使用此系統
針對調查項目中「即使不曾使用過類似的學習系統一樣能使用此系統」調 查結果如圖 36 所示,非常贊成有 17%、贊成有 24%,而選擇普通有 34%,不 贊成與非常不贊成者共有 25%,顯示大部分使用者認為沒有用過類似的學習系 統,他們仍舊能夠操作使用此系統。
圖 36 不曾使用過類似的學習系統一樣能使用此系統調查 (6) 覺得只要有系統操作手冊可參考就能使用此系統
針對調查項目中「覺得只要有系統操作手冊可參考就能使用此系統」調查 結果如圖 37 所示,非常贊成有 24%、贊成有 41%,兩者加起來 65%,顯示大 部分使用者認為只要有系統的操作手冊,便能夠順利使用此系統。
圖 37 只要有系統操作手冊可參考就能使用此系統調查
(7) 覺得如果操作上遇到問題,有人可以協助我就能使用此系統
針對調查項目中「覺得如果操作上遇到問題,有人可以協助我就能使用此 系統」調查結果如圖 38 所示,非常贊成有 29%、贊成有 51%,加起來共 80%,
顯示使用者認為只要在操作有問題時有人給予協助,便能夠順利使用此系統。
圖 38 如果操作上遇到問題,有人能協助我就能使用此系統調查 (8) 此系統提供互動高的學習環境
針對調查項目中「此系統提供互動高的學習環境」,調查結果如圖 39 所示,
非常贊成有 34%、贊成有 46%,加起來共 80%,所以大部分的使用者覺得此系 統具有互動性高的學習環境以提供他們學習。
圖 39 此系統提供互動高的學習環境調查
(9) 此系統能幫助學習程式除錯能力
問卷調查項目中「此系統能幫助學習程式除錯能力」,調查結果如圖 40 所 示。非常贊成有 17%、贊成有 42%,將近六成的使用者覺得此系統能幫助他們 學習及培養程式除錯的能力。
圖 40 此系統能幫助學習程式除錯能力調查 (10) 此系統能幫助學習程式溝通能力
針對問卷調查項目中「此系統能幫助學習程式溝通能力」,調查結果如圖 41 所示。非常贊成有 24%、贊成有 54%,將近八成的使用者覺得此系統能協助 他們培養與其他夥伴一起溝通寫程式的能力。
圖 41 此系統能幫助學習程式溝通能力調查
(11) 此系統能幫助學習程式撰寫能力
針對問卷調查項目中「此系統能幫助學習程式撰寫能力」,調查結果如圖 42 所示。非常贊成有 20%、贊成有 54%,所以近七成五的使用者覺得此系統能 幫助他們增進撰寫程式的能力。
圖 42 此系統能幫助學習程式撰寫能力調查 (12) 此系統能幫助學習開發程式能力
針對調查項目中「此系統能幫助學習程式開發能力」,結果如圖 43 所示。
有 17%的使用者認為非常贊成,贊成有 61%,所以有近八成的使用者認為使用 此系統可以增進開發程式的能力。
圖 43 此系統能幫助學習程式開發能力調查
(13) 此系統有很清楚地編譯及除錯資訊
問卷調查項目中「此系統有很清楚地編譯及除錯資訊」,結果如圖 44 所示。
有 10%的使用者非常贊成,選擇贊成有 39%,而認為普通的人有 42%,顯示使 用者對於此系統編譯及除錯資訊,還不夠清楚地了解程式碼編譯除錯後的訊息。
圖 44 此系統有很清楚地編譯及除錯資訊調查 (14) 聊天室(Chat Room)對於在與組員溝通互動時有幫助
問卷調查項目中「聊天室(Chat Room)對於在與組員溝通互動時有幫助」,
結果如圖 45 所示。非常贊成與贊成各有 44%,所以使用者認為聊天室(Chat Room)的功能提供讓他們在彼此溝通互動上更加的方便。
圖 45 聊天室(Chat Room)對於在與組員溝通互動時有幫助調查
(15) 語音對話功能(Voice Dialog)對於在與組員溝通互動時有幫助
針對調查項目中「語音對話功能(Voice Dialog)對於在與組員溝通互動時有 幫助」,結果如圖 46 所示。非常贊成占 51%,贊成占 34%,共 85%,顯示使用 者覺得語音對話的功能讓他們能暢所欲言,能即時的討論、解決難題。
圖 46 語音對話功能(Voice Dialog)對於在與組員互動時有幫助調查 (16) 與小組成員共同撰寫程式對開發程式的品質更好
針對調查項目中「與小組成員共同撰寫程式對開發程式的品質更好」,結果 如圖 47 所示。非常贊成占 37%,贊成也占 37%,所以近七成五的使用者認為 能夠跟小組成員一起寫程式,能夠提升他們所開發程式的品質。
圖 47 與小組成員共同撰寫程式對開發程式的品質更好調查