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