999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

“數據結構”虛擬課堂的設計與實現

2009-09-06 06:26:48肖正興徐人鳳趙志亮
計算機教育 2009年22期

肖正興 徐人鳳 趙志亮

摘要:“數據結構”是軟件專業課程中難教、難學的一門課程,本文針對高職學生特點,設計實現了用于輔助教學的虛擬課堂,重點探討了Authorware動畫的實現、Agent的加入和Java中的多線程技術。

關鍵詞:數據結構;虛擬課堂;Agent;多線程

中圖分類號:G642文獻標識碼:B

1引言

“數據結構”課程是計算機學科非常重要的專業理論課程。這在ACM多次提出的計算機課程建議報告書中得到了充分體現。通過本課程的學習,使學生掌握如何把現實世界的客觀問題變換為在計算機內的表示形式;學會組織數據、選擇算法、養成良好的程序設計風格;提高邏輯思維和抽象思維的能力,為以后有關的計算機課程的學習和從事軟件開發奠定堅實的基礎。

不同層次的院校,根據要求不同,在“數據結構”課程教學的側重點上有所分別,針對高職學生,主要是培養學生算法的應用能力,所以在教學內容選擇上,應以“理論夠用,廣而不深”為原則;教學方法的選擇上,注重培養學生對理論成果的應用能力;教學手段上盡可能生動形象,幫助學生理解掌握概念理論。

為了達到上述要求,僅僅通過課堂上的傳統方式講解數據結構,教學上存在難度,學生也容易失去興趣。多媒體課件是計算機多媒體技術在教育領域中應用的典型范例,本文針對高職學生的特點,嘗試使用多媒體技術構建一個學生能夠自主學習的虛擬課堂,幫助學習、理解和鞏固這些算法。

2系統設計

2.1虛擬課堂設計思想

虛擬課堂主要由自主學習環境和算法交互環境兩部分組成,其中自主學習環境主要是讓學生進行算法的自學習,以講解和演示為主;算法交互環境提供學生動態產生數據,學習和驗證算法,交互性要求高,所以采用Java語言實現。如圖1所示。

2.1.1自主學習環境

該環境對用戶的交互性要求不高,所以針對這部分內容,系統使用Authorware軟件進行制作,在算法的教學過程中,采用“實例引入→動畫演示→實戰練兵”的教學模式,由淺入深,并由特殊到一般的方式輔助學生學習算法本質,并利用Microsoft Agent技術構建的Merlin老師,在教學過程中指導學生進行算法的學習。每個算法的教學按照上述模式進行自主學習。如圖2所示。

“實例引入”模塊主要通過一個實例演示算法的操作過程;并在演示過程中,講解算法的主要思想;“算法思想”通過對“實例引入”的學習,通過歸納、總結的方式表達出該算法的思想;“動畫演示”模塊通過動畫技術和程序可視化相結合技術,將宏觀的運行和微觀的算法執行相對照,理解算法程序的代碼;“實戰練兵”模塊通過互動的方式測試前面階段學習的基本算法知識;“交互環境”模塊主要是算法的運行的可視化環境,在該環境下,學生能夠利用該工具互動加強算法的理解,并能檢測自己對算法的掌握程度。

在以上模塊中“課程導入”、“實例引入”、“算法思想”、“動畫演示”、“實戰練兵”幾個模塊都是采用遞進的方式組織教學內容,以講授為主,主要以聲音、動畫等形式展現教學內容,同學可以按照上面的組織過程進行學習,也可以自己根據自己的進度,選擇相應的模塊進行學習。

2.1.2算法交互環境

在該環境中,采用程序可視化和動畫動態演示技術相結合的手段來演示算法的運行,對于算法本質的理解有積極作用,輔助教師進行課堂的算法教學,并提供測試環境,并能根據測試的數據,產生正確演示效果。

(1) 二叉樹前、中、后序遍歷演示界面

