熟妇人妻中文字幕在线视频_无码人妻精品视频_久久躁夜夜躁狠狠躁_偷碰人妻无码视频

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計算機論文>基于WWW的協(xié)同式CAI軟件的Java實現(xiàn)

基于WWW的協(xié)同式CAI軟件的Java實現(xiàn)

時間:2022-08-06 11:00:51 計算機論文 我要投稿
  • 相關(guān)推薦

基于WWW的協(xié)同式CAI軟件的Java實現(xiàn)

摘 要 本文介紹一個用J++實現(xiàn)的基于Web環(huán)境的協(xié)同式計算機輔助教學(xué)軟件的結(jié)構(gòu),并給出了具體實現(xiàn)中的一些關(guān)鍵技術(shù)。
關(guān)鍵詞 J++,Web,遠(yuǎn)程教學(xué),Socket通信

1 引言
  隨著Internet網(wǎng)絡(luò)技術(shù)的發(fā)展,遠(yuǎn)程多媒體教學(xué)成為當(dāng)前的研究熱點;贗nternet的WWW應(yīng)用模式作為一種方便、迅速的共享信息手段,深受用戶歡迎。用戶通過訪問超文本頁面瀏覽多媒體教學(xué)內(nèi)容,通過點擊超鏈去進行自由的探索式學(xué)習(xí)。但僅基于超文本頁面的教學(xué)存在很多缺點,如:學(xué)生容易在超鏈中迷失方向;教師不能對學(xué)生的學(xué)習(xí)行為進行控制,教學(xué)過程缺乏有序性;教師與學(xué)生之間不能進行交流,教師對學(xué)生的學(xué)習(xí)效果缺乏檢查手段等。本文介紹的計算機輔助教學(xué)軟件克服了以上缺點,整個軟件采用J++編寫實現(xiàn),由服務(wù)器部分、學(xué)生部分、教師教學(xué)部分、課件維護部分共四部分組成,該軟件實際上為一個教學(xué)框架系統(tǒng),所有教學(xué)材料由教師安排,教師和學(xué)生通過訪問各自的URL地址進入角色。學(xué)生在教師的現(xiàn)場控制進行學(xué)習(xí)、討論、練習(xí)和測試。

2 系統(tǒng)的功能
2.1 超文本頁面學(xué)習(xí)
  教師對學(xué)生的學(xué)習(xí)頁面進行統(tǒng)一向?qū)。教師選擇學(xué)習(xí)頁面,將此頁面的URL地址傳送給學(xué)生,引導(dǎo)學(xué)生到該Web頁面進行學(xué)習(xí),如此增加了學(xué)習(xí)的針對性,滿足有組織、有控制的教學(xué)需要。
2.2 實時討論
  實時討論是協(xié)同式教學(xué)軟件的一個基本特征。在討論期間,教師可提問學(xué)生,安排作業(yè)等,學(xué)生則可將自己的學(xué)習(xí)體會及疑問告訴教師。學(xué)生之間可以就學(xué)習(xí)中的問題進行實時交談。系統(tǒng)提供了兩種工具以支持網(wǎng)上實時討論:一種是純文字交談,如果發(fā)言者未選擇用戶,則為公開發(fā)言,否則為私下發(fā)言,只送往選定用戶,在各用戶的討論面板上有一個文本域顯示每條發(fā)言的發(fā)言者及發(fā)言內(nèi)容。另一種是共享白板,教師和學(xué)生都可往白板上寫內(nèi)容,白板內(nèi)容所有用戶保持一致,共享白板可支持線、圓、矩形、文字等基本繪圖操作,并可選擇線條顏色。
2.3 交互式做練習(xí)
  教師發(fā)出練習(xí)的指示消息,則學(xué)生將自動進入練習(xí)界面,系統(tǒng)自動從試題庫中調(diào)與學(xué)習(xí)問題有關(guān)的試題供學(xué)生操練,在操練時,系統(tǒng)將學(xué)生的解答與標(biāo)準(zhǔn)答案對比看是否答對,并彈出對話框給學(xué)生反饋鼓勵信息。交互式練習(xí)有助于學(xué)生加深對教學(xué)內(nèi)容的理解。
