【摘要】對數(shù)學課件智能交互的實現(xiàn)問題進行深入分析,提出綜合運用多種程序設計技術(shù)解決問題的設計思想,并在Director中通過ActiveX控件調(diào)用Mathematica計算引擎加以實現(xiàn)。
【關鍵詞】智能交互,課件,高等數(shù)學,MathML,Mathematica
【中圖分類號】G434【文獻標識碼】B【論文編號】1009—8097(2007)05—0078—03
計算機輔助教學是隨信息技術(shù)日益發(fā)展而產(chǎn)生的現(xiàn)代教育技術(shù)重要手段之一,它以形象生動的圖、文、聲、像信息和靈活的交互界面,極大地改進了傳統(tǒng)的教學模式。隨著實踐的不斷深入,針對一些具體教學領域,人們更進一步地提出了實現(xiàn)智能交互(Intelligent Interaction)的要求。本文以制作大學基礎課程《高等數(shù)學》教學軟件(以下簡稱“數(shù)學課件”)為例,提出了多種程序設計技術(shù)綜合運用解決問題的設計思想,并在Director中通過ActiveX控件調(diào)用Mathematica計算引擎加以實現(xiàn)。
一、 問題的提出
該數(shù)學課件的總設計要求[1]是:把抽象的數(shù)學定義、公式和定理等通過數(shù)學直觀、形象思維與邏輯思維表現(xiàn)出來,將傳統(tǒng)的“講授—記憶—測驗”教學模式通過計算輔助教學手段轉(zhuǎn)換為“直覺—試探—出錯—思考—猜想—證明”模式。
除了一般的多媒體教學軟件設計要求之外,該課件最核心的難點是:如何在教學過程中接受學生提出的問題,經(jīng)過計算處理后將結(jié)果反饋給學生,尤其是以“數(shù)學直觀”的形式進行反饋。
如《高等數(shù)學》[2]中關于極限運算法則有一個重要定理:
定理 有界函數(shù)與無窮小的乘積是無窮小
學生初學時容易聯(lián)想到:
命題 有界函數(shù)與無窮大的乘積是無窮大
可以通過一個實例來驗證該命題是否成立:作函數(shù)f(x)=xsinx圖像(圖1所示),易見不存在,因此命題不成立。更進一步地,從圖像也可看出
,該函數(shù)恰巧也是定理成立的一個實例!通過一個直觀的函數(shù)圖像可以從正反兩方面來大大加深對定理的理解。但是,要手工作出函數(shù)圖像往往不是件容易的事,這就需要借助計算機來輔助實現(xiàn)。
一般地,數(shù)學課件的智能交互問題可歸納為(如上圖2所示):通過交互界面以數(shù)學表達式形式輸入各種數(shù)學問題,經(jīng)后臺計算處理后給出文本或圖形方式的結(jié)果。
二、 智能交互的設計思想
1. 后臺計算處理的實現(xiàn)
智能交互的核心是考慮采用何種策略實現(xiàn)后臺的計算處理,總體上有兩種策略:一是自行編寫代碼,對預設問題寫出相關功能函數(shù);二是調(diào)用第三方軟件實現(xiàn)。顯然,前者對制作人員要求過高,制作成本太大。后者實現(xiàn)容易,維護便利,且符合代碼復用的軟件設計理念。
由Wolfram Research公司研究開發(fā)的數(shù)學軟件Mathematica將數(shù)值計算、符號計算、圖形演示和程序設計四大功能有機融合在一起,形成一個功能強大的符號計算系統(tǒng)。它由前臺(Notebook Front End)和計算引擎(Computational Engine)兩大模塊組成,其中,計算引擎是該軟件的核心。在研發(fā)Mathematica時,開發(fā)人員將其計算引擎設計成一個可供第三方調(diào)用的標準模塊:它提供一個與外界進行通信的通用接口規(guī)范MathLink,只要遵循該規(guī)范即可與其通信,獲取計算結(jié)果。
因此,Mathematica計算引擎非常適合用來作為后臺計算處理模塊實現(xiàn)數(shù)學課件的智能交互。
2. 實現(xiàn)與Mathematica計算引擎的通信
雖然,Mathematica提供了與其計算引擎實現(xiàn)連接的函數(shù)庫,但這些函數(shù)較為底層,涉及技術(shù)細節(jié)較多。為了降低開發(fā)難度,提高接口的通用性與規(guī)范性,日本朝日大學經(jīng)營科學(板谷)研究室[3]編寫了一個ActiveX控件ActiveML,該控件封裝了與Mathematica計算引擎進行通信的一系列技術(shù)細節(jié),并將其簡化為一個符合MathLink規(guī)范的最小完備操作集(表1所示),通過對控件的屬性、事件與方法的設置與調(diào)用可以很容易地實現(xiàn)與Mathematica計算引擎的通信。
3. 課件制作軟件的選用
在選用課件制作軟件時,考慮到要進行一定量的程序設計以及使用ActiveX控件技術(shù),選定Macromedia公司出品的專業(yè)多媒體著作工具Director MX最為合適。Director不僅在動畫制作、媒體運用、邏輯控制等方面功能強大,而且擁有成熟的ActiveX控件支持技術(shù),最為有特色的是它支持兩門程序設計語言:Lingo語言與JavaScript語言,在軟件開發(fā)過程可以任意選擇、隨時切換使用兩門語言,給用戶帶來極大的便利。
4.智能交互的總體設計
上述主要問題解決之后,最終可形成智能交互的總體設計框圖(圖3所示):
學生通過交互界面以數(shù)學表達式形式輸入各種數(shù)學問題,經(jīng)ActiveXML控件調(diào)用Mathematica計算引擎進行運算處理后以文本或圖形方式將結(jié)果返回至交互界面。
此外,框圖中還包括一些必要的輔助性技術(shù)處理:設計人性化的問題輸入,規(guī)范化問題輸入使其符合Mathematica計算引擎的語法,輸入出錯處理和計算結(jié)果出錯處理等等。
三、關鍵技術(shù)的實現(xiàn)
為了便于說明問題,我們以一個簡化的智能交互模型(圖4所示)為例,來研究如何通過ActiveXML控件實現(xiàn)對Mathematica計算引擎的調(diào)用。該模型主要有初始化、計算處理、結(jié)束連接三大模塊組成。
1. 初始化初始化各項連接參數(shù),主要包括指定計算引擎路徑、結(jié)果回顯方式等,并啟動引擎,建立連接。
on mouseUp me
Sprite(\"ActiveML\").MLParms = \"-linklaunch -linkname 'C:\\Mathematica\\mathkernel.exe'\"
Sprite(\"ActiveML\").DisplayTextQ = 1
Sprite(\"ActiveML\").Connect()
end
⒉ 計算處理將輸入的數(shù)學表達式提交給計算引擎處理,并以文本或圖形方式回顯結(jié)果。
on mouseUp me
Sprite(\"ActiveML\").MathIn = Sprite(“Exp_Input”).Text
Sprite(\"ActiveML\").Evaluate()
Sprite(\"Output_Text\").Text=Sprite(\"ActiveML\").MathOut
end
⒊ 結(jié)束連接斷開連接,關閉計算引擎。
on mouseUp me
Sprite(\"ActiveML\").DisConnect()
end
四、結(jié)束語
在Director中通過ActiveML控件調(diào)用Mathematica計算引擎來完成智能交互是以上設計的核心思想,以該程序設計思想為指導,一方面可以更進一步地實現(xiàn)網(wǎng)絡環(huán)境下的智能交互,另一方面可以解決類似的問題,如化學方程式的模擬配平、電路分析的模擬實驗等。如何綜合運用各種程序設計技術(shù)來解決多媒體教學軟件制作問題是當前教育技術(shù)實踐中的一個新課題。
參考文獻:
[1]章棟恩,許曉革.高等數(shù)學實驗[M].北京:高等教育出版社, 2004
[2]同濟大學數(shù)學教研室.高等數(shù)學(上冊),4版[M].北京:高等教育出版社, 1997(重?。?56
[3]板谷雄二. ActiveX Control-ActiveML [EB/OL]. [2000-04-06]. ttp://or-lab.asahi-u.ac.jp/mma/ActiveML.htm