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