2.4 網(wǎng)上測試
  測試是教學(xué)過程中不可缺少的教學(xué)環(huán)節(jié),通過測試,教師可對學(xué)生的學(xué)習(xí)進行考核,并借此了解學(xué)生的學(xué)習(xí)效果,為改進教學(xué)提供依據(jù)。學(xué)生則通過測試可了解自己對內(nèi)容的掌握情況,增加學(xué)習(xí)興趣。目前,每次測試試卷是由教師從試題庫選題組卷并安排分?jǐn)?shù)。測試有時間限制。

3 系統(tǒng)的總體設(shè)計
  從系統(tǒng)要完成的功能看,有兩類工作方式:一類是客戶/服務(wù)器方式(如學(xué)生做題),客戶方發(fā)出訪問申請,服務(wù)方給出響應(yīng)?蛻羰莿幼鞯陌l(fā)起者,何時發(fā)出申請由客戶方?jīng)Q定,客戶方發(fā)出申請后立即可從Socket通道去取服務(wù)方的結(jié)果。服務(wù)器方必須始終處于監(jiān)聽等待狀態(tài)。




圖1 系統(tǒng)的整體設(shè)計結(jié)構(gòu)

  另一類是網(wǎng)上的協(xié)作應(yīng)用(如實時討論等),在這種方式中,任何一方都可能成為消息的發(fā)送方,而另一方則成為消息的接收方。發(fā)送方的動作由用戶界面的各類事件驅(qū)動引發(fā),其時間性是偶然的,接收方必須時刻處于接收監(jiān)聽狀態(tài)。由于通信雙方處于對等的位置,因此雙方都要處于接收等待狀態(tài)。
  由于Java的安全性限制,兩客戶瀏覽器間不能直接建立Socket連接,要實現(xiàn)兩瀏覽器間的通信必須通過Web服務(wù)器上的Java應(yīng)用程序進行轉(zhuǎn)接。綜上所述,為了實現(xiàn)系統(tǒng)的功能,筆者將系統(tǒng)的總體設(shè)計為如圖1的形式。
  有關(guān)說明:
① 學(xué)生和教師分別以客戶/服務(wù)器的方式與Web服務(wù)器上Java應(yīng)用程序建立通信連接。服務(wù)器方的連接監(jiān)聽線程負(fù)責(zé)監(jiān)聽來自客戶的Socket連接申請。服務(wù)方要為每個連接客戶建立一個消息處理線程,該線程負(fù)責(zé)接收來自相應(yīng)客戶的消息,對消息進行分析處理。將消息轉(zhuǎn)發(fā)到其他客戶。
② 學(xué)生和教師方都有一個消息接收線程負(fù)責(zé)接收來自服務(wù)方的消息。該線程通過調(diào)用用戶界面對象中的方法將消息要求反映在用戶界面上。為此,在設(shè)計消息接收線程類時,在其構(gòu)造方法中將用戶界面對象作為參數(shù)傳給該類的對象,這是Java中實現(xiàn)對象間互訪的基本方法。
③ 訪問試題庫的過程是學(xué)生方發(fā)送相應(yīng)消息到服務(wù)器,服務(wù)器方通過COM組件RDO訪問基于ODBC的數(shù)據(jù)庫,并將訪問結(jié)果傳回給學(xué)生。
④ 教師可對學(xué)生的學(xué)習(xí)過程進行控制,在服務(wù)器方有一個線程專門接收來自教師的控制消息并將其轉(zhuǎn)發(fā)給學(xué)生,這些控制包括頁面學(xué)習(xí)向?qū)Ш蛯W(xué)習(xí)階段的控制,這些學(xué)習(xí)階段包括:實時討論、做練習(xí)、測試。學(xué)生的操作界面將隨教師的控制消息變化。