在上面環境中,遍歷演示主要由三塊組成,畫板區、代碼顯示區和演示提示區。其中畫板區顯示遍歷的動態效果,代碼顯示區顯示代碼的同步執行情況,演示提示區顯示遍歷過程中關鍵性的提示信息。用戶可以隨機建立一個二叉樹,并能調節演示的速度,如圖3所示。

(2) 二叉樹前、中、后序遍歷演測試界面

通過點擊1號按鈕開始進行測試,點擊初始數據按鈕,能夠在手動建樹區域進行二叉樹的建立,在答案區域,選擇前、中或后序遍歷中的一種,然后在編輯框內輸入響應遍歷的結果,結點與結點間用英文狀態下的逗號隔開,單擊檢驗數據按鈕,檢驗輸入的答案是否正確,并給予相應的提示,單擊正確數據按鈕,程序進入演示狀態。

2.2系統功能和特點

2.2.1交互性強的人機交互界面

系統的特點是:較強的交互能力、動態的算法演示、形象的圖形設計、充分應用動畫和色彩體現算法的細節、運用Microsoft Agent充當課件的虛擬教師,貫徹教學策略,增加學習的興趣,突出教學內容的重點。

2.2.2程序可視化和動畫動態演示技術相結合

使教師脫離黑板和粉筆,采用程序可視化和動畫動態演示技術相結合的手段來演示算法的執行過程,對于算法本質的理解有積極作用,輔助教師進行課堂的算法教學,并能為學生自主學習算法提供良好的支撐環境,從而實現用形象的圖形界面為學生搭起通向掌握抽象思維方法的橋梁。

2.2.3多樣的測試環境

按照內容,分別提供有“實戰練兵”模塊,對數據結構中的已知算法進行測試;“交互環境”中,提供有測試功能,通過測試檢驗學生對算法思想的理解,并能在測試的過程中用利用程序可視化與動畫動態演示技術結合,顯示當前測試過程中的執行過程,進一步鞏固學生對算法的理解。

3系統實現關鍵技術

3.1Authorware中動畫的實現

在Authorware中,組合運用【顯示】圖標、【等待】圖標、【擦除】圖標和【判定】圖標,可以設計出多種動畫效果。下面以課件“冒泡排序→動畫演示”部分為例,簡單介紹Authorware中的動畫設計與實現。圖4、圖5形象地展示了程序執行過程。

動畫設計:屏幕右側模擬演示程序單步執行過程(圖5),紅色線框表示當前正在執行的語句。當遇到判斷語句時,屏幕右側出現紅色箭頭提示,指示當前正在進行比較的數據;比較結束,如果需要交換,則使用動畫展示兩個數的位置發生交換。動畫程序部分流程如圖6所示。

3.2Authorware中Agent的添加

為了提高程序易用性、增強軟件界面效果,使軟件具備人性化的交互功能,該軟件在課件中引入了“微軟助手(Microsoft Agent)”——魔法師默林(Merlin)。Microsoft Agent是一種基于微軟視窗平臺的可編程的即時交互性動畫角色,在Authorware中添加Agent的過程如下:

3.2.1檢測課件目標機器上是否安裝了Agent控件

在流程線上添加【計算】設計圖標,并在其中輸入如下代碼:

--定義變量IDAgent記錄agent控件的ClassID

IDAgent:="{D45FD31B-5C6E-11D1-9EC1-00C04FD7081F}"

--根據控件的ClassID檢測是否已經安裝Agent控件,如果未安裝,則運行msagent.exe進行安裝

if ActiveXControlQuery(IDAgent)=0 then

JumpOutReturn("msagent.exe")

end if

3.2.2導入Agent

在Authorware中執行【Insert】→【Control】→ 【ActiveX】菜單命令,在【Select ActiveX Control】窗口中選擇Microsoft Agent Control 2.0 控件,將Agent控件插入到程序流程之中。該控件具有大量的屬性和方法,通常需要使用控件的“CallString”方法才能進行訪問。

