胡亞紅 沈逸凡
摘要:本文作者針對(duì)離散數(shù)學(xué)理論性強(qiáng)、抽象性強(qiáng)的特點(diǎn)和學(xué)生反映課程算法學(xué)習(xí)困難的問題,提出了離散數(shù)學(xué)可視化實(shí)踐教學(xué)環(huán)境的研究,希望利用信息化手段減輕學(xué)生學(xué)習(xí)負(fù)擔(dān),提高學(xué)習(xí)興趣和效率。該環(huán)境包括概念講解、算法可視化演示、學(xué)生課后自主實(shí)踐和算法函數(shù)資源下載等,旨在幫助學(xué)生深入學(xué)習(xí)理解課程內(nèi)容,并將理論知識(shí)應(yīng)用于解決實(shí)際問題。教學(xué)實(shí)踐表明,該環(huán)境能夠降低學(xué)生學(xué)習(xí)難度、提高學(xué)習(xí)興趣和解決實(shí)際工程問題的能力。該教學(xué)環(huán)境的框架設(shè)計(jì)具有通用性,能夠直接應(yīng)用于其他課程教學(xué)環(huán)境的建設(shè)。
關(guān)鍵詞:離散數(shù)學(xué);可視化;實(shí)踐教學(xué);函數(shù)庫
中圖分類號(hào):G642? 文獻(xiàn)標(biāo)識(shí)碼:A? 論文編號(hào):1674-2117(2020)01-0088-05
引言
計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、物聯(lián)網(wǎng)等計(jì)算機(jī)大類專業(yè)都將“學(xué)生具有將數(shù)學(xué)、自然科學(xué)、工程基礎(chǔ)和專業(yè)知識(shí)用于解決相關(guān)領(lǐng)域的各類復(fù)雜工程問題的能力”作為培養(yǎng)目標(biāo)和畢業(yè)要求?;贠BE(Outcomes-based Education)的教育理念,在平時(shí)的教學(xué)中就特別需要注意對(duì)學(xué)生此類能力的培養(yǎng)。離散數(shù)學(xué)作為計(jì)算機(jī)大類各個(gè)專業(yè)的必修專業(yè)基礎(chǔ)課程,旨在培養(yǎng)學(xué)生抽象思維能力、邏輯思維能力和數(shù)學(xué)建模能力,培養(yǎng)學(xué)生利用課程知識(shí)去解決實(shí)際生活中的問題。同時(shí),離散數(shù)學(xué)也是后續(xù)的專業(yè)課程(如數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫原理等)重要的先修課程,因此,學(xué)好離散數(shù)學(xué)對(duì)學(xué)生來說其重要性不言而喻。
但是離散數(shù)學(xué)的教學(xué)內(nèi)容豐富、理論性強(qiáng)而且較為抽象,教學(xué)又多以理論講授為主,這就使得高校數(shù)學(xué)的教學(xué)不可避免地存在著一些問題。不少學(xué)生反映課程中算法多,理解起來十分困難,還有學(xué)生表示雖然學(xué)習(xí)了算法,但是不知道怎么使用,覺得學(xué)習(xí)離散數(shù)學(xué)沒有什么用處。針對(duì)以上問題,本文提出構(gòu)建離散數(shù)學(xué)的可視化實(shí)踐教學(xué)環(huán)境,希望利用信息化手段減輕學(xué)生學(xué)習(xí)負(fù)擔(dān),提高學(xué)習(xí)興趣和效率,同時(shí)提高他們應(yīng)用理論解決工程問題的能力。
相關(guān)研究工作
可視化教學(xué)指在教學(xué)過程中利用圖形、圖像、動(dòng)畫、視頻等視覺表征手段和視覺認(rèn)知輔助媒體展示教學(xué)內(nèi)容,讓學(xué)生充分觀察、體驗(yàn)、發(fā)現(xiàn)、干預(yù),以培養(yǎng)學(xué)生的認(rèn)知能力和創(chuàng)新能力。[1]目前已有不少將可視化技術(shù)引入教學(xué)中的成功應(yīng)用,可視化在語文、英語、電磁場(chǎng)與微波技術(shù)、生物學(xué)等課程的教學(xué)中能夠有效提高學(xué)生的學(xué)習(xí)質(zhì)量和學(xué)習(xí)興趣。[2-6]數(shù)學(xué)高度抽象和概括的特性,使得它難以被直接感知、理解和內(nèi)化,需要利用數(shù)學(xué)對(duì)象的外部表征方式來進(jìn)行其本質(zhì)屬性的呈現(xiàn)。[7]從已有的研究成果可以看出,可視化能夠?qū)⒂?jì)算過程中及計(jì)算結(jié)果的數(shù)據(jù)轉(zhuǎn)換為圖形或圖像顯示出來,降低學(xué)生的認(rèn)知負(fù)擔(dān),有助于提高他們的學(xué)習(xí)熱情。將可視化引入到離散數(shù)學(xué)的教學(xué)中,也將有效幫助學(xué)生理解離散數(shù)學(xué)中的各種算法和概念。
函數(shù)由一組完成一定任務(wù)的語句組成,一個(gè)函數(shù)實(shí)現(xiàn)一個(gè)核心功能。使用函數(shù)能夠輕松地完成結(jié)構(gòu)化的程序設(shè)計(jì)、代碼復(fù)用,減輕程序開發(fā)人員的負(fù)擔(dān)。進(jìn)行程序設(shè)計(jì)時(shí)只需要提供函數(shù)需要的輸入,就可以方便地得到希望的輸出。目前尚未見到專為離散數(shù)學(xué)開發(fā)的函數(shù)庫,因此,筆者提出對(duì)離散數(shù)學(xué)函數(shù)庫的開發(fā),希望能夠大大減輕學(xué)生學(xué)習(xí)離散數(shù)學(xué)時(shí)的編程壓力,幫助學(xué)生將學(xué)習(xí)重點(diǎn)放到課程本身。
離散數(shù)學(xué)可視化實(shí)踐教學(xué)環(huán)境框架
1.系統(tǒng)框架
離散數(shù)學(xué)可視化實(shí)踐教學(xué)環(huán)境系統(tǒng)框架如圖1所示,教學(xué)環(huán)境包括離散數(shù)學(xué)基本概念講解、核心算法可視化演示、學(xué)生課后自主實(shí)踐和函數(shù)資源下載等主要功能。
離散數(shù)學(xué)的特點(diǎn)是內(nèi)容豐富、概念多、定理多,對(duì)初學(xué)者來說查找到指定概念的內(nèi)容是一件費(fèi)時(shí)費(fèi)力的事情。為了幫助學(xué)生方便地學(xué)習(xí)課程內(nèi)容,離散數(shù)學(xué)中重要的內(nèi)容以樹形結(jié)構(gòu)在本系統(tǒng)中予以呈現(xiàn)。算法演示功能是本系統(tǒng)的核心功能,提供了離散數(shù)學(xué)中重要算法的可視化實(shí)現(xiàn)。學(xué)生通過觀看算法運(yùn)行的動(dòng)畫和對(duì)應(yīng)的解釋文字,更容易理解算法的思想和執(zhí)行方式。自主實(shí)踐模塊針對(duì)課程內(nèi)容設(shè)計(jì)了貼近生活的應(yīng)用問題,學(xué)生通過動(dòng)手解決問題,可以充分培養(yǎng)自主學(xué)習(xí)能力,并大大提高學(xué)習(xí)興趣。函數(shù)資源模塊提供離散數(shù)學(xué)中重要算法的代碼,學(xué)生下載后可以直接進(jìn)行函數(shù)調(diào)用,降低了編程難度。
2.系統(tǒng)功能
本系統(tǒng)的用戶分為三類,即管理員、教師和學(xué)生,不同的用戶擁有系統(tǒng)不同的權(quán)限,如上頁圖2所示。
管理員負(fù)責(zé)系統(tǒng)內(nèi)用戶的賬戶管理,包括教師和學(xué)生賬戶的創(chuàng)建、賬戶信息的修改。教師用戶特有的功能是進(jìn)行實(shí)踐教學(xué)環(huán)境內(nèi)課程資源的管理,包括算法函數(shù)的上傳、學(xué)習(xí)資料的上傳和系統(tǒng)中已有資料的增加、刪除和修改。學(xué)生用戶在系統(tǒng)中可以進(jìn)行離散數(shù)學(xué)知識(shí)的學(xué)習(xí),可以通過觀看算法的動(dòng)畫演示熟悉算法,通過課后的自主實(shí)踐鞏固所學(xué),還可以下載自己需要的算法函數(shù)。
3.系統(tǒng)核心功能
離散數(shù)學(xué)實(shí)踐教學(xué)環(huán)境使用WAMP(Windows, Apache,MySQL,PHP)進(jìn)行開發(fā),前端開發(fā)語言使用HTML和JavaScript,后端開發(fā)語言為PHP,三維動(dòng)畫開發(fā)工具選用了Three.js引擎。系統(tǒng)界面友好,使用方便,能夠吸引學(xué)生使用。
(1)系統(tǒng)登錄
本系統(tǒng)的登錄界面設(shè)計(jì)簡(jiǎn)潔,如上頁圖3所示。系統(tǒng)取名Beatus,意在鼓勵(lì)學(xué)生勇于挑戰(zhàn)自己,不斷進(jìn)取。背景上變化莫測(cè)的圖形,給人以神秘感,更能激發(fā)學(xué)生進(jìn)入系統(tǒng)學(xué)習(xí)的好奇心。
進(jìn)入系統(tǒng)后,呈現(xiàn)給用戶的是上頁圖4所示的頁面,系統(tǒng)的基本功能都展示在這個(gè)頁面里。頁面右邊的內(nèi)容展示區(qū)里旋轉(zhuǎn)變換的球體能夠吸引用戶的眼球,提高學(xué)生的學(xué)習(xí)興趣。
(2)概念速查
離散數(shù)學(xué)概念講解模塊的界面如圖5所示。離散數(shù)學(xué)中涉及的主要內(nèi)容以樹形的結(jié)構(gòu)顯示,章節(jié)與課本結(jié)構(gòu)一致,便于學(xué)生進(jìn)行學(xué)習(xí)。學(xué)生要學(xué)習(xí)的知識(shí)點(diǎn)以圖文并茂的形式顯示在屏幕右邊的內(nèi)容展示區(qū),重點(diǎn)的概念以醒目的紅色標(biāo)出,便于查找。
(3)算法動(dòng)畫演示
本系統(tǒng)的核心內(nèi)容之一是離散數(shù)學(xué)中重要算法執(zhí)行過程的可視化展示,圖6給出了最小生成樹的Prim算法實(shí)現(xiàn)過程。
Prim算法是完成最小生成樹的經(jīng)典算法之一,算法每次選定一個(gè)節(jié)點(diǎn)加入最終的生成樹,同時(shí)需要選擇符合一定要求的邊加入生成樹。算法動(dòng)畫演示過程中,輔助的文字說明跟隨算法的執(zhí)行狀態(tài)對(duì)算法進(jìn)行解釋,不同顏色的節(jié)點(diǎn)和邊表示出算法的執(zhí)行情況。當(dāng)前正在處理的節(jié)點(diǎn)用橙色標(biāo)出,橙色的邊表示已經(jīng)加入最小生成樹的邊,藍(lán)色的邊是算法執(zhí)行步驟中與當(dāng)前節(jié)點(diǎn)相關(guān)聯(lián)的、未加入最小生成樹的邊。
哈夫曼算法是圖論中重要的算法,用于完成各種最優(yōu)編碼的設(shè)計(jì)。筆者在教學(xué)中發(fā)現(xiàn)不少學(xué)生沒有掌握如何生成一棵哈夫曼樹,因此本系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了哈夫曼算法的可視化,以加深學(xué)生對(duì)算法的理解。使用哈夫曼算法為權(quán)值為1,3,3,4,6,9,10的節(jié)點(diǎn)生成哈夫曼樹的部分執(zhí)行過程如圖7所示。
真值表是命題邏輯中最基本也是最重要的概念,使用真值表能夠解決命題邏輯中許多核心問題,因此生成真值表也是學(xué)生必須掌握的內(nèi)容。下頁圖8給出了使用逆波蘭串自動(dòng)生成真值表的過程。這個(gè)過程的可視化展示,不但讓學(xué)生了解如何生成真值表,還能使學(xué)生了解計(jì)算機(jī)如何使用堆棧處理表達(dá)式,為其后續(xù)課程的學(xué)習(xí)打下良好的基礎(chǔ)。
(4)代碼模板
本系統(tǒng)完成了離散數(shù)學(xué)中多個(gè)算法的編程實(shí)現(xiàn),學(xué)生可以在代碼模板中查看對(duì)應(yīng)的代碼進(jìn)行學(xué)習(xí),也可以進(jìn)行函數(shù)下載,直接放入自己的程序中進(jìn)行調(diào)用。
(5)課后練習(xí)
學(xué)以致用、培養(yǎng)學(xué)生使用課內(nèi)知識(shí)解決工程實(shí)際問題是離散數(shù)學(xué)的教學(xué)目標(biāo)之一,因此本系統(tǒng)提供了一定數(shù)量的應(yīng)用型題目供學(xué)生進(jìn)行課后的練習(xí)。
4.系統(tǒng)使用效果
本系統(tǒng)界面友好,使用方便,可視化的算法演示和經(jīng)典算法的函數(shù)資源下載大大降低了學(xué)生學(xué)習(xí)離散數(shù)學(xué)的難度,有效提高了學(xué)生的學(xué)習(xí)熱情。不少學(xué)生在使用后表示離散數(shù)學(xué)其實(shí)是很有趣的一門課程,也明白了今后將如何利用課程所學(xué)去解決實(shí)際問題。
總結(jié)
為了解決學(xué)生在離散數(shù)學(xué)學(xué)習(xí)過程中遇到的概念多、算法多、算法難以理解、不知道怎么使用學(xué)到的知識(shí)等問題,本文研究構(gòu)建了一個(gè)離散數(shù)學(xué)的可視化實(shí)踐教學(xué)環(huán)境。學(xué)生可以方便地進(jìn)行知識(shí)點(diǎn)的查找學(xué)習(xí),了解課程核心算法的執(zhí)行過程,也可以利用本系統(tǒng)提供的資源自行解決實(shí)際工程問題。教學(xué)實(shí)踐表明,本系統(tǒng)能夠有效提高學(xué)生將離散數(shù)學(xué)的知識(shí)用于解決相關(guān)領(lǐng)域的各類復(fù)雜工程問題的能力。同時(shí),由于本系統(tǒng)設(shè)計(jì)的特點(diǎn),本系統(tǒng)的架構(gòu)也可以直接用于其他課程的教學(xué)環(huán)境建設(shè)。
筆者后續(xù)將進(jìn)一步擴(kuò)充系統(tǒng)資源,完成更多算法的可視化演示和算法的函數(shù)實(shí)現(xiàn),同時(shí)也將原創(chuàng)更多能啟發(fā)學(xué)生思維的課后實(shí)踐題目,充分發(fā)揮本系統(tǒng)的作用。
參考文獻(xiàn):
[1]張麗.試分析可視化教學(xué)的合理性及局限性[J].山東工業(yè)技術(shù),2019(11):212.
[2]支秀玲,邵紅霞,潘鑾鳳,等.可視化教學(xué)在分子生物學(xué)實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].中華醫(yī)學(xué)教育雜志,2019,39(03):173-175.
[3]崔笑,張彬,周大臣,等.三維可視化重建技術(shù)輔助肝臟外科臨床教學(xué)效果比較[J].教育進(jìn)展,2019,9(03):325-328.
[4]錢得祥.知識(shí)可視化在小學(xué)語文教學(xué)中的應(yīng)用探討[J].學(xué)周刊,2019(19):102.
[5]周建華,李棟華.《電磁場(chǎng)與微波技術(shù)》可視化教學(xué)探討[J].考試周刊,2019(39):160-161.
[6]明有發(fā),楊麗霞.可視化在高中英語教學(xué)的運(yùn)用[J].考試周刊,2019(12):99.
[7]張加紅.多元聯(lián)系表征視角下的高中數(shù)學(xué)可視化教學(xué)[J].中國數(shù)學(xué)教育:高中版,2018(11):15-18.
作者簡(jiǎn)介:,女,副教授,博士,主要從事大數(shù)據(jù)處理的研究。
基金項(xiàng)目:浙江工業(yè)大學(xué)課堂教學(xué)改革項(xiàng)目“留學(xué)生離散數(shù)學(xué)課堂教學(xué)改革實(shí)踐”(項(xiàng)目編號(hào):KG201715)。