4 幾個技術(shù)關(guān)鍵
4.1 數(shù)據(jù)庫訪問
  Virsual J++針對Microsoft操作系統(tǒng)對Java類庫做了專門的擴展,它將Java與COM(組件對象模型)和支持Java的Internet Explorer 3.0瀏覽器相集成,用戶可在Java程序中訪問任何支持COM的軟件。對于數(shù)據(jù)庫的訪問,在J++中提供了DAO(Data Access Object)和RDO(Remote Data Object)兩種方法。本軟件中采用RDO對象實現(xiàn)對ODBC數(shù)據(jù)源數(shù)據(jù)的訪問。由于對數(shù)據(jù)庫的連接是建立在ODBC的基礎(chǔ)上,所以可以支持對各種類型的數(shù)據(jù)庫訪問。筆者采用的是Access數(shù)據(jù)庫。
  通常,Java Applet是在一個“沙箱”中運行,可訪問的資源有限,使用COM服務(wù)意味著存取沙箱之外的資源,為此,IE在安全性上要作嚴(yán)格的檢查,它將Java類分為可信類和不可信類,不可信類不能使用COM服務(wù),所有不是從類路徑裝入的類都是不可信的,包括從網(wǎng)上下載的類,除非它們被封裝在具有一個數(shù)字簽名的.CAB文件中。為了避免安全性帶來的麻煩和減少客戶端的ODBC配置,筆者在訪問試題庫的部分中采用了由服務(wù)器方Java應(yīng)用程序訪問數(shù)據(jù)庫的辦法,無安全性限制。瀏覽器方Applet程序通過與服務(wù)器方應(yīng)用程序通信來傳遞訪問請求和結(jié)果。
  整個系統(tǒng)的數(shù)據(jù)庫表格設(shè)計如下:
. 填空題表:含試題標(biāo)識號、問題號、難度、試題內(nèi)容、答案共五個字段。
. 判斷題表:結(jié)構(gòu)同上。
. 填空題試卷表:試題標(biāo)識號、分?jǐn)?shù)共兩字段。
. 判斷題試卷表:結(jié)構(gòu)同上。
. 教學(xué)內(nèi)容索引表:含章號、節(jié)號、問題號、問題名、URL地址共五個字段。
. 章標(biāo)題表:含章號、標(biāo)題共兩字段。
. 節(jié)標(biāo)題表:含章號、節(jié)號、標(biāo)題共三個字段。
. 成績登記庫:含姓名,成績兩字段。
  從數(shù)據(jù)庫設(shè)計可看出,本系統(tǒng)將教學(xué)內(nèi)容與試題庫中試題通過問題號連接起來。
4.2 數(shù)據(jù)通信處理
  從總體設(shè)計可知,系統(tǒng)有兩類應(yīng)用,它們有不同的工作特點。基于客戶/

服務(wù)器的應(yīng)用是客戶方發(fā)出訪問請求后,再直接在事件代碼中獲取服務(wù)方返回的結(jié)果;而對于協(xié)作應(yīng)用則必須在所有客戶方分別設(shè)立消息監(jiān)聽線程去獲取和處理數(shù)據(jù)。從實現(xiàn)效率上考慮,這兩類應(yīng)用不宜共用一條Socket通道。筆者采用了雙Socket通路的辦法。在服務(wù)方設(shè)立兩個Socket監(jiān)聽口,分別是8883和8884,所有客戶端要分別針對兩個監(jiān)聽口建立Socket連接。為避免創(chuàng)建過多線程,并將兩類應(yīng)用通道分開,系統(tǒng)在通道的使用上作了一些特殊處理,具體情況說明如下:
  . 學(xué)生客戶:使用8883口發(fā)送消息,使用8883口接收數(shù)據(jù)庫訪問結(jié)果,使用8884口接收所有其它消息。
  . 服務(wù)器方:系統(tǒng)為每個客戶創(chuàng)建一個消息接收線程,它使用8883口接收消息,并將消息通過8884口的相應(yīng)輸出流轉(zhuǎn)發(fā)給其他客戶方?紤]到只有教師能發(fā)控制消息,在服務(wù)器方,針對8884口只建立一個教師控制監(jiān)聽線程,它專門使用8884口接收教師控制消息,并通過8884口發(fā)送給所有學(xué)生。與學(xué)生對應(yīng)的8884口的輸入流未用,因此服務(wù)方也不必創(chuàng)建相應(yīng)的監(jiān)聽線程。
  . 教師方:使用8884口發(fā)送教學(xué)控制信息,使用8883口發(fā)送談話、白板、查分等消息。接收消息線程使用8884口接收消息。
  服務(wù)器方是通過8884口的輸出流將消息轉(zhuǎn)發(fā)到各個客戶方,這就要求與每個用戶連接對應(yīng)的輸出流要能實現(xiàn)共享訪問,這是各用戶間互發(fā)信息的基礎(chǔ)。為此,在服務(wù)方通信線程類的設(shè)計上采用Static數(shù)組存放輸出流,這樣既可實現(xiàn)同一類中各對象間的數(shù)據(jù)共享,又可在不同類中通過類名直接訪問其數(shù)據(jù)。
  由于在服務(wù)方和客戶方都采用了多線程設(shè)計,系統(tǒng)的效率得以充分發(fā)揮。
