劉曉玉
文章編號:1672-5913(2015)03-0059-03
中圖分類號:G642
摘 要:針對學(xué)生將MATLAB語言作為純粹的一門計算機語言進行學(xué)習(xí)且學(xué)習(xí)難度大、應(yīng)用能力差等問題,提出將課程教學(xué)目標(biāo)定位在培養(yǎng)學(xué)生應(yīng)用MATLAB解決實際問題能力的觀點,基于此教學(xué)目標(biāo),從提高學(xué)生學(xué)習(xí)興趣、抓住MATLAB語言特點、著重培養(yǎng)學(xué)生學(xué)習(xí)和使用該軟件的自主能力等方面探討MATLAB語言課程教學(xué)方法。
關(guān)鍵詞:MATLAB語言;教學(xué)目標(biāo);課程教學(xué)方法
0 引 言
MATLAB是一種計算類軟件,其強大的數(shù)值計算和數(shù)據(jù)可視化能力使其在科研、工程計算等領(lǐng)域得以廣泛應(yīng)用。目前高校的很多理工科專業(yè)均在低年級開設(shè)廠MATLAB語言課程,學(xué)生在數(shù)學(xué)建模、專業(yè)課的課程設(shè)計、畢業(yè)設(shè)計乃至各類科技競賽和科研項目中,開始真正接觸該軟什許逐漸感知該軟件功能的強大及應(yīng)用的廣泛,但低年級學(xué)生在該課程的學(xué)習(xí)中卻未能體會到學(xué)習(xí)MATLAB的意義,加之軟件編程基礎(chǔ)有限及課程學(xué)時不多等原因,從而對該課程的學(xué)習(xí)產(chǎn)生畏難情緒,學(xué)習(xí)方法不得要領(lǐng),學(xué)習(xí)效果欠佳。
1 MATLAB語言課程的教學(xué)目標(biāo)
MATLAB是美國MathWorks公司開發(fā)的一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級計算語言和交互式環(huán)境。目前,MATLAB以其簡單易用的操作方式、強大的數(shù)據(jù)處理能力以及豐富的專業(yè)工具箱,而在包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計、測試和測量、財務(wù)建模和分析以及計算生物學(xué)等諸多領(lǐng)域得以廣泛應(yīng)用。鑒于此,我國高校的許多理工科專業(yè)均開設(shè)了與MATLAB相關(guān)的課程,旨在使學(xué)生掌握運用MATLAB軟件解決所學(xué)相關(guān)專業(yè)課程、學(xué)科競賽或科研課題中遇到的數(shù)學(xué)運算和求解問題。以武漢科技大學(xué)自動化專業(yè)為例,該專業(yè)的學(xué)生在大二下學(xué)期要學(xué)習(xí)MATLAB語言這門課程,此后有些學(xué)生要參加數(shù)學(xué)建模大賽、電子設(shè)計大賽等,需要使用MATLAB軟件;該專業(yè)大三和大四年級的很多專業(yè)課程如電力電子技術(shù)、自動控制系統(tǒng)和過程控制等,也會要求用該軟件進行控制系統(tǒng)仿真案例教學(xué)及課程設(shè)汁,一些畢業(yè)設(shè)計課題也會用到該軟件。此此可見,MATLAB語言課程的教學(xué)目標(biāo)應(yīng)該是讓學(xué)生學(xué)會用MATLAB軟件解決今后學(xué)習(xí)和科研中的特定問題。
此教學(xué)目標(biāo)簡而言之就是一個“用”字,換言之,檢驗學(xué)生學(xué)習(xí)效果的主要指標(biāo)就是“應(yīng)用能力”,這是一個高指標(biāo),也是一個低指標(biāo),稱其為“高指標(biāo)”是因為這對初次接觸該語言的學(xué)生來說,在學(xué)習(xí)時間短、軟件編程思想尚未明晰(畢竟是大學(xué)低年級學(xué)生)的客觀條件下,即要求他們用MATLAB編寫算法程序解決實際問題,確實難度很大;稱其為“低指標(biāo)”是因為只強調(diào)“用”,實則放松了對MATLAB軟件龐大功能全面掌握的要求,也無需學(xué)生了解其工作機制的內(nèi)部機理。MATLAB軟件隨著歷年的不斷更新補充以及新專業(yè)工具箱的加入,體積迅速膨脹,目前的最新版本R2014a已超過SG。顯然,對如此龐大軟件的功能完全掌握是不現(xiàn)實的,也完全無此必要。畢竟每個專業(yè)的學(xué)生用MATLAB解決的問題范圍實屬有限,如自動化專業(yè)的學(xué)生用MATLAB基本只會涉及控制、電子類工具箱,這就極大縮小了學(xué)習(xí)范圍。再者,MATLAB軟件本身簡單易用的特點也使學(xué)生的學(xué)習(xí)難度大為降低,特別是本著應(yīng)用為目的的學(xué)習(xí),因為只需要使用,所以所用MATLAB函數(shù)的實現(xiàn)機理就不必過于深究,學(xué)生只需知道函數(shù)的輸入?yún)?shù)如何填寫即可,這也從另一方面降低了MATLAB學(xué)習(xí)的難度。因此,從“用”的角度出發(fā),MATLAB語言的學(xué)習(xí)也就變得不那么難,這也正是MATLAB語言課程教學(xué)的突破口。
2 MATLAB語方課程的教學(xué)方法
明確了課程的教學(xué)目標(biāo),相應(yīng)的教學(xué)方法就應(yīng)圍繞該目標(biāo)制訂,其基本宗旨是抓基礎(chǔ)、重應(yīng)用。當(dāng)然,首要前提是讓學(xué)生明確學(xué)習(xí)該課程的目的,提起學(xué)習(xí)該課程的興趣,再教會其學(xué)習(xí)方法,如此才能將確定的教學(xué)目標(biāo)落實到位。
2.1 教學(xué)的首要任務(wù)是讓學(xué)生明確學(xué)習(xí)目的,喚起學(xué)生的學(xué)習(xí)興趣
之前提到,MATLAB語言課程的教學(xué)是為了讓學(xué)生學(xué)會用MATLAB,那么為什么要用MATLAB呢?這個問題的答案有必要在課程的開篇即向?qū)W生明確。MATLAB軟件里有許多Demo和Example,這些是介紹MATLAB強大功能的最便捷素材;也可通過引入相關(guān)專業(yè)課程中的仿真案例,說明MATLAB在專業(yè)領(lǐng)域中的應(yīng)用狀況。不過,鑒于大二年級的學(xué)生尚未開始學(xué)習(xí)專業(yè)課程,對自己的專業(yè)情況缺乏明確的認(rèn)識,專業(yè)仿真案例的講解不宜過細(xì),應(yīng)點到為止,讓學(xué)生知道學(xué)習(xí)MATLAB對今后的課程學(xué)習(xí)有用即可。此外,網(wǎng)絡(luò)資源的力量不可小覷。目前,一些針對MATLAB學(xué)習(xí)和應(yīng)用的網(wǎng)站、論壇為MATLAB初學(xué)者、愛好者和科研工作人員提供了很好的學(xué)習(xí)和交流平臺,如在“iLoveMatlab(MATLAB中文論壇)”上就曾有一位MATLAB的資深使用者現(xiàn)身說法,用自己的親身經(jīng)歷告訴初學(xué)者自己是如何走上MATLAB學(xué)習(xí)之路,又是如何學(xué)習(xí)的,以及目前的學(xué)習(xí)和工作情況。這樣的故事作為課堂的教學(xué)素材,對于90后的互聯(lián)網(wǎng)一代大學(xué)生來說相當(dāng)親切且極富吸引力。學(xué)生通過在課堂上聽故事,知道了MATLAB與自己學(xué)習(xí)和未來發(fā)展的緊密關(guān)系;在課下,他們可以訪問該論壇查看原文并通過瀏覽論壇更進一步了解MATLAB的方方面面,從而明確自己的學(xué)習(xí)目的,建立對MATLAB的學(xué)習(xí)興趣。
筆者則用MATLAB的GUI(圖形用戶界面)工具箱編寫了一個點名小程序,用于對上課的學(xué)生隨機抽簽點名。該程序充分利用學(xué)生對課堂點名的重視態(tài)度,同時也向?qū)W生展示MATLAB的數(shù)據(jù)處理和圖形功能,該環(huán)節(jié)的教學(xué)引起了學(xué)生極大的興趣,課堂教學(xué)效果甚佳。
2.2 在教學(xué)內(nèi)容上注意繁簡適中,引導(dǎo)學(xué)生開展自主學(xué)習(xí)
作為一種側(cè)重科學(xué)計算的計算機語言,如何將一個具體的算法問題用MATLAB語言表述出來是應(yīng)用的關(guān)鍵,因此在有限的學(xué)時內(nèi),MATLAB的基本語法是教學(xué)關(guān)鍵點之一。MATLAB的基本運算單元是矩陣,因而有關(guān)矩陣的定義和矩陣元素的表達(dá)是基礎(chǔ),要重點講解;再者,MATLAB語言是以最流行的C++語言為基礎(chǔ),因此其語法特征與C++語言極為相似,而且更加簡單,更加符合科技人員書寫數(shù)學(xué)表達(dá)式的格式??紤]到學(xué)生已經(jīng)學(xué)習(xí)過C語言,教師sk 在語法的講解中采用由此及彼的引入、兩種計算機語言的異同比較等手段。這種比對學(xué)習(xí)有次于學(xué)生盡快接受MATLAB語言的語法,也免于學(xué)生將兩種計算機語言混淆。
打好了語法基礎(chǔ),MATLAB的具體應(yīng)用就需借助其豐富的工具箱函數(shù),此版塊內(nèi)容的教學(xué)宜采用“授人以魚不如授人以漁”的思想。畢竟MATLAB軟件是一款功能強大的軟件,涉及的專業(yè)領(lǐng)域非常多,而使用者大多只需了解與自己專業(yè)領(lǐng)域相關(guān)的功能即可。為此,MATLAB語言課程的教學(xué)應(yīng)考慮該特點,任課教師在教學(xué)中要考慮授課學(xué)生的專業(yè)背景,有選擇地講解與其專業(yè)相關(guān)的函數(shù)工具箱,且相關(guān)專業(yè)函數(shù)的講解宜點到為止,只需講解幾個有代表性的函數(shù)。例如,在講數(shù)據(jù)分析部分時可重點介紹“max(X)”求最大值函數(shù)的用法,強調(diào)MATLAB中的數(shù)據(jù)分析是按矩陣的列進行的,因此該函數(shù)的返回結(jié)果是求X矩陣每列的最大值,類似的“min()”函數(shù)、“mean()"函數(shù)等均有此特點。由此觸類旁通,學(xué)可以在有限時間內(nèi)掌握MATLAB數(shù)據(jù)分析一類函數(shù)的使用方法。
此外,教師在教學(xué)中還要有意識地培養(yǎng)學(xué)生使用MATLAB幫助系統(tǒng)的習(xí)慣。MATLAB軟件的一大特色是幫助系統(tǒng)非常強大,除了給出具體函數(shù)的使用語法和詳細(xì)解釋外,還給出Examples(例子),使用者通過分析給出的樣例即可更準(zhǔn)確、具體地了解相關(guān)函數(shù)的用法。再者,幫助系統(tǒng)中還給出與所搜索函數(shù)相關(guān)函數(shù)的幫助鏈接,如在查找有關(guān)“min()”函數(shù)的幫助時,MATLAB的幫助系統(tǒng)就同時還給出max、mean、median、sort等函數(shù)的幫助鏈接,這些鏈接可方便使用者追溯、發(fā)散學(xué)習(xí),從而使其對一類相關(guān)函數(shù)有所了解。對于MATLAB幫助系統(tǒng)的使用,教師應(yīng)做好榜樣,在課堂教學(xué)里即經(jīng)常使用MATLAB的幫助功能,引導(dǎo)學(xué)生看懂幫助信息,學(xué)會使用幫助文檔,這種做法要在課堂上反復(fù)使用,以強調(diào)、加深學(xué)生的印象,使之形成使用幫助的習(xí)慣。有些學(xué)生看見英文幫助信息就犯怵,但通過教師多遍的引導(dǎo)學(xué)習(xí)就能逐漸習(xí)慣幫助文檔的表達(dá),直至基本掌握自己看幫助的能力,此種自主能力的培養(yǎng)除了會引導(dǎo)學(xué)生走上主學(xué)習(xí)MATLAB之路以外,還能增強學(xué)生自我解決問題的信心,間接提高其英文閱讀能力,可謂一舉多得。
2.3 用實例引導(dǎo)教學(xué),培養(yǎng)學(xué)生分析問題和解決問題的能力
任何語言只有在反復(fù)應(yīng)用中才能鞏固提高,作為計算機語言的MATLAB也不例外。在教學(xué)中,如果只是一味地講解語法,過于強調(diào)語法的各項規(guī)定并讓學(xué)生死記硬背,這種“填鴨式”的教學(xué)必然會打擊學(xué)生的學(xué)習(xí)熱情,也難以培養(yǎng)出具有獨立思考能力和靈活應(yīng)用能力的學(xué)生。相反,如果在教學(xué)中多引入實例,課堂上由教師先提出問題,引導(dǎo)學(xué)生思考,然后給出程序流程圖,再給出范例代碼,之后對代碼進行評析,給出改進意見,最后給學(xué)生布置課下任務(wù),要求其思考針對該問題的其他解決方案或改進意見。這樣逐步深入既能提高學(xué)生的學(xué)習(xí)關(guān)注度和課懂上的學(xué)習(xí)效率,又能培養(yǎng)其獨立思考能力,變被動學(xué)習(xí)為主動學(xué)習(xí),使其對相關(guān)教學(xué)內(nèi)容的理解因不斷反復(fù)使用而得以加深。其間,教師還可有意地在范例代碼中制造一些語法錯誤,提醒學(xué)生通過找錯鞏固對語法的學(xué)習(xí)。經(jīng)筆者近年的教學(xué)實踐證明,此教學(xué)方法的應(yīng)用不僅使語法教學(xué)達(dá)到了預(yù)期的效果,學(xué)生的編程思想和編程能力也在此有引導(dǎo)的訓(xùn)練中逐步提高。
當(dāng)然,此處提到的“實例教學(xué)”足一種“細(xì)講”的方法,會占用相對較多的教學(xué)時間,因此會出現(xiàn)“有限的教學(xué)時間和規(guī)定的教學(xué)內(nèi)容”之間的矛盾。在此需要說明的是,筆者提出的教學(xué)日的是培養(yǎng)學(xué)生的實際應(yīng)用能力,因此教學(xué)內(nèi)容的多寡不必刻意強求,一旦教會學(xué)生止確的自主學(xué)習(xí)方法,許多教學(xué)內(nèi)容可放手讓學(xué)生自學(xué),教師的主要精力則可放在如何設(shè)計合適的思考題上,將必要的教學(xué)內(nèi)容融入其中,然后引導(dǎo)學(xué)生通過自學(xué)教材并在MATLAB的幫助系統(tǒng)和網(wǎng)絡(luò)資源中尋求幫助,通過主動學(xué)習(xí)解答思考題。這樣一來,學(xué)生有了具體的學(xué)習(xí)任務(wù),學(xué)習(xí)就不再盲日;通過自主學(xué)習(xí)掌握相關(guān)教學(xué)內(nèi)容(包括教師在課堂上沒有詳細(xì)講解而又在教學(xué)大綱中有要求的教學(xué)內(nèi)容),成功解答教師布置的思考題,成就感油然而生,其學(xué)習(xí)興趣以及分析問題、解決問題的能力自然提高,所謂“教學(xué)時間和教學(xué)內(nèi)容”的矛盾也迎刃而解。
3 結(jié)語
MATLAB軟件在科研和工程計算中應(yīng)用的日漸廣泛決定著其在高校許多專業(yè)教學(xué)中的重要地位。面對MATLAB的龐大功能,MATLAB語言的教學(xué)任務(wù)重、難度大,但MATLAB的應(yīng)用特點為其課程的教學(xué)指明了方向,即以培養(yǎng)應(yīng)用能力為主導(dǎo)的教學(xué)目標(biāo)。以此目標(biāo)為驅(qū)動,從學(xué)習(xí)興趣人手,結(jié)合由淺入深、由點到面的教學(xué)方法,采用引導(dǎo)的方式舉一反三,鼓勵并激發(fā)自主學(xué)習(xí)等均是應(yīng)用型教學(xué)的適宜手段,也能夠極大減輕課程教學(xué)和學(xué)生學(xué)習(xí)的負(fù)擔(dān),更宜于培養(yǎng)學(xué)生的學(xué)習(xí)自覺性和自主性。此外,對于課程實踐和考核環(huán)節(jié)等,我們也可針對該教學(xué)日標(biāo)制訂,多方位提高MATLAB語言課程的教學(xué)質(zhì)量,提升學(xué)生的應(yīng)用和實踐能力。