3.2.3Merlin初始化

在流程線上添加【計算】設計圖標,把它命名為“Merlin初始化”,在代碼窗口中輸入如下代碼:

-- 啟用Agent控件與Microsoft Agent Server的連接

SetSpriteProperty(@"char1", #Connected, 1)

-- 加載角色

agentchar1:="merlin"

agentfile1:=FileLocation^"\chars\merlin.acs"

String:="Characters.Load('"^agentchar1^"','"^agentfile1^"')"

CallSprite(@"char1", #CallString, String)

-- 定位角色

String:="Characters.Character('"^agentchar1^"').MoveTo('"^WindowLeft+60^"','"^WindowTop+80^"')"

CallSprite(@"char1", #CallString, String)

-- 顯示角色

String:="Characters('"^agentchar1^"').Show"

CallSprite(@"char1", #CallString, String)

-- 移動角色

String:="Characters.Character('"^agentchar1^"').MoveTo('"^WindowLeft+60^"','"^WindowTop+300^"')"

CallSprite(@"char1", #CallString, String)

-- 禁止錯誤提示信息

SetSpriteProperty(@"char1", #RaiseRequestErrors, 0)

3.2.4Agent語音輸出控制

大部分Agent角色都可以利用基于SAPI4.0的TTS (Text To Speech)引擎產生語音輸出(事先需下載安裝SAPI及兼容的TTS引擎)。

Agent角色控件的Speak方法可以通過兩種方式產生語音輸出:利用文本或者播放事先錄制的聲音文件。由于沒有找到適用的漢語發音的TTS引擎,我們只好借助事先錄制好的wav文件進行語音輸出。

實現過程如下:

在流程線上添加【計算】設計圖標,把它命名為“說開場白”,在代碼窗口中輸入如下代碼:

String:="Characters.Character('"^agentchar1^"').Play('"^"wave"^"')"

CallSprite(@"char1", #CallString, String)

-- 調用Speak方法,播放事先錄制好的“main1.wav”文件

String:="Characters.Character('"^agentchar1^"').Speak('"^"歡迎進入奇妙的算法世界!"^"',"^"'main1.wav'"^")"

CallSprite(@"char1", #CallString, String)

3.2.5程序主流程圖(圖7)

3.3Java中多線程技術

Java中多線程機制,多個線程不僅可以單獨工作,而且可以相互協作,共同完成一個任務,因此多個線程之間的通信成為多線程共同協作的關鍵。

Java多線程的主要分成三種通信方式:管道類進行通信、標志變量進行通信、wait(),notify()通信。在上面三種通信方式中,管道類實現的通信使用起來非常方便,但他并不是Java中的最基本的通信方式,而是在第二、三種通信機制上實現的,而第二種通信方式由于要不斷地循環測試標志變量的值、效率低下。第三種方式由于采用了“等待——喚醒”策略,提高了程序運行的效率。

比較上述三種通信方式,在實現過程中,多線程之間的通信一般采用第三種通信方式,使得在演示過程中,不僅沒有影響用戶界面的響應,而且保證了多線程運行時效率。

實現過程中使用三個線程:選邊線程、畫邊線程和提示信息線程。圖8為此三線程之間的交互過程:其中選邊線程為主動線程,畫邊線程和提示信息線程受控于選邊線程,選邊線程選出的邊為共享邊,選邊線程選出邊后,喚醒畫邊線程和提示信息線程,當兩個線程一次運行完后,進入睡眠狀態,同時喚醒選邊線程繼續選邊,這個過程一

直往復,直到選完所有的邊。如圖8所示。

4展望

“數據結構”虛擬課堂可以在很大程度上幫助教師進行抽象算法教學,同時幫助學生進行課后自學提供輔助工具。該課題是一個跨學科的項目,涉及到教育學、心理學、人工智能以及計算機技術等多個學科,所以要實現一個有效的系統確實存在一定的難度。隨著各個學科的逐漸成熟,相信不遠的將來,虛擬課堂在教學過程中將發揮更大的作用。

參考文獻:

[1] 何克抗,鄭永柏,謝幼如. 教學系統設計[M]. 北京師范大學出版社,2004.

[2] Duane A. Bailey. Data Structures in Java for the Principled Programmer[M]. WCB/McGraw-Hill,1995.

[3] 袁海東. 深入Authorware 7.0 編程[M]. 北京:電子工業出版社,2004.

Design and Implementation of “Data Structure” s Virtual Classroom

XIAO Zheng-xing, Xu Ren-feng, ZHAO Zhi-liang

(Shenzhen Polytechnic, Shenzhen 518055, China)

Abstract: “Data Structure” is a course which is hard to teach and learn in software courses, this paper designs and implements a Virtual Classroom to aid instruction according to specialties of students from vocational education and discusses the implementation of Authorware animation、the technology of Agent and multi-threads of java.

Keyword: data structure; virtual classroom; Agent; multi-thread

主站蜘蛛池模板: 91成人试看福利体验区| 色噜噜综合网| 精品国产香蕉在线播出| 99久久成人国产精品免费| 亚洲天堂久久新| 97人妻精品专区久久久久| 亚洲天堂免费在线视频| 久久综合亚洲色一区二区三区| 露脸真实国语乱在线观看| 九九久久精品国产av片囯产区| 国产综合欧美| 中文无码日韩精品| 国产欧美自拍视频| 2020国产免费久久精品99| 国产精品嫩草影院视频| 免费在线观看av| 秋霞午夜国产精品成人片| 亚洲成AV人手机在线观看网站| 日本伊人色综合网| 欧美啪啪视频免码| 激情国产精品一区| 毛片网站在线看| 国产一区二区三区视频| 日韩欧美国产三级| 久久久久夜色精品波多野结衣| 一级毛片基地| 高清久久精品亚洲日韩Av| 久久成人18免费| 欧美日韩一区二区三| 中文成人在线视频| 成人免费一区二区三区| 91丨九色丨首页在线播放 | 精品一区二区无码av| 精品国产www| 99热国产在线精品99| 亚洲综合天堂网| 亚洲成人免费在线| 久久6免费视频| 国产真实乱子伦精品视手机观看| hezyo加勒比一区二区三区| 国产精品浪潮Av| 欧美亚洲综合免费精品高清在线观看 | 亚洲系列无码专区偷窥无码| 伊人婷婷色香五月综合缴缴情| 71pao成人国产永久免费视频| 日本高清免费不卡视频| 一本一本大道香蕉久在线播放| 国内99精品激情视频精品| 亚洲首页在线观看| 欧美自慰一级看片免费| 国产精品亚洲综合久久小说| 一本无码在线观看| 久久精品丝袜高跟鞋| 亚洲人成网站色7777| 国产成a人片在线播放| 好吊妞欧美视频免费| 毛片久久久| 欧美在线免费| 久久久久免费看成人影片 | 欧美一区精品| 不卡无码h在线观看| aa级毛片毛片免费观看久| 亚洲Av综合日韩精品久久久| 亚洲黄色视频在线观看一区| 亚洲国产天堂久久综合226114| 亚洲国产第一区二区香蕉| 四虎永久免费网站| 欧美午夜视频| 精品亚洲欧美中文字幕在线看 | 男人天堂伊人网| 国产sm重味一区二区三区| 国产成在线观看免费视频| 91成人在线观看视频| 亚洲第一成年人网站| 日韩视频免费| 伦伦影院精品一区| 伊人久久综在合线亚洲2019| 亚洲精品爱草草视频在线| 日韩在线欧美在线| 亚瑟天堂久久一区二区影院| 91精品专区国产盗摄| 91久久国产综合精品女同我|