4.3 消息設(shè)計
  整個系統(tǒng)是建立在消息基礎(chǔ)上的,服務(wù)器端和客戶端都承擔(dān)有消息處理的工作。大量基于協(xié)作應(yīng)用的消息,服務(wù)方只負(fù)責(zé)轉(zhuǎn)發(fā),由客戶方進行處理。每類消息由消息頭和內(nèi)容組成,消息頭用于系統(tǒng)判別。在整個系統(tǒng)中,主要有6類消息:交談消息;白板消息;向?qū)ⅲ挥脩舻侨牒屯顺鱿;試題庫訪問消息其它消息(如登分、查分等)。
4.4 教學(xué)應(yīng)用界面設(shè)計
4.4.1 教師界面
  教師操作界面是固定的,在Applet面板上含四部分內(nèi)容:①用戶列表;②控制面板,有頁面向?qū)、討論、練?xí)、測試、查成績共五個按鈕,其中,前四個按鈕分別用來控制學(xué)生進入各學(xué)習(xí)階段,學(xué)生的界面將隨教師的控制變化;③交談文本顯示域和談話錄入按鈕,點擊“談話錄入”按鈕,將彈出一個文本錄入窗口供發(fā)送談話內(nèi)容;④共享白板及工具欄。
4.4.2 學(xué)生界面
  學(xué)生界面是一個變動的界面,由兩個幀構(gòu)成,一幀用來顯示Java Applet,另一幀顯示教師發(fā)送的URL頁面內(nèi)容。Applet幀的界面由多塊面板(分別是“登錄面板、“討論面板”、“練習(xí)面板”、“測試面板”)采用卡片布局構(gòu)成,初始為“登錄面板”,以后顯示哪塊面板由教師的控制消息去控制。URL顯示幀則按教師發(fā)送的URL內(nèi)容顯示多媒體頁面。在學(xué)生測試時,可允許學(xué)生在兩類試題(是非判斷題和填空題,選擇題可歸為填空一類)間來回切換,并可用翻動試題按鈕前后瀏覽試題。為了提高訪問試題的速度和減少服務(wù)器端的訪問負(fù)擔(dān),在客戶端使用向量保存對已讀過的試題內(nèi)容、標(biāo)準(zhǔn)答案及學(xué)生的解答等信息,并引入一個標(biāo)記向量標(biāo)記某序號的題是否訪問過,只有沒訪問過的試題才去訪問試題庫。測試時將創(chuàng)建一個計時線程,時間用完或點擊“答題結(jié)束”按鈕,計算機將自動進行評分,將得分以對話框形式告訴用戶,同時寫入成績登記表供教師查詢。
