畢學(xué)慧,劉華明,李懷敏
(阜陽師范大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,安徽 阜陽 236037)
從2017 年2 月開始,“‘新工科’建設(shè)復(fù)旦共識(shí)”“天大行動(dòng)”和“北京指南”相繼問世.與此同時(shí),鐘登華[1]、陸國棟[2]對(duì)“新工科”的建設(shè)意義、建設(shè)思路、建設(shè)探索等方面進(jìn)行了詳細(xì)的闡述.“新工科”建設(shè)對(duì)人才培養(yǎng)提出了新目標(biāo)定位與需求,在該背景下,高等教育的改革應(yīng)具有新理念、新結(jié)構(gòu)、新模式、新質(zhì)量、新體系[3].在技術(shù)革新和產(chǎn)業(yè)結(jié)構(gòu)的變革中,為滿足企業(yè)對(duì)新型高層次工程技術(shù)人才的需求,高校教育改革迫在眉睫.目前,“新工科”建設(shè)已成為高校研究的“新風(fēng)向”,但“新工科”研究大多數(shù)還集中在一流高校,地方性本科院校對(duì)“新工科”建設(shè)的研究還不夠,作為本科教育主力軍的地方本科院校應(yīng)緊跟國家步伐,加快對(duì)“新工科”建設(shè)的研究與探索.數(shù)學(xué)課程作為眾多課程中的基礎(chǔ)課程,更是改革中的重中之重.
計(jì)算機(jī)與數(shù)學(xué)聯(lián)系十分緊密,在計(jì)算機(jī)科學(xué)中,數(shù)學(xué)的重要性尤為突出,計(jì)算機(jī)科學(xué)各個(gè)領(lǐng)域的方法與技術(shù),都是基于一種甚至多種數(shù)學(xué)理論[4].高等數(shù)學(xué)、線性代數(shù)、概率論與數(shù)理統(tǒng)計(jì)、離散數(shù)學(xué)等數(shù)學(xué)課程是計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,在計(jì)算機(jī)專業(yè)人才培養(yǎng)中具有十分重要的地位和作用[5],是學(xué)生學(xué)習(xí)后續(xù)專業(yè)課程的重要工具,同時(shí)也是全國碩士研究生入學(xué)考試的一個(gè)重要組成部分.計(jì)算機(jī)專業(yè)中的算法類、圖形圖像類、程序設(shè)計(jì)類以及人工智能類課程與數(shù)學(xué)都有很大的聯(lián)系.
計(jì)算機(jī)專業(yè)是新工科發(fā)展的重要學(xué)科之一,按照新工科教育的要求,計(jì)算機(jī)類專業(yè)的學(xué)生應(yīng)該有很好的邏輯推理能力和實(shí)踐創(chuàng)新能力,具有較好的數(shù)學(xué)基礎(chǔ)和數(shù)學(xué)知識(shí)的應(yīng)用能力[6].為培養(yǎng)適應(yīng)社會(huì)需求的計(jì)算機(jī)專業(yè)人才,主要研究數(shù)學(xué)軟件Matlab 在計(jì)算機(jī)專業(yè)數(shù)學(xué)教學(xué)中的應(yīng)用,以進(jìn)一步提高學(xué)生的創(chuàng)新、實(shí)踐等能力.
作者結(jié)合十多年教學(xué)經(jīng)驗(yàn),通過實(shí)際調(diào)查和深入研究,發(fā)現(xiàn)高校計(jì)算機(jī)專業(yè)數(shù)學(xué)類課程的教學(xué)改革雖然取得了一定的成效,但并沒有從根本上解決以下三方面問題:第一,數(shù)學(xué)課程內(nèi)容與計(jì)算機(jī)專業(yè)課程內(nèi)容脫離.教師只為上數(shù)學(xué)課而教數(shù)學(xué),輕視數(shù)學(xué)課與計(jì)算機(jī)專業(yè)課之間的聯(lián)系.教學(xué)內(nèi)容陳舊,教師沒有做到與時(shí)俱進(jìn),僅從數(shù)學(xué)的角度出發(fā),注重學(xué)生對(duì)數(shù)學(xué)知識(shí)點(diǎn)的掌握,較少講授數(shù)學(xué)知識(shí)的背景及應(yīng)用,難以激發(fā)學(xué)生的學(xué)習(xí)興趣,未考慮計(jì)算機(jī)專業(yè)學(xué)生的實(shí)際需求,使得數(shù)學(xué)課程的改革嚴(yán)重滯后計(jì)算機(jī)專業(yè)課程的改革.第二,理論與實(shí)際脫離.由于課時(shí)等多種因素的影響,教師在教授數(shù)學(xué)課程時(shí)一般只注重理論知識(shí)的傳授,很少結(jié)合實(shí)際,忽視了理論與實(shí)際以及專業(yè)的銜接,學(xué)生很少有實(shí)踐的機(jī)會(huì),數(shù)學(xué)意識(shí)和數(shù)學(xué)思維得不到培養(yǎng),違背了計(jì)算機(jī)專業(yè)應(yīng)用型人才培養(yǎng)的定位.第三,考核方式落后.目前,國內(nèi)絕大數(shù)高校的計(jì)算機(jī)專業(yè)的數(shù)學(xué)課程都是以筆試為主,考查學(xué)生對(duì)數(shù)學(xué)知識(shí)點(diǎn)的掌握,考核內(nèi)容和專業(yè)很少有聯(lián)系,很難考查計(jì)算機(jī)專業(yè)學(xué)生的數(shù)學(xué)應(yīng)用能力和學(xué)習(xí)過程.
大學(xué)數(shù)學(xué)實(shí)驗(yàn)教學(xué)主要是通過數(shù)學(xué)軟件實(shí)驗(yàn)的方法,讓學(xué)生掌握數(shù)學(xué)知識(shí)和解決實(shí)際問題.
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和大數(shù)據(jù)時(shí)代的到來,絕大多數(shù)領(lǐng)域都已普及計(jì)算機(jī),作為培養(yǎng)新時(shí)代人才的大學(xué),尤其是培養(yǎng)計(jì)算機(jī)人才,數(shù)學(xué)課程解題采用手工計(jì)算,很明顯不合時(shí)宜.錢學(xué)森、吳文俊等眾多科學(xué)家早已指出計(jì)算機(jī)在數(shù)學(xué)學(xué)習(xí)中的重要性,而且,科學(xué)計(jì)算能力的低下已成為我國高等教育落后于國外的一個(gè)瓶頸.
大學(xué)數(shù)學(xué)課的理論內(nèi)容相對(duì)比較枯燥,有些內(nèi)容晦澀難懂.由于課時(shí)的限制,教師若要按照大綱的要求,在規(guī)定時(shí)間內(nèi)完成理論教學(xué)內(nèi)容的授課,一般都比較匆忙,無暇顧及到學(xué)生學(xué)習(xí)中的困惑.學(xué)習(xí)內(nèi)容抽象,學(xué)生有問題無法得到及時(shí)解決,從而導(dǎo)致學(xué)生學(xué)習(xí)興趣低下,效果不佳.大學(xué)數(shù)學(xué)實(shí)驗(yàn)課程是理論課程的輔助,可以讓計(jì)算機(jī)專業(yè)學(xué)生經(jīng)歷知識(shí)形成的過程,并通過自主分析、探究的形式得到數(shù)學(xué)結(jié)果,從而提升學(xué)生的實(shí)踐能力、應(yīng)用能力、自學(xué)能力和分析能力[7].
Matlab 是美國MathWorks 公司推出的一套高性能的數(shù)值計(jì)算和可視化科學(xué)計(jì)算軟件,是目前國內(nèi)外高校和研究部門進(jìn)行科學(xué)研究的重要工具,主要由主程序和提供各種功能的工具箱組成,其中主程序部分是Matlab 的核心,包含數(shù)百個(gè)內(nèi)部核心函數(shù),工具箱是擴(kuò)展部分,是用Matlab 的基本語句編成的各種子程序集,用于解決某一方面的專門問題或?qū)崿F(xiàn)某一類的新算法[8].
在國際學(xué)術(shù)界,Matlab 已經(jīng)被確認(rèn)為是準(zhǔn)確、可靠的科學(xué)計(jì)算標(biāo)準(zhǔn)軟件,在國外Matlab 已成為線性代數(shù)等多門課程的基本教學(xué)工具,在國內(nèi)更是全國大學(xué)生數(shù)學(xué)建模競(jìng)賽的首選計(jì)算工具軟件[6].
鑒于Matlab 強(qiáng)大的數(shù)學(xué)功能和計(jì)算機(jī)專業(yè)學(xué)生的特點(diǎn),選用Matlab 作為計(jì)算機(jī)專業(yè)數(shù)學(xué)教學(xué)中的學(xué)習(xí)工具.
下面介紹利用Matlab 解決高等數(shù)學(xué)、線性代數(shù)、概率統(tǒng)計(jì)、離散數(shù)學(xué)以及與計(jì)算機(jī)專業(yè)相關(guān)的一些數(shù)學(xué)問題.
在高等數(shù)學(xué)的教學(xué)中,借助Matlab 輔助教學(xué),可以幫助學(xué)生更直觀地理解極限、導(dǎo)數(shù)、微分、積分和中值定理等抽象的概念和定理,從而更好地體會(huì)其中的內(nèi)涵.計(jì)算機(jī)中的軟件開發(fā)、程序設(shè)計(jì)等都需要用高等數(shù)學(xué)的方法來解決.
例1求
在Matlab 的命令窗口輸入
x=-400∶0.01∶400;
comet(x,atan(x)./x);
可視化顯示如圖1 所示.
圖1 極限過程可視化顯示圖
例2用Sobel 算子檢測(cè)圖像邊緣.
邊緣檢測(cè)常用的一種方法是以一階導(dǎo)數(shù)為基礎(chǔ)的檢測(cè)算子,如Sobel 算子、Roberts 算子等,用g(x,y)表示圖像,可求得在點(diǎn)(x,y)處的梯度為式(1),幅度大小為式(2)或式(3)[9].
下面用Sobel 算子求圖2(a)中土星的邊緣,結(jié)果如圖2(b)所示.
圖2 Sobel 算子檢測(cè)邊界結(jié)果圖
在Matlab 的命令窗口輸入
線性代數(shù)中的計(jì)算和化簡(jiǎn)的步驟很多,過程繁瑣,學(xué)生在求解的過程中,必須步步小心,教師在教學(xué)中也是重計(jì)算、輕應(yīng)用.一般來說,教材中的例題都是比較簡(jiǎn)單和理想的,教師若想與實(shí)際問題相結(jié)合,當(dāng)面對(duì)龐大的數(shù)據(jù)、繁瑣的步驟,若采取手算的方式是很難實(shí)現(xiàn)的,將Matlab 適時(shí)適量地引入到線性代數(shù)的教學(xué)中,例如求行列式、矩陣運(yùn)算、求解方程組、求矩陣的特征值和特征向量、求向量組的極大無關(guān)組等問題,可以增強(qiáng)課程的工程背景,強(qiáng)化學(xué)生的應(yīng)用意識(shí),調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性[10].計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)、密碼學(xué)、算法、計(jì)算機(jī)圖形學(xué)、最優(yōu)化等技術(shù)都是以線性代數(shù)為基礎(chǔ)的.
例3設(shè)向量組a1=(1,0,0)T,a2=(1,1,1)T,a3=(2,1,1)T,a4=(4,2,2)T,求該向量組的秩及其一個(gè)極大線性無關(guān)組.
在Matlab 的命令窗口輸入
求得R(A)=2,小于向量的個(gè)數(shù)4,因此向量組是線性相關(guān)的.求向量組的極大無關(guān)組可以通過命令rref(A)求解.在Matlab 窗口中輸入命令如下:
可以取a1,a2為向量組a1,a2,a3,a4的一個(gè)極大線性無關(guān)組.
例4獲取圖像的前景和背景圖像.
圖3(a)是一副灰度圖像,應(yīng)用線性代數(shù)中的矩陣減法求硬幣所在的前景圖像和背景圖像.程序的大致思路:把圖像看做矩陣,對(duì)圖像進(jìn)行濾波以去除噪聲點(diǎn),通過閉操作填補(bǔ)細(xì)小的斷點(diǎn),再求取閾值得到二值化圖像.前景圖像就是二值化圖像覆蓋下的圖像beforeimg,語句中backimg=I0 -beforeimg;得到前景圖像后,用原始圖像I0 減去前景圖像beforeimg(如圖3(c)),得到背景圖像(如圖3(b)) .
圖3 圖像的原始、前景和背景示意圖
在Matlab 的命令窗口輸入
概率論與數(shù)理統(tǒng)計(jì)是一門應(yīng)用性很強(qiáng)的學(xué)科,在人工智能、信息安全等方面都有重要的應(yīng)用.但在傳統(tǒng)教學(xué)中,教師一般都是先教授定義、定理、例題,再讓學(xué)生套用公式解題,導(dǎo)致學(xué)生缺乏一定的分析能力、應(yīng)用能力和實(shí)踐能力.通過Matlab 輔助概率統(tǒng)計(jì)教學(xué),可以使一些抽象的內(nèi)容直觀化,易于學(xué)生理解,還可以解決區(qū)間估計(jì)、假設(shè)檢驗(yàn)中的復(fù)雜計(jì)算問題,激發(fā)了學(xué)生的學(xué)習(xí)興趣,使學(xué)生達(dá)到學(xué)以致用的目的[11-12].
例5判別圖4 中物體的種類.
目前在人工智能中較為活躍的研究領(lǐng)域是深度學(xué)習(xí)的應(yīng)用,采用GoogLeNet 對(duì)圖像進(jìn)行分類.GoogLeNet 已經(jīng)對(duì)超過一百萬個(gè)圖像進(jìn)行了訓(xùn)練,可以將圖像分為1 000 個(gè)對(duì)象類別(例如貓、鉛筆、鍵盤等).
Matlab 主要代碼如下:
輸出結(jié)果:Probability=95.51%
圖4 給出了可視化的圖像結(jié)果,圖4(a)是待識(shí)別的圖像.為了能夠說明概率的分值,只列出了1 000 類中前五個(gè)概率較高的名稱:分別為:‘bell pepper’,‘cucumber’,‘Granny Smith’,‘butternut squash’,‘candle’;其概率值分別為:0.955 1,0.020 4,0.006 9,0.002 5,0.002 4,如圖4(b)所示.從這個(gè)概率值可以看出,分值最高的類別最有可能是該物體所屬的類別.因此對(duì)應(yīng)95.51%的概率值,認(rèn)為該物體屬于“bell pepper”類別.例子的程序見網(wǎng)頁:https://github.com/LIUHUAMING888999/matlab_function/blob/master/pepper_classify.m.
圖4 概率在圖像分類中的應(yīng)用
離散數(shù)學(xué)是一門應(yīng)用性很強(qiáng)的數(shù)學(xué)課程,是計(jì)算機(jī)專業(yè)的核心課程之一,在該門課程的教學(xué)中,緊密結(jié)合實(shí)際,緊跟計(jì)算機(jī)發(fā)展的主流技術(shù),才能有效地對(duì)離散數(shù)學(xué)與其他計(jì)算機(jī)應(yīng)用類專業(yè)課程進(jìn)行銜接和整合[13].例如數(shù)理邏輯、集合論、代數(shù)結(jié)構(gòu)、圖論分別在人工智能、信息檢索、信息安全、網(wǎng)絡(luò)結(jié)構(gòu)等領(lǐng)域都有廣泛的應(yīng)用,借助Matlab 輔助教學(xué),可以提高學(xué)生的學(xué)習(xí)積極性和課程的趣味性.
例6計(jì)算圖5 中頂點(diǎn)V0到V7的最短路徑和最短距離[14].
圖5 例6 圖示
Matlab 程序:
因此可以看出求得的最短路徑為:V0→V1→V4→V7,最短距離為11.函數(shù)f_path 見網(wǎng)址:https://github.com/LIUHUAMING888999/matlab_function/blob/master/f_path.m.
在學(xué)習(xí)完數(shù)學(xué)課程和Matlab 的相關(guān)基本理論后,教師應(yīng)適當(dāng)選取一些和計(jì)算機(jī)專業(yè)相關(guān)的案例,讓學(xué)生動(dòng)手去做,這樣可以激發(fā)學(xué)生的學(xué)習(xí)興趣,感受數(shù)學(xué)知識(shí)和軟件的強(qiáng)大功能,而不會(huì)讓學(xué)生認(rèn)為數(shù)學(xué)是很枯燥的知識(shí),和他們的專業(yè)沒什么關(guān)系.例如,在學(xué)習(xí)完矩陣的乘法和逆矩陣之后,教師可以提出“密碼破譯”問題[10].另外,學(xué)生也可以對(duì)一些實(shí)際問題自己分析求解,例如“流行病”等問題.
受課時(shí)限制,國內(nèi)大多數(shù)高校的計(jì)算機(jī)專業(yè)的數(shù)學(xué)課程都只開設(shè)理論課,缺少實(shí)驗(yàn)課.作者通過組建興趣小組的形式,指導(dǎo)興趣小組成員課下驗(yàn)證一些定理、例題,編程解決一些專業(yè)問題和實(shí)際問題.學(xué)生參加興趣小組后,學(xué)習(xí)興趣得到了很大提高,分析、實(shí)踐和創(chuàng)新等能力進(jìn)一步得到提升.對(duì)作者近3 年所帶的阜陽師范大學(xué)的6 個(gè)班(2016 級(jí)、2017 級(jí)、2018 級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè))進(jìn)行研究,其中每年均有1 個(gè)班的學(xué)生參加興趣小組,1 個(gè)班的學(xué)生未參加興趣小組,發(fā)現(xiàn)參加興趣小組的同學(xué)的高等數(shù)學(xué)期末考試平均成績(jī)比未參加興趣小組的同學(xué)的成績(jī)一般高3~5 分,如表1 所示.此外,在數(shù)學(xué)建模、藍(lán)橋杯、互聯(lián)網(wǎng)“+”等各種競(jìng)賽中,參加興趣小組學(xué)生的獲獎(jiǎng)項(xiàng)數(shù)也比未參加興趣小組的學(xué)生多,如表2 所示.
表1 阜陽師范大學(xué)2016—2018 級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)高等數(shù)學(xué)平均成績(jī)統(tǒng)計(jì)表
表2 阜陽師范大學(xué)2016—2018 級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生獲獎(jiǎng)項(xiàng)數(shù)統(tǒng)計(jì)表
新工科的提出,使得高等教育的改革刻不容緩.在新工科背景下,要求計(jì)算機(jī)專業(yè)人才需要具備實(shí)踐和創(chuàng)新能力,這不僅體現(xiàn)在計(jì)算機(jī)專業(yè)課程的學(xué)習(xí)中,更應(yīng)該在高等數(shù)學(xué)、線性代數(shù)、概率論與數(shù)理統(tǒng)計(jì)、離散數(shù)學(xué)這些基礎(chǔ)數(shù)學(xué)課程的學(xué)習(xí)中打好基礎(chǔ).長(zhǎng)期以來,傳統(tǒng)數(shù)學(xué)教學(xué)一般只注重理論教學(xué),作者提出借助Matlab 輔助教學(xué),將理論與實(shí)踐結(jié)合,基礎(chǔ)數(shù)學(xué)知識(shí)和專業(yè)課程知識(shí)結(jié)合,學(xué)生通過參與一些基礎(chǔ)性、應(yīng)用性、研究性、創(chuàng)新性實(shí)驗(yàn),可以激發(fā)學(xué)生的學(xué)習(xí)興趣,進(jìn)一步提升學(xué)生分析和應(yīng)用能力,從而成為合格的新工科計(jì)算機(jī)人才.借助Matlab 輔助教學(xué),在計(jì)算機(jī)專業(yè)大學(xué)數(shù)學(xué)教學(xué)中已初見成效,但還存在一些問題,例如如何選擇合適的案例,實(shí)驗(yàn)教學(xué)和理論教學(xué)的課時(shí)如何合理分配,這些都將是進(jìn)一步研究的方向.