宋岑
【摘要】隨著全國大學(xué)生數(shù)學(xué)建模比賽的影響力越來越大,很多從未學(xué)習(xí)過編程的學(xué)生,甚至文科生也都在學(xué)習(xí)Matlab.這使得Matlab的學(xué)習(xí)與教學(xué)發(fā)生了新的變化.
【關(guān)鍵詞】數(shù)學(xué)建模;編程;Matlab
全國大學(xué)生數(shù)學(xué)建模比賽吸引了越來越多的學(xué)生參賽,學(xué)生們都希望通過這個平臺,為自己今后的發(fā)展添加一塊有力的基石.為了滿足學(xué)生們的需求,很多院校針對比賽開設(shè)了數(shù)學(xué)建模的相關(guān)課程,Matlab就是其中之一.在這個新背景下,Matlab的學(xué)習(xí)與教學(xué)正悄然發(fā)生著改變.
一、學(xué)習(xí)方面
(一)學(xué)習(xí)目的的變化
Matlab課程開設(shè)最初是因為工作崗位的需要.學(xué)生通過學(xué)習(xí)Matlab,可以更好地適應(yīng)未來的工作崗位.但隨著數(shù)學(xué)建模比賽的影響力越來越大,在比賽中獲獎能成為找工作時的重要砝碼,許多學(xué)生學(xué)習(xí)Matlab的目的就變成了參賽獲獎,功利性較強.Matlab具有十分強大的繪圖和計算功能,即使不再學(xué)習(xí)其他編程軟件,也基本可以滿足數(shù)學(xué)建模比賽的需要.于是在有限的精力下,許多學(xué)生會選擇把Matlab作為自己的編程入門語言,而放棄學(xué)習(xí)以C語言為代表的其他傳統(tǒng)編程語言.
為了明確的目標(biāo)而學(xué)習(xí),實際上最能激發(fā)學(xué)生的學(xué)習(xí)動力.在嚴(yán)峻的就業(yè)形勢下,畢業(yè)生就業(yè)時的競爭力,更能直接地反映出一個高等院校的辦學(xué)水平.所以,應(yīng)該在教學(xué)時給予這些學(xué)生更多的支持和照顧.
(二)學(xué)習(xí)難度的變化
Matlab是基于C語言開發(fā)的,它的編程語言和C語言非常接近.但是C語言程序和Matlab程序之間的轉(zhuǎn)化并不是簡單的復(fù)制粘貼.同樣的問題,Matlab可以利用自身的特點,寫出思路完全不同的解答.
例如,用Matlab建立矩陣A=1[]2[]3[]45[]6[]7[]89[]10[]11[]1213[]14[]15[]16.
解1(C語言思想的程序)
k=1;
for m=1:1:4
for n=1:1:4
A(m,n)=k;k=k+1;
end
end
解2(Matlab思想的程序)
A=zeros(4,4);
k=1:1:16;
A(k)=k;
A=A′ ;
以上兩種解答程序各有特點,都需要學(xué)生掌握.對于初次接觸編程的學(xué)生來說,等于同時在學(xué)習(xí)C語言和Matlab.所以表面上是直接學(xué)習(xí)Matlab,實際上還是要先學(xué)C語言的思想.編程思想的建立需要一個積累過程,沒有捷徑可走.因此,直接學(xué)習(xí)Matlab的難度很大.
二、教學(xué)方面
(一)教學(xué)內(nèi)容的變化
原本Matlab的開課時間較晚,學(xué)生都熟練地掌握了C語言.教學(xué)的重點主要在介紹軟件的功能,程序設(shè)計等內(nèi)容均為略講.但現(xiàn)在開課時間被提前,學(xué)生編程基礎(chǔ)差的特點,使得傳統(tǒng)的教學(xué)內(nèi)容已經(jīng)不能滿足需求了.
針對學(xué)生沒有學(xué)過C語言的特點,擴充“Matlab程序設(shè)計”這一章的內(nèi)容.原來本章只是簡單介紹幾個流程控制語句的范例,供學(xué)生參考使用.擴充后的本章與傳統(tǒng)的C語言教學(xué)內(nèi)容基本一致,但所有的程序范例都是在Matlab的環(huán)境下運行,編程思想更傾向于Matlab而非C語言.本章的作用是讓學(xué)生們更快地掌握一定的編程思想,盡早跟上后續(xù)課程的進度.
針對學(xué)生學(xué)習(xí)負(fù)擔(dān)重的特點,舍棄部分Matlab編程語句的講授.例如,while語句和switch-case語句在數(shù)學(xué)建模的實際需求中大多可以被for語句和if替代.所以略去這些內(nèi)容不講,留給學(xué)有余力的學(xué)生課后自學(xué).
(二)教學(xué)模式的變化
在學(xué)生掌握了Matlab的基礎(chǔ)操作后,不再分章節(jié)地介紹Matlab的功能,而是帶著學(xué)生們重做往年的數(shù)學(xué)建模真題,讓學(xué)生在解題的過程中逐步學(xué)會使用比賽中需要的功能.Matlab的教學(xué)模式也由傳統(tǒng)的講授式變?yōu)槿蝿?wù)驅(qū)動式.
以2013年全國大學(xué)生數(shù)學(xué)建模比賽專科組C題“古塔的變形”為例,題目附件中給出了對某古塔的4次觀測數(shù)據(jù),要求根據(jù)數(shù)據(jù)分析古塔的變形情況.Matlab在問題中承擔(dān)著重要的數(shù)據(jù)預(yù)處理任務(wù).首先,Excel格式的數(shù)據(jù)不能被Matlab 直接讀取,需要將數(shù)據(jù)復(fù)制到記事本中,再通過Matlab讀取.學(xué)生在這個過程中復(fù)習(xí)文件管理、工作地址管理等Matlab基礎(chǔ)操作.然后,因提供的數(shù)據(jù)有部分缺失,要通過數(shù)據(jù)插值或數(shù)據(jù)擬合的方法將缺失數(shù)據(jù)補全.學(xué)生在這個過程中學(xué)習(xí)數(shù)據(jù)插值和數(shù)據(jù)擬合的一般方法,并體會這兩種方法各自的優(yōu)缺點.最后將所有數(shù)據(jù)整合,繪制古塔輪廓外貌.學(xué)生在這個過程中學(xué)習(xí)Matlab的各種繪圖語句并了解它們的特點.
通過任務(wù)驅(qū)動式的教學(xué)模式,使得學(xué)生對Matlab的學(xué)習(xí)更加積極主動.針對數(shù)學(xué)建模比賽的需要調(diào)整教學(xué)內(nèi)容,舍棄數(shù)學(xué)建模中用不到的內(nèi)容,增加數(shù)學(xué)建模的針對性練習(xí),讓教與學(xué)的聯(lián)系更加緊密,教學(xué)效果提升明顯.
(三)老師的變化
數(shù)學(xué)建模的指導(dǎo)老師多為數(shù)學(xué)老師,他們了解數(shù)學(xué)建模,更能針對性地去指導(dǎo)學(xué)生學(xué)習(xí)Matlab.所以Matlab已由過去計算機老師授課,變成了現(xiàn)在數(shù)學(xué)老師在授課.老師的變化是教學(xué)中改變最大的一環(huán).數(shù)學(xué)老師了解數(shù)學(xué)建模,講授Matlab時有其自身優(yōu)勢,但同時也存在一些劣勢.例如,編程思想講解不到位,機房廣播軟件使用時機不合理等.所以,數(shù)學(xué)老師和計算機老師之間互相取長補短,才能讓Matlab的教學(xué)更上一層樓.
數(shù)學(xué)建模讓Matlab從自學(xué)為主的選修課變成了熱門課程,如何學(xué)好Matlab,如何教好Matlab,還需要在實踐中繼續(xù)探索與研究.