4.5 URL向?qū)У膶崿F(xiàn)
  URL輸入與傳送 教師點擊“頁面向?qū)А卑粹o,系統(tǒng)將訪問學(xué)習(xí)內(nèi)容索引等表,并彈出一個對話框讓教師選定要學(xué)習(xí)的章節(jié)和問題,系統(tǒng)將其對應(yīng)的URL地址通過Socket通道送往所有學(xué)生客戶端,同時教師端將彈出一個新瀏覽器顯示頁面以供確認(rèn)。
  URL顯示 步驟如下:①使用URL類按接收字符串生成URL對象;②通過Applet類中的getAppletContext()方法取得小應(yīng)用程序的AppletContext;③通過AppletContext接口的showDocument方法顯示URL內(nèi)容。該方法的具體格式和參數(shù)說明如下:
  void showDocument(URL url , String target)
  其中,target參數(shù)用于指定文件內(nèi)容顯示的位置,其具體值及作用見下表:


值 文件顯示位置
"—self" 當(dāng)前幀
"—parent" 父幀
"—top" 最頂部的幀
"—blank" 開辟新瀏覽器窗口顯示
"幀名" 在指定的幀中顯示

  在教師方筆者采用了“—blank”的辦法,即另開辟一個瀏覽器窗口顯示URL內(nèi)容,供教師確認(rèn)URL內(nèi)容。學(xué)生方采用了多幀的辦法,在HTML文件中安排多幀,一幀用來顯示Java Applet,另一幀顯示教師發(fā)送的URL頁面內(nèi)容,在HTML文件中規(guī)定幀的大小可調(diào)整,這樣學(xué)生可調(diào)整幀邊界去更方便地閱讀內(nèi)容。
5 結(jié)束語
  本文介紹了一個基于WWW的協(xié)作式教學(xué)軟件系統(tǒng)的具體實現(xiàn)方法。該軟件實際為一個教學(xué)框架系統(tǒng),具體教學(xué)內(nèi)容由教師使用系統(tǒng)的課件維護部分去安排和設(shè)計,如此可較好地發(fā)揮教師的主觀能動性。該軟件作為一個實用軟件在筆者的Java課程的教學(xué)中得以運用。筆者擬對該系統(tǒng)作如下改進:①提供自動組卷功能。②引入更完善的學(xué)生模型對學(xué)生的學(xué)習(xí)水平進行評估;提供多種教學(xué)方式,使系統(tǒng)在有教師和無教師兩種情形下都可運作,在CAI的智能性上做些工作。③在多媒體支持(如:共享視像和實時語音)上作研究。

作者簡介:丁振凡 副教授。主要研究方向:計算機輔助教學(xué)、計算機網(wǎng)絡(luò)。
作者單位:華東交通大學(xué)網(wǎng)絡(luò)中心 江西.南昌(330013)

參考文獻(xiàn)
1.廖衛(wèi)東,等編著.Java程序設(shè)計實用指南.北京:機械工業(yè)出版社,1996;(10)
2.美Jamie Jaworski著.曹康,等譯. Java開發(fā)指南.北京:中國水利水電出版社,1996
3.申瑞民,等.一個采用CLIENT/SERVER方式基于WWW的多用戶交流討論系統(tǒng).計算機工程,1998

【基于WWW的協(xié)同式CAI軟件的Java實現(xiàn)】相關(guān)文章:

基于新課標(biāo)實現(xiàn)教學(xué)需求08-16

基于Linux內(nèi)核的鍵盤模擬實現(xiàn)08-19

對制作CAI軟件的一些思考08-07

基于Client/Server 的課件系統(tǒng)的設(shè)計與實現(xiàn)04-12

論CAI英語教學(xué)軟件的評價標(biāo)準(zhǔn)08-17

政治教學(xué)中的引導(dǎo)發(fā)現(xiàn)式CAI模式08-17

實現(xiàn)基于Spring框架應(yīng)用的權(quán)限控制系統(tǒng)08-19

在C 中實現(xiàn)JAVA的存儲管理機制08-09

素質(zhì)教育呼喚優(yōu)秀教學(xué)CAI軟件--談素質(zhì)教育與教學(xué)軟件開發(fā)08-17

基于Vxworks實時操作系統(tǒng)的串口通信程序設(shè)計與實現(xiàn)08-19