【摘要】對(duì)數(shù)學(xué)課件智能交互的實(shí)現(xiàn)問題進(jìn)行深入分析,提出綜合運(yùn)用多種程序設(shè)計(jì)技術(shù)解決問題的設(shè)計(jì)思想,并在Director中通過ActiveX控件調(diào)用Mathematica計(jì)算引擎加以實(shí)現(xiàn)。
【關(guān)鍵詞】智能交互,課件,高等數(shù)學(xué),MathML,Mathematica
【中圖分類號(hào)】G434【文獻(xiàn)標(biāo)識(shí)碼】B【論文編號(hào)】1009—8097(2007)05—0078—03
計(jì)算機(jī)輔助教學(xué)是隨信息技術(shù)日益發(fā)展而產(chǎn)生的現(xiàn)代教育技術(shù)重要手段之一,它以形象生動(dòng)的圖、文、聲、像信息和靈活的交互界面,極大地改進(jìn)了傳統(tǒng)的教學(xué)模式。隨著實(shí)踐的不斷深入,針對(duì)一些具體教學(xué)領(lǐng)域,人們更進(jìn)一步地提出了實(shí)現(xiàn)智能交互(Intelligent Interaction)的要求。本文以制作大學(xué)基礎(chǔ)課程《高等數(shù)學(xué)》教學(xué)軟件(以下簡(jiǎn)稱“數(shù)學(xué)課件”)為例,提出了多種程序設(shè)計(jì)技術(shù)綜合運(yùn)用解決問題的設(shè)計(jì)思想,并在Director中通過ActiveX控件調(diào)用Mathematica計(jì)算引擎加以實(shí)現(xiàn)。
一、 問題的提出
該數(shù)學(xué)課件的總設(shè)計(jì)要求[1]是:把抽象的數(shù)學(xué)定義、公式和定理等通過數(shù)學(xué)直觀、形象思維與邏輯思維表現(xiàn)出來(lái),將傳統(tǒng)的“講授—記憶—測(cè)驗(yàn)”教學(xué)模式通過計(jì)算輔助教學(xué)手段轉(zhuǎn)換為“直覺—試探—出錯(cuò)—思考—猜想—證明”模式。
除了一般的多媒體教學(xué)軟件設(shè)計(jì)要求之外,該課件最核心的難點(diǎn)是:如何在教學(xué)過程中接受學(xué)生提出的問題,經(jīng)過計(jì)算處理后將結(jié)果反饋給學(xué)生,尤其是以“數(shù)學(xué)直觀”的形式進(jìn)行反饋。
如《高等數(shù)學(xué)》[2]中關(guān)于極限運(yùn)算法則有一個(gè)重要定理:
定理 有界函數(shù)與無(wú)窮小的乘積是無(wú)窮小
學(xué)生初學(xué)時(shí)容易聯(lián)想到:
命題 有界函數(shù)與無(wú)窮大的乘積是無(wú)窮大
可以通過一個(gè)實(shí)例來(lái)驗(yàn)證該命題是否成立:作函數(shù)f(x)=xsinx圖像(圖1所示),易見
不存在,因此命題不成立。更進(jìn)一步地,從圖像也可看出
,該函數(shù)恰巧也是定理成立的一個(gè)實(shí)例!通過一個(gè)直觀的函數(shù)圖像可以從正反兩方面來(lái)大大加深對(duì)定理的理解。但是,要手工作出函數(shù)圖像往往不是件容易的事,這就需要借助計(jì)算機(jī)來(lái)輔助實(shí)現(xiàn)。

一般地,數(shù)學(xué)課件的智能交互問題可歸納為(如上圖2所示):通過交互界面以數(shù)學(xué)表達(dá)式形式輸入各種數(shù)學(xué)問題,經(jīng)后臺(tái)計(jì)算處理后給出文本或圖形方式的結(jié)果。
二、 智能交互的設(shè)計(jì)思想
1. 后臺(tái)計(jì)算處理的實(shí)現(xiàn)
智能交互的核心是考慮采用何種策略實(shí)現(xiàn)后臺(tái)的計(jì)算處理,總體上有兩種策略:一是自行編寫代碼,對(duì)預(yù)設(shè)問題寫出相關(guān)功能函數(shù);二是調(diào)用第三方軟件實(shí)現(xiàn)。顯然,前者對(duì)制作人員要求過高,制作成本太大。后者實(shí)現(xiàn)容易,維護(hù)便利,且符合代碼復(fù)用的軟件設(shè)計(jì)理念。
由Wolfram Research公司研究開發(fā)的數(shù)學(xué)軟件Mathematica將數(shù)值計(jì)算、符號(hào)計(jì)算、圖形演示和程序設(shè)計(jì)四大功能有機(jī)融合在一起,形成一個(gè)功能強(qiáng)大的符號(hào)計(jì)算系統(tǒng)。它由前臺(tái)(Notebook Front End)和計(jì)算引擎(Computational Engine)兩大模塊組成,其中,計(jì)算引擎是該軟件的核心。在研發(fā)Mathematica時(shí),開發(fā)人員將其計(jì)算引擎設(shè)計(jì)成一個(gè)可供第三方調(diào)用的標(biāo)準(zhǔn)模塊:它提供一個(gè)與外界進(jìn)行通信的通用接口規(guī)范MathLink,只要遵循該規(guī)范即可與其通信,獲取計(jì)算結(jié)果。
因此,Mathematica計(jì)算引擎非常適合用來(lái)作為后臺(tái)計(jì)算處理模塊實(shí)現(xiàn)數(shù)學(xué)課件的智能交互。
2. 實(shí)現(xiàn)與Mathematica計(jì)算引擎的通信
雖然,Mathematica提供了與其計(jì)算引擎實(shí)現(xiàn)連接的函數(shù)庫(kù),但這些函數(shù)較為底層,涉及技術(shù)細(xì)節(jié)較多。為了降低開發(fā)難度,提高接口的通用性與規(guī)范性,日本朝日大學(xué)經(jīng)營(yíng)科學(xué)(板谷)研究室[3]編寫了一個(gè)ActiveX控件ActiveML,該控件封裝了與Mathematica計(jì)算引擎進(jìn)行通信的一系列技術(shù)細(xì)節(jié),并將其簡(jiǎn)化為一個(gè)符合MathLink規(guī)范的最小完備操作集(表1所示),通過對(duì)控件的屬性、事件與方法的設(shè)置與調(diào)用可以很容易地實(shí)現(xiàn)與Mathematica計(jì)算引擎的通信。

