衛(wèi)澤剛,張小丹★,趙軍娣,劉飛,錢郁
(1寶雞文理學(xué)院物理與光電技術(shù)學(xué)院,陜西寶雞 721016;2寶雞高新鳳師實驗小學(xué),陜西寶雞 721016)
Matlab是一門編程語言,同時也是一種強有力的科學(xué)計算軟件[1],主要適用于矩陣運算及數(shù)據(jù)分析,在工學(xué)專業(yè)中有著非常廣泛的應(yīng)用,如數(shù)值計算、人工智能、機器學(xué)習(xí)、算法仿真、科學(xué)繪圖等[2]。其中繪圖功能是Matlab的一大“強項”,可以很方便地通過Matlab繪制圖形對計算結(jié)果進行可視化展示,繪圖操作簡單,易于學(xué)習(xí)[3]。在Matlab基本繪圖方法章節(jié)的教學(xué)中,教師通常會先根據(jù)多媒體課件演示繪圖相關(guān)命令及其繪圖效果,然后給同學(xué)們解釋繪圖的相關(guān)命令,再對繪圖命令中的參數(shù)及代碼進行詳細講解,有時還要對程序中的關(guān)鍵代碼反復(fù)強調(diào)等等。這些傳統(tǒng)的Matlab繪圖教學(xué)方法都是根據(jù)教科書內(nèi)容采用按部就班的策略,主要教學(xué)內(nèi)容是Matlab的繪圖語法、繪圖函數(shù)及參數(shù)的使用方法。教學(xué)模式主要為“單向輸入式”,而非“雙向互動式”,課堂索然乏味、師生之間缺少交流互動,因此學(xué)生在發(fā)現(xiàn)問題、分析問題及解決問題方面有所欠缺[4]。同時,在這種照本宣科式的教學(xué)過程中,學(xué)生處于被動的學(xué)習(xí)接受地位,不利于激發(fā)學(xué)生的主觀能動性和創(chuàng)新能力的培養(yǎng)。這樣被動式學(xué)習(xí)造成的后果是課堂上很多學(xué)生沒有學(xué)習(xí)興趣,聽課積極性不高,不僅在一定程度上影響了教學(xué)質(zhì)量,也助長了不良學(xué)風。
所謂興趣是最好的老師,如果學(xué)生有主動學(xué)習(xí)的興趣,教師就能充分發(fā)揮學(xué)生在學(xué)習(xí)過程中的積極性和主動性,營造輕松和諧的學(xué)習(xí)氛圍[5],對學(xué)習(xí)效果會起到事半功倍的效果。當前北京冬奧會吉祥物“冰墩墩”由于其外表胖乎乎、圓滾滾、萌噠噠的外表,獲得了全民追捧,迅速成為全球焦點。根據(jù)相關(guān)調(diào)查研究,94.11%的受訪大學(xué)生表示喜愛冰墩墩造型[6]。冰墩墩平面二維圖是由一系列曲線繪制組合而成。因此,結(jié)合當前冰墩墩熱點,如果在學(xué)習(xí)Matlab繪圖功能時通過繪制冰墩墩二維圖完成課堂教學(xué),可以使學(xué)習(xí)內(nèi)容變得生動有序,迅速激發(fā)學(xué)生們的學(xué)習(xí)興趣,培養(yǎng)學(xué)生主動學(xué)習(xí)的能力。
教學(xué)設(shè)計是根據(jù)課程目標要求和教學(xué)對象特點而設(shè)計的教學(xué)文本,是課堂教學(xué)的設(shè)想和計劃。教學(xué)設(shè)計同時也是將各種教學(xué)要素有序、合理地進行安排,形成教學(xué)方案的過程。教學(xué)設(shè)計一般包括教學(xué)目標、教學(xué)重難點、教學(xué)方法、教學(xué)步驟與時間分配等環(huán)節(jié)。筆者所在學(xué)校為地方二本高校,Matlab課程授課對象為大二學(xué)生,授課時間一般為大二上學(xué)期或下學(xué)期,學(xué)生在大一時期已經(jīng)完成了C語言相關(guān)課程的學(xué)習(xí),雖然具備了相關(guān)計算機基礎(chǔ)知識,但大多數(shù)學(xué)生并未接觸過用編程語言科學(xué)繪圖的相關(guān)知識,日常課程學(xué)習(xí)過程中也沒有遇到科學(xué)繪圖的相關(guān)需求,更沒有跟著導(dǎo)師參與科研繪圖的經(jīng)歷。因此,通過本課程學(xué)習(xí)Matlab繪圖功能有可能是絕大多數(shù)學(xué)生第一次使用專業(yè)軟件來繪圖。鑒于此,進行Matlab繪圖教學(xué)設(shè)計時,需要根據(jù)學(xué)生實際情況,把繪圖命令分解成為幾個簡單的子問題,分而治之進行講解,最后又進行合成,讓學(xué)生從整體與細節(jié)上,掌握Matlab繪圖功能。
Matlab繪圖功能教學(xué)目標:掌握Matlab基本繪圖相關(guān)命令,如gca、hold、plot、fill命令及其相關(guān)參數(shù)用法。
Matlab繪圖功能教學(xué)重難點:Matlab基本繪圖命令及其使用方法,繪圖過程中顯示效果與繪圖相關(guān)參數(shù)之間的對應(yīng)關(guān)系。
結(jié)合多媒體演示講解Matlab相關(guān)繪圖命令及作用,學(xué)生可以直觀感受繪圖函數(shù)相關(guān)功能,從教學(xué)的角度出發(fā),通過查找相關(guān)資料(https://mp.weixin.qq.com/s/Wj8YXN_fyaw1WFxPsnMrmQ),結(jié)合Matlab軟件,最大限度降低繪圖復(fù)雜度,發(fā)現(xiàn)冰墩墩二維平面圖主要是由多個橢圓、圓形、圓角矩陣以及不同線條顏色組合填充而成,如圖1所示。主要部位分析如下:
圖1 冰墩墩二維平面圖及輪廓圖
(1)冰晶外殼、耳朵、手掌、腳掌、眼圈、嘴巴、鼻子均為橢圓形狀,其中腳掌、鼻子為半橢圓形狀,左掌心有一顆桃心形形狀;
(2)腿部為圓角矩形形狀;
(3)胳膊由與手掌相切的直線組成;
(4)面罩由五個不同顏色的橢圓組成;
(5)眼睛與肚子上的奧運五環(huán)為圓形形狀;
(6)“BEIJING 2022”為字符串。
根據(jù)以上各部位的形狀分析及多媒體展示,可使學(xué)生對冰墩墩二維平面完整圖與分解圖有一個直觀印象,通過拆分講解達到將復(fù)雜問題簡單化的目的。如果讓學(xué)生直接繪制每個分解圖的形狀有很大的難度,這涉及坐標值選取、橢圓參數(shù),繪圖位置等這些精確數(shù)值。因此,本次課堂教學(xué)不要求學(xué)生編寫繪圖代碼及求解繪圖參數(shù),而是直接提供繪圖程序,讓學(xué)生根據(jù)現(xiàn)有代碼學(xué)習(xí)相關(guān)繪圖命令及相關(guān)參數(shù)。
開始講授繪圖時,先不直接講授繪圖命令及相關(guān)參數(shù),而是直接向?qū)W生展示完整程序,采用先繪圖、后講解的方法完成教學(xué)目的。繪制冰墩墩的完整參考程序及其相關(guān)注釋信息如下:教學(xué)步驟一:
通過多媒體,直接運行整個代碼,即可得到冰墩墩二維平面圖(圖1a),先給學(xué)生們演示整個代碼的運行結(jié)果,使同學(xué)們從整體上看見繪圖結(jié)果。同時告訴同學(xué)們,雖然整體代碼很長,但我們只學(xué)相關(guān)的繪圖命令,其他命令只需要知道作用即可。
教學(xué)步驟二:
分步運行程序,即一行一行運行程序,可使學(xué)生直觀感受每一條繪圖命令的功能及繪圖效果。在本次教學(xué)任務(wù)中,主要使學(xué)生掌握XLim、YLim、hold、plot、fill、三個函數(shù)的用法。具體繪圖函數(shù)及相關(guān)參數(shù)解釋如下:
ax=gca:gca是用來返回當前坐標圖,如果當前沒有坐標圖,則gca會創(chuàng)建一個笛卡爾坐標區(qū)對象,即二維直角坐標系圖。
ax.Xlim(-5,5):設(shè)置橫坐標范圍命令,括號中的兩個參數(shù)代表橫坐標范圍,即[-5,5]。
ax.Ylim(-5,5):設(shè)置縱坐標范圍命令。
hold(ax,'on'):保持當前繪圖,即后面的繪圖命令均繪制在當前坐標圖像中,而不必清空原來圖像。如果想結(jié)束此功能,可以輸入hold(ax,'off')命令。
plot(X,Y,'Color',[57,57,57]./255,'LineWidth',1.8):繪制二維曲線,即繪制以X為橫坐標,Y為縱坐標的曲線。其中'Color'表示曲線的顏色參數(shù),后面緊跟的[57,57,57]表示顏色向量值,'LineWidth'表示曲線線條的粗細參數(shù),后面緊跟的數(shù)字1.8表示線條粗細值。
fill(X,Y,[1,1,1],'EdgeColor',[1,1,1],'LineWidth',1.8):二維曲線或多邊形填充命令,X和Y代表曲線或多邊形的橫坐標和縱坐標,第三個參數(shù)'EdgeColor'表示曲線或邊的顏色參數(shù),后面緊跟的[1,1,1]表示顏色值,'LineWidth'表示曲線或邊的粗細參數(shù),后面緊跟的數(shù)字1.8表示邊的粗細值。
在具體執(zhí)行步驟二時,首先按照原程序一步一步執(zhí)行,執(zhí)行到具體講解的命令時,需讓學(xué)生仔細觀察命令運行前后的區(qū)別,可使學(xué)生直觀感受命令的作用。然后再改變其相應(yīng)參數(shù)值,通過繪圖效果對比讓學(xué)生明白不同參數(shù)的具體意義。
教學(xué)步驟三:繪圖總結(jié)
(1)Matlab具有強大且方便的繪圖功能;
(2)gca命令創(chuàng)建二維坐標面板;
(3)hold(ax,'on'):保持當前繪圖;
(4)plot命令主要繪制二維坐標;
(5)fill命令主要對二維曲面進行不同顏色的填充。
教學(xué)步驟四:拓展練習(xí)
(1)改變繪圖參數(shù)里的相關(guān)參數(shù)值,如線條粗細、線條顏色、填充顏色等參數(shù),進一步加深理解不同參數(shù)的含義。
(2)如果去除掉hold(ax,'on')這一條命令,觀察繪圖結(jié)果,進一步體會其含義。
至此,通過結(jié)合當前北京冬奧會吉祥物“冰墩墩”來完成Matlab繪圖常用命令講解,可激發(fā)學(xué)生的聽課興趣。然后再通過課堂任務(wù)分析及四個課堂步驟,完整清晰、循序漸進、由淺入深、生動有趣地完成了教學(xué)任務(wù)。其中課題任務(wù)分析將繪圖問題簡化,降低了繪圖難度。課堂步驟一先演示整體冰墩墩二維曲面繪圖效果,可使學(xué)生直觀感受Matlab的強大繪圖功能,其中冰墩墩圖片可提高課堂學(xué)習(xí)的有趣性。課堂步驟二的分布運行程序可使學(xué)生直觀感受每一條繪圖命令的功能及其參數(shù)的作用。然后通過課堂步驟三進行總結(jié)。最后利用步驟四為拓展,強化本堂課的教學(xué)內(nèi)容。