張靜亞
摘 要:針對(duì)MATLAB課程實(shí)踐性強(qiáng)、學(xué)時(shí)少的特點(diǎn),該文提出以項(xiàng)目驅(qū)動(dòng)的MATLAB教學(xué)方法,首先將教學(xué)內(nèi)容進(jìn)行提煉并構(gòu)成合理的課程體系,然后選擇適當(dāng)?shù)捻?xiàng)目,并結(jié)合教學(xué)內(nèi)容進(jìn)行項(xiàng)目的模塊化分解。在項(xiàng)目模塊的實(shí)現(xiàn)中引導(dǎo)學(xué)生正確的應(yīng)用教學(xué)理論,并學(xué)習(xí)新的知識(shí)點(diǎn)。這種教學(xué)方法強(qiáng)調(diào)了學(xué)生在教學(xué)過程中的主體地位,激發(fā)了學(xué)生的創(chuàng)造性和積極性,取得較好的教學(xué)效果。在實(shí)施項(xiàng)目驅(qū)動(dòng)教學(xué)法的過程中,教師還需不斷嘗試和創(chuàng)新,并對(duì)項(xiàng)目?jī)?nèi)容進(jìn)行外延和總結(jié),同時(shí)注重互動(dòng)和疑難解答,從而進(jìn)一步得到改進(jìn),提高教學(xué)質(zhì)量。
關(guān)鍵詞:MATLAB 項(xiàng)目驅(qū)動(dòng)教學(xué)法 教學(xué)改革 教學(xué)方法 項(xiàng)目驅(qū)動(dòng) MATLAB教學(xué) 教學(xué)研究
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)12(c)-0147-03
MATLAB(MATrix LABorotory,矩陣實(shí)驗(yàn)室)語(yǔ)言是一種廣泛應(yīng)用于工程計(jì)算及數(shù)值分析領(lǐng)域的新型高級(jí)語(yǔ)言,現(xiàn)已成為大學(xué)生必須掌握的基本技能。相比其他高級(jí)語(yǔ)言,MATLAB具有強(qiáng)大的矩陣運(yùn)算功能、可靠的容錯(cuò)功能、廣泛的符號(hào)運(yùn)算功能。其計(jì)算結(jié)果的可視化功能、靈活的兼容與接口功能和豐富的可供調(diào)用函數(shù)使它成為一種簡(jiǎn)單易學(xué)的工程設(shè)計(jì)工具。
在MATLAB教學(xué)過程中,如何指引學(xué)生快速地從未知的狀態(tài)到熟練應(yīng)用于項(xiàng)目設(shè)計(jì),這是教學(xué)研究所必須考慮的問題[1]。該文提出采用科研項(xiàng)目驅(qū)動(dòng)課程內(nèi)容教學(xué)以及驅(qū)動(dòng)學(xué)生自主學(xué)習(xí)的教學(xué)設(shè)計(jì)思路。將科研項(xiàng)目從上而下細(xì)分到各個(gè)子項(xiàng)目,由各個(gè)子項(xiàng)目細(xì)分到各個(gè)小模塊,適合師生在教學(xué)過程中進(jìn)行分析、討論和應(yīng)用。學(xué)生在若干具體項(xiàng)目模塊的驅(qū)動(dòng)下學(xué)會(huì)主動(dòng)學(xué)習(xí)和思考,明確了學(xué)習(xí)的目標(biāo)。
1 項(xiàng)目驅(qū)動(dòng)教學(xué)法的特點(diǎn)
項(xiàng)目驅(qū)動(dòng)教學(xué)法是一種用若干項(xiàng)目把整個(gè)教學(xué)內(nèi)容貫穿起來的教學(xué)方法,是一種能激發(fā)學(xué)生學(xué)習(xí)能動(dòng)性和培養(yǎng)學(xué)生創(chuàng)新能力的有效手段[2]。它以學(xué)生為主要項(xiàng)目完成對(duì)象,以教師為項(xiàng)目分解和分配主導(dǎo),教師根據(jù)各個(gè)教學(xué)要點(diǎn)有效地設(shè)計(jì)項(xiàng)目中各個(gè)子項(xiàng)目或者項(xiàng)目模塊。教師分配項(xiàng)目任務(wù)后,不再主宰項(xiàng)目執(zhí)行,而是引導(dǎo)學(xué)生去分析、去探索,教師可作適當(dāng)?shù)膯栴}解答或引導(dǎo)[3]。學(xué)生在推進(jìn)項(xiàng)目模塊完成的同時(shí)進(jìn)行課程相關(guān)知識(shí)的累積,同時(shí)允許知識(shí)點(diǎn)的延伸和更新,并最終在課程的末階段完成一個(gè)項(xiàng)目的總體設(shè)計(jì)。
項(xiàng)目驅(qū)動(dòng)教學(xué)法改變了傳統(tǒng)“教師講學(xué)生聽,教師演示學(xué)生看”的教學(xué)模式,強(qiáng)調(diào)了學(xué)生作為學(xué)習(xí)主體的地位,讓學(xué)生在學(xué)習(xí)之初就知道學(xué)習(xí)的目的和用處,通過應(yīng)用教學(xué)內(nèi)容、自主探索和互動(dòng)協(xié)作,主動(dòng)完成學(xué)習(xí)任務(wù),并能在整個(gè)學(xué)習(xí)階段體驗(yàn)項(xiàng)目設(shè)計(jì)的樂趣,達(dá)到觸類旁通的效果[4]。
基于項(xiàng)目驅(qū)動(dòng)的MATLAB教學(xué)方法一般包括以下部分:從上而下的項(xiàng)目分解;教學(xué)知識(shí)點(diǎn)的講解;項(xiàng)目模塊與知識(shí)點(diǎn)相結(jié)合的實(shí)踐練習(xí);實(shí)踐結(jié)果的講解;內(nèi)容的延伸與拓展。該教學(xué)方法的基本流程如圖1所示。
2 MATLAB教學(xué)內(nèi)容的提煉
對(duì)課程知識(shí)點(diǎn)的提煉一方面是布置項(xiàng)目模塊實(shí)踐的基礎(chǔ),另一方面也是掌握課程內(nèi)容的必要環(huán)節(jié)[5]。這就要求教師在課前認(rèn)真分析教材,認(rèn)真梳理MATLAB課程體系,分析MATLAB課程的教學(xué)內(nèi)容。
MATLAB語(yǔ)言編程的教學(xué)內(nèi)容主要包括了MATLAB矩陣運(yùn)算,其中的矩陣產(chǎn)生,賦值,引用和存儲(chǔ)方式是學(xué)習(xí)的重點(diǎn);在建立了矩陣的基本運(yùn)算方法之后,基于MATLAB的數(shù)值計(jì)算問題便順理成章的被引出。除了數(shù)值計(jì)算之外,MATLAB符號(hào)運(yùn)算也是作為一種特殊的高級(jí)語(yǔ)言具有的特點(diǎn)。將同一個(gè)問題采用數(shù)值計(jì)算法和符號(hào)計(jì)算法進(jìn)行比較是教學(xué)內(nèi)容的一個(gè)組成部分。將應(yīng)用數(shù)值和符號(hào)計(jì)算的命令通過函數(shù)和腳本文件的形式表現(xiàn)出來,則完成了MATLAB語(yǔ)言編程的基本教學(xué)要求。然而,以上的各個(gè)教學(xué)內(nèi)容講解和實(shí)踐中,將矩陣數(shù)據(jù)的可視化是幫助學(xué)生理解和分析問題的關(guān)鍵手段。因此,數(shù)據(jù)的可視化可貫穿于整個(gè)教學(xué)過程中。
3 從上而下方式的項(xiàng)目分解
項(xiàng)目驅(qū)動(dòng)的MATLAB教學(xué)法中,項(xiàng)目的選擇和分解是該教學(xué)法的核心,項(xiàng)目分解的質(zhì)量直接影響到教學(xué)效果。
通常,項(xiàng)目的實(shí)現(xiàn)有兩種思路:一種是自下而上的設(shè)計(jì)思路,一種是由上而下的設(shè)計(jì)思路。自下而上的設(shè)計(jì)是一種傳統(tǒng)的設(shè)計(jì)思路,這種設(shè)計(jì)方法一般是設(shè)計(jì)者首先設(shè)計(jì)各種基本單元,然后在設(shè)計(jì)時(shí)調(diào)用這些基本單元,逐漸向上組合,直到設(shè)計(jì)出自己需要的系統(tǒng)為止。自下而上的設(shè)計(jì)方法實(shí)現(xiàn)周期長(zhǎng)、靈活性差、耗時(shí)耗力、效率低。自上而下的設(shè)計(jì)方法中,設(shè)計(jì)者將項(xiàng)目分成幾個(gè)不同的層次,按照自上而下的順序,在不同的層次對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)、描述與仿真。這種設(shè)計(jì)思想更符合人們邏輯思維的習(xí)慣,也容易使設(shè)計(jì)者對(duì)復(fù)雜的系統(tǒng)進(jìn)行合理的劃分與不斷的優(yōu)化。
因此,教師需在完全把握項(xiàng)目要求的基礎(chǔ)上,把項(xiàng)目進(jìn)行合理的從上而下的分解,得到各個(gè)應(yīng)用于教學(xué)內(nèi)容的項(xiàng)目模塊,并按照教學(xué)進(jìn)程和教學(xué)內(nèi)容,選擇項(xiàng)目中需要完成的項(xiàng)目模塊進(jìn)行實(shí)踐分配和設(shè)計(jì)積累。在子項(xiàng)目的完成中,教師應(yīng)鼓勵(lì)采用多種實(shí)現(xiàn)方式和多種解法,讓學(xué)生有充分發(fā)揮想象力和創(chuàng)造力的機(jī)會(huì)。這些模塊任務(wù)對(duì)于編程基礎(chǔ)好的學(xué)生不成問題,在課堂上能完成,對(duì)于編程能力稍差的學(xué)生通過參考書目、互動(dòng)問答和MATLAB幫助文檔也能完成項(xiàng)目,只是需要更多時(shí)間,但經(jīng)過自己努力能完成項(xiàng)目,學(xué)生感到收獲很大,自信心增加。
4 教學(xué)實(shí)例及思考
在項(xiàng)目驅(qū)動(dòng)教學(xué)法中,項(xiàng)目選擇應(yīng)該符合學(xué)生的專業(yè)方向,由簡(jiǎn)單到復(fù)雜,并有利于培養(yǎng)創(chuàng)新能力。由于MATLAB矩陣運(yùn)算教學(xué)內(nèi)容與二維存儲(chǔ)形式的圖像處理存在較大的關(guān)聯(lián)性,并且對(duì)于圖像感知具有獨(dú)一無(wú)二的直觀性,因此該文以數(shù)字圖像匹配為項(xiàng)目實(shí)例,結(jié)合MATLAB教學(xué)重點(diǎn),說明項(xiàng)目驅(qū)動(dòng)模式的整體教學(xué)過程。
圖2給出了圖像匹配項(xiàng)目和MATLAB知識(shí)點(diǎn)的關(guān)系圖。將項(xiàng)目分解為圖像的預(yù)處理、特征提取、特征匹配和結(jié)果輸出保存四個(gè)模塊。其中預(yù)處理模塊包括了圖像尺寸處理、圖像灰度的轉(zhuǎn)換以及圖像的預(yù)濾波。特征提取部分采用自定義函數(shù)法和復(fù)合型數(shù)據(jù)類型方式提取和保存特征點(diǎn)坐標(biāo)和特征向量。特征匹配部分以特征點(diǎn)坐標(biāo)和特征向量為對(duì)象,以最小歐氏距離為準(zhǔn)則,并采用MATLAB高效的矩陣運(yùn)算方法進(jìn)行圖像匹配。最后將匹配結(jié)果用圖形方式和文件讀寫方式進(jìn)行保存和顯示。以下是本項(xiàng)目主要設(shè)計(jì)模塊以及執(zhí)行結(jié)果。endprint
(1)預(yù)處理。通過矩陣賦值方式對(duì)圖像裁剪和由高斯平滑實(shí)現(xiàn)圖像的預(yù)濾波。圖3和圖4分別給出了裁剪前后的圖像。圖5是采用高斯平滑后得到的圖像。
fix=imread('fix.jpg');mov=imread('mov.jpg');%讀圖
fix_2=fix(40:220,50:200,:);%通過矩陣抽取法裁剪
mov_2=mov(40:220,50:200,:);%通過矩陣抽取法裁剪
sigma=2;MaskSize=100;endthresh=1e-3;%濾波參數(shù)
gr=linspace(-MaskSize,MaskSize,2*MaskSize+1);
%MATLAB向量生成法
gr=1.0/(sqrt(2*pi)*sigma)*exp(-gr.^2/(2*sigma^2));
lim=find(abs(gr)>abs(endthresh));
gr=gr(lim);%平滑模板的生成
gr=gr/sum(gr);%平滑模板的歸一化
fix_smooth=conv2(gr,gr,fix_2,'same');%卷積濾波
mov_smooth=conv2(gr,gr,mov_2,'same');
(2)特征提取。自定義函數(shù)SIFT,通過調(diào)用函數(shù)得到復(fù)合類型的特征Ipts1和Ipts2。
Ipts1=SIFT(fix_smooth,Options);
Ipts2=SIFT(mov_smooth,Options);
(3)圖像匹配。用循環(huán)控制編程方式得到匹配點(diǎn)坐標(biāo)及其匹配點(diǎn)距離,結(jié)果如圖6,圖7所示。
D1=reshape([Ipts1.descriptor],64,[]); %特征向量排列
D2=reshape([Ipts2.descriptor],64,[]);
for i=1:length(Ipts1)%循環(huán)結(jié)構(gòu)控制匹配過程
distance=sum((D2-repmat(D1(:,i),[1 length(Ipts2)])).^2,1);%矩陣運(yùn)算得到特征距離
[err(i),cor2(i)]=min(distance);%最小歐氏距離法則
End
5 結(jié)語(yǔ)
該文在MATLAB教學(xué)中引入項(xiàng)目驅(qū)動(dòng)教學(xué)法,強(qiáng)調(diào)了學(xué)生學(xué)習(xí)的目標(biāo)性,體現(xiàn)了學(xué)生在教學(xué)過程中的主體地位。通過項(xiàng)目的分解和逐步實(shí)現(xiàn),提高了學(xué)生從實(shí)際出發(fā),結(jié)合課程內(nèi)容進(jìn)行合理的分析問題、解決問題的能力。在實(shí)施項(xiàng)目驅(qū)動(dòng)教學(xué)法的過程中,教師還需不斷嘗試和創(chuàng)新,并對(duì)項(xiàng)目?jī)?nèi)容進(jìn)行外延和總結(jié),同時(shí)注重互動(dòng)和疑難解答,從而進(jìn)一步得到改進(jìn),提高教學(xué)質(zhì)量。
參考文獻(xiàn)
[1] 吳菊華,莫贊,陶雷,等.基于創(chuàng)新應(yīng)用型人才培養(yǎng)的實(shí)驗(yàn)教學(xué)改革研究與實(shí)踐[J].科技創(chuàng)新導(dǎo)報(bào),2013(17):128-130.
[2] 伍秀娟,項(xiàng)榮健.以協(xié)作項(xiàng)目為驅(qū)動(dòng)的教學(xué)實(shí)踐與應(yīng)用[J].中國(guó)電化教育,2011(5):92-96.
[3] 吳愛萍.基于任務(wù)驅(qū)動(dòng)的Matlab與控制系統(tǒng)仿真教學(xué)方法改革[J].中國(guó)現(xiàn)代教育裝備,2012(11):57-59.
[4] 項(xiàng)榮健,李建軍,伍秀娟,等.基于任務(wù)的引領(lǐng)式協(xié)作學(xué)習(xí)環(huán)境的構(gòu)建與實(shí)踐[J].中國(guó)電化教育,2013(4):60-64.
[5] 張佩云.項(xiàng)目驅(qū)動(dòng)的軟件工程課程案例式分段情景教學(xué)研究[J].計(jì)算機(jī)教育,2013(3):77-79.endprint