3. 課件制作軟件的選用
在選用課件制作軟件時(shí),考慮到要進(jìn)行一定量的程序設(shè)計(jì)以及使用ActiveX控件技術(shù),選定Macromedia公司出品的專業(yè)多媒體著作工具Director MX最為合適。Director不僅在動(dòng)畫制作、媒體運(yùn)用、邏輯控制等方面功能強(qiáng)大,而且擁有成熟的ActiveX控件支持技術(shù),最為有特色的是它支持兩門程序設(shè)計(jì)語(yǔ)言:Lingo語(yǔ)言與JavaScript語(yǔ)言,在軟件開發(fā)過程可以任意選擇、隨時(shí)切換使用兩門語(yǔ)言,給用戶帶來(lái)極大的便利。
4.智能交互的總體設(shè)計(jì)
上述主要問題解決之后,最終可形成智能交互的總體設(shè)計(jì)框圖(圖3所示):

學(xué)生通過交互界面以數(shù)學(xué)表達(dá)式形式輸入各種數(shù)學(xué)問題,經(jīng)ActiveXML控件調(diào)用Mathematica計(jì)算引擎進(jìn)行運(yùn)算處理后以文本或圖形方式將結(jié)果返回至交互界面。
此外,框圖中還包括一些必要的輔助性技術(shù)處理:設(shè)計(jì)人性化的問題輸入,規(guī)范化問題輸入使其符合Mathematica計(jì)算引擎的語(yǔ)法,輸入出錯(cuò)處理和計(jì)算結(jié)果出錯(cuò)處理等等。
三、關(guān)鍵技術(shù)的實(shí)現(xiàn)
為了便于說(shuō)明問題,我們以一個(gè)簡(jiǎn)化的智能交互模型(圖4所示)為例,來(lái)研究如何通過ActiveXML控件實(shí)現(xiàn)對(duì)Mathematica計(jì)算引擎的調(diào)用。該模型主要有初始化、計(jì)算處理、結(jié)束連接三大模塊組成。

1. 初始化初始化各項(xiàng)連接參數(shù),主要包括指定計(jì)算引擎路徑、結(jié)果回顯方式等,并啟動(dòng)引擎,建立連接。
on mouseUp me
Sprite(\"ActiveML\").MLParms = \"-linklaunch -linkname 'C:\\Mathematica\\mathkernel.exe'\"
Sprite(\"ActiveML\").DisplayTextQ = 1
Sprite(\"ActiveML\").Connect()
end
⒉ 計(jì)算處理將輸入的數(shù)學(xué)表達(dá)式提交給計(jì)算引擎處理,并以文本或圖形方式回顯結(jié)果。
on mouseUp me
Sprite(\"ActiveML\").MathIn = Sprite(“Exp_Input”).Text
Sprite(\"ActiveML\").Evaluate()
Sprite(\"Output_Text\").Text=Sprite(\"ActiveML\").MathOut
end
⒊ 結(jié)束連接斷開連接,關(guān)閉計(jì)算引擎。
on mouseUp me
Sprite(\"ActiveML\").DisConnect()
end
四、結(jié)束語(yǔ)
在Director中通過ActiveML控件調(diào)用Mathematica計(jì)算引擎來(lái)完成智能交互是以上設(shè)計(jì)的核心思想,以該程序設(shè)計(jì)思想為指導(dǎo),一方面可以更進(jìn)一步地實(shí)現(xiàn)網(wǎng)絡(luò)環(huán)境下的智能交互,另一方面可以解決類似的問題,如化學(xué)方程式的模擬配平、電路分析的模擬實(shí)驗(yàn)等。如何綜合運(yùn)用各種程序設(shè)計(jì)技術(shù)來(lái)解決多媒體教學(xué)軟件制作問題是當(dāng)前教育技術(shù)實(shí)踐中的一個(gè)新課題。
參考文獻(xiàn):
[1]章棟恩,許曉革.高等數(shù)學(xué)實(shí)驗(yàn)[M].北京:高等教育出版社, 2004
[2]同濟(jì)大學(xué)數(shù)學(xué)教研室.高等數(shù)學(xué)(上冊(cè)),4版[M].北京:高等教育出版社, 1997(重?。?56
[3]板谷雄二. ActiveX Control-ActiveML [EB/OL]. [2000-04-06]. ttp://or-lab.asahi-u.ac.jp/mma/ActiveML.htm