国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Matlab項目教學(xué)中學(xué)生獨立編程能力的提高

2020-01-26 05:49:34全星日許一虎朱東弼
電腦知識與技術(shù) 2020年34期
關(guān)鍵詞:項目教學(xué)法程序設(shè)計教學(xué)改革

全星日 許一虎 朱東弼

摘要:Matlab是一門應(yīng)用性很強(qiáng)的實踐性課程,開展項目教學(xué)法是比較合理的Matlab教學(xué)策略。Matlab項目教學(xué)以快速入門、項目貫穿教學(xué)全過程的方式展開,在解決項目任務(wù)的過程中理解、掌握和綜合應(yīng)用基本指令,將驗證性、綜合性和設(shè)計性融入每個項目任務(wù)當(dāng)中進(jìn)行深度學(xué)習(xí)。在Matlab項目教學(xué)實施過程中,從實戰(zhàn)的角度出發(fā),引導(dǎo)學(xué)生對程序進(jìn)行調(diào)試,對實驗數(shù)據(jù)進(jìn)行分析、討論和理論驗證,以獲得項目開發(fā)實踐經(jīng)驗,并逐步提高學(xué)生獨立編程能力。

關(guān)鍵詞:教學(xué)改革;教學(xué)方法;項目教學(xué)法;程序設(shè)計;Matlab

中圖分類號:G642 ? ? ? ?文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2020)34-0111-03

Abstract: Matlab is a practical course with strong applicability, so the PBL(Project-Based Learning) is more reasonable teaching strategy. The PBL based Matlabteaching is carried out in the way of quick introduction and project throughout the whole teaching process. In the process of solving project tasks, basic instructions are understood, mastered and comprehensively applied. Verification, comprehensiveness and design are integrated into each project task for deep learning. In the process of Matlab teaching implementation, from the perspective of actual combat, students are guided to debug the program, analyze, discuss and verify the experimental data, so as to increase practical experience and gradually improve students' independent programming skill.

Key words: education reform; teaching methodology; project-based learning; programming; Matlab

1引言

Matlab是強(qiáng)有力的數(shù)學(xué)分析工具,在工學(xué)中有著非常廣泛的應(yīng)用,如數(shù)值計算、算法仿真、數(shù)據(jù)分析等。Matlab課程后續(xù)的信號與系統(tǒng)、自動控制原理、通信原理等專業(yè)課中都可以用它進(jìn)行仿真,加深對專業(yè)課基本概念的理解。而且Matlab與其他編程語言有很多相通的地方,學(xué)好Matlab可以提高學(xué)生的編程技能,加深對“程序”這一概念的理解。Matlab是一門應(yīng)用性很強(qiáng)的實踐性課程,以理論講授為主、做幾個應(yīng)用性實驗的傳統(tǒng)教學(xué)模式使得學(xué)生能夠理解基本語法和簡單程序,但是當(dāng)學(xué)生需要獨立完成項目時往往感到束手無策、無從下手。不能為學(xué)而學(xué),從實戰(zhàn)的角度提高學(xué)生獨立編程能力很有必要。

2 Matlab教學(xué)中的若干問題思考

2.1 Matlab是一門應(yīng)用性很強(qiáng)的實踐性課程

傳統(tǒng)的Matlab教學(xué)多采用按照教科書內(nèi)容按部就班、循序漸進(jìn)的策略,主要教學(xué)內(nèi)容是Matlab的語法和指令的使用方法。這種照本宣科式教學(xué)中,學(xué)生處于被動的接收地位,不利于激發(fā)學(xué)生的主觀能動性和創(chuàng)新能力的培養(yǎng)。為了提高教學(xué)的趣味性并調(diào)動學(xué)生的學(xué)習(xí)積極性,張靜亞應(yīng)用項目教學(xué)法提高學(xué)習(xí)目的性,通過做實際項目,提高學(xué)生分析問題和解決問題的能力,采用了圖像處理項目[1];易昆南等在數(shù)學(xué)專業(yè)Matlab實驗教學(xué)中結(jié)合音樂中的數(shù)學(xué)原理,鼓勵學(xué)生求異思維和發(fā)散思維[2];魏為民等提出了快速入門的策略,僅用10學(xué)時講授基本知識,穿插6學(xué)時實驗完成Matlab入門,采用實例教學(xué)法,列舉了[π]近似值計算項目[3];畢美華等在Matlab理論教學(xué)中針對語法教學(xué)的枯燥性,引入了趣味性實例,提高了學(xué)生的學(xué)習(xí)興趣[4];林海濤采用任務(wù)驅(qū)動教學(xué)法,幫助學(xué)生主動學(xué)習(xí),在探索中獲得成就感[5]。

Matlab教學(xué)中引入應(yīng)用性項目的研究很多,但是對學(xué)生實踐能力提高的相關(guān)研究比較少。有些學(xué)校的教學(xué)組織形式采用先講理論課、后上機(jī)的兩步走方案,這會降低學(xué)習(xí)效能,而且理論教學(xué)中學(xué)生處于被動地位,不利于舉一反三和發(fā)散思維;一些學(xué)校做Matlab實驗時開展驗證性[+]綜合性[+]設(shè)計性實驗項目[6],是否有更合理的方案進(jìn)一步改進(jìn)和深化這種階梯式遞進(jìn)方案使其更適合Matlab教學(xué)?很多學(xué)生在專業(yè)課中用到Matlab時往往感到迷茫,不知道從何處下手,程序出現(xiàn)錯誤的時候也無法解決,也不知道怎樣分析和討論實驗數(shù)據(jù),這些都是學(xué)生實踐經(jīng)驗不足、獨立編程能力不夠的表現(xiàn)。

2.2 結(jié)合深入的專業(yè)知識未必是好的教學(xué)策略

有些學(xué)校做Matlab實驗時,實驗內(nèi)容與專業(yè)課緊密結(jié)合,做與專業(yè)知識有關(guān)的實驗。對理論知識理解透徹的同學(xué),這個教學(xué)策略或許是有幫助的,但是對專業(yè)知識掌握一般的學(xué)生,這一教學(xué)策略有可能帶來多個學(xué)習(xí)目標(biāo)的問題——Matlab編程技能要學(xué)、專業(yè)知識也要掌握。這部分學(xué)生跟著老師做了之后也沒領(lǐng)悟到做了什么、為什么這么做,更無法模仿和應(yīng)用這些做法解決其他類似問題。很多學(xué)校開設(shè)Matlab課程是安排在低年級,進(jìn)入專業(yè)課之前或與專業(yè)基礎(chǔ)課程同時進(jìn)行,這就更不能結(jié)合深入的專業(yè)知識了。Matlab課程與專業(yè)課程緊密相連沒有必要、也做不到,學(xué)生的理論底子還沒上升到那個高度。Matlab教學(xué)中可以觸碰簡單的專業(yè)知識,但是提前量不要太大,不要涉及深入的理論,更不要替專業(yè)課做實驗。信號與系統(tǒng)、通信原理、自動控制原理等很多專業(yè)課程中經(jīng)常使用Matlab做仿真實驗,這些實驗交給專業(yè)課老師指導(dǎo),對理論知識理解透徹的前提下,Matlab編程才有意義。

本文認(rèn)為Matlab盡量在低年級開設(shè),Matlab在專業(yè)課程群中的定位應(yīng)該是單純的數(shù)學(xué)分析工具、為將來學(xué)習(xí)專業(yè)課提供工具上的支撐。學(xué)生的Matlab學(xué)習(xí)策略應(yīng)該是在Matlab課程中入門之后,在后續(xù)的專業(yè)課中通過對專業(yè)理論知識的仿真,理解專業(yè)課的基本概念,同時深化編程技能,仿真過程中會用到新的指令,在專業(yè)課中現(xiàn)學(xué)現(xiàn)用。

2.3 項目教學(xué)法有助于提高學(xué)生獨立編程能力

項目教學(xué)法是以建構(gòu)主義學(xué)習(xí)理論為基礎(chǔ),通過完成項目任務(wù),在解決問題的過程中進(jìn)行深度學(xué)習(xí)的教學(xué)策略。它能提高課程的趣味性,激發(fā)學(xué)生的求知欲,讓學(xué)生能夠自主參與進(jìn)來,主動投身到項目任務(wù)當(dāng)中,進(jìn)行探索性、研究性學(xué)習(xí)。而且通過做項目,開闊學(xué)生視野,激發(fā)學(xué)生想象力,提高學(xué)生的自學(xué)能力、觀察能力、分析和解決問題的能力、信息搜集能力等等[7-8]。在課程中應(yīng)用項目教學(xué)法時,項目的選定很重要,項目要有趣味性、應(yīng)用性和挑戰(zhàn)性,且難易度適中;在項目教學(xué)實施過程中教師的指導(dǎo)也非常關(guān)鍵,老師要善于引導(dǎo)學(xué)生進(jìn)行獨立思考,讓學(xué)生積極主動參與進(jìn)來,要讓學(xué)生領(lǐng)會編程思路、掌握調(diào)試技能,并引導(dǎo)學(xué)生對實驗數(shù)據(jù)進(jìn)行分析和討論、對程序進(jìn)行理論驗證。從項目開發(fā)實戰(zhàn)中獲取編程經(jīng)驗、提高獨立編程能力,這是項目教學(xué)法相對于實例教學(xué)法和任務(wù)教學(xué)法所無法比擬的優(yōu)勢。

3基于項目教學(xué)法的學(xué)生獨立編程能力提高

3.1基于項目教學(xué)法的Matlab教學(xué)內(nèi)容改革

我校Matlab課程安排在大二第一學(xué)期,總共講授32學(xué)時,學(xué)生已學(xué)習(xí)的內(nèi)容包括高等數(shù)學(xué)、線性代數(shù)、C語言等學(xué)科基礎(chǔ)課程,并與電路等專業(yè)基礎(chǔ)課同期授課。授課地點安排為機(jī)房,學(xué)生學(xué)習(xí)指令之后直接上機(jī)做實驗,以便快速理解和掌握基本指令的使用方法,做項目時學(xué)生在課堂內(nèi)完善和改進(jìn)教師提供的樣例程序,在教師的提示下進(jìn)行程序調(diào)試,對實驗數(shù)據(jù)進(jìn)行分析和討論,引導(dǎo)學(xué)生進(jìn)行深度學(xué)習(xí)。

為沒有專業(yè)知識背景的低年級學(xué)生找難易度適中且具有一定實際意義的應(yīng)用性項目并不容易。做書上的例題和習(xí)題不能稱之為項目教學(xué);安排難度稍高的任務(wù)、鼓勵和幫助學(xué)生獨立完成任務(wù)的任務(wù)驅(qū)動教學(xué)法[5],在提高學(xué)生自習(xí)能力和編程能力上有一定意義,但是缺少應(yīng)用性和趣味性,對學(xué)生的吸引力較小,不能引發(fā)學(xué)生深入而發(fā)散的思考,與項目教學(xué)有區(qū)別。一些學(xué)校開設(shè)驗證性[+]綜合性[+]設(shè)計性Matlab實驗[6],這也不是真正意義上的項目教學(xué)。本文選定的項目以高中三角函數(shù)為起點,逐步拔高知識層次,快速入門之后即刻開展項目做深度學(xué)習(xí)。項目貫穿教學(xué)全過程,在解決項目任務(wù)的過程中理解、掌握和綜合應(yīng)用Matlab基本指令,用項目任務(wù)刺激學(xué)生求知欲,使學(xué)生思維活躍起來,觸類旁通。

本文將Matlab所囊括的基本知識點分為三大入門模塊,教學(xué)安排如表1所示,每一個模塊講授完之后,綜合這些知識點進(jìn)行項目實踐。實踐項目時先提供樣例程序供學(xué)生模仿,通過樣例程序的引導(dǎo)使學(xué)生迅速進(jìn)入項目的問題情境。在此基礎(chǔ)上擴(kuò)展項目任務(wù),指導(dǎo)學(xué)生對程序進(jìn)行改進(jìn),將模仿(驗證)、綜合和設(shè)計三部曲融合到每個項目中。開展項目教學(xué)過程中不可避免地碰到?jīng)]學(xué)過的指令和顯淺的專業(yè)知識,教學(xué)中廣泛采用現(xiàn)學(xué)現(xiàn)用策略,如果涉及較深的專業(yè)知識做屏蔽處理,由老師編寫子程序供學(xué)生調(diào)用。

3.2程序調(diào)試是必須掌握的技能

再熟練的編程人員也不可能一次性編寫出沒有語法錯誤、沒有邏輯錯誤的完整的程序。一個對策是每寫完一小段程序,即刻運行,確認(rèn)無誤之后再進(jìn)行下一段程序編寫;另一個對策是進(jìn)行單步調(diào)試,單步調(diào)試在編程實戰(zhàn)中也是經(jīng)常使用的操作,但是學(xué)生喜歡痛快的,程序編寫完之后按F5全速運行得到最終運行結(jié)果。教學(xué)過程中要求學(xué)生熟練運用這兩種編程策略,同時密切關(guān)注工作區(qū)和命令窗的變化,觀察程序計算結(jié)果是否與編程意圖一模一樣、有沒有出現(xiàn)沒考慮到的意外情況。

學(xué)生編寫的程序中經(jīng)常出現(xiàn)的語法錯誤有中文標(biāo)點符號、變量名大小寫錯誤、變量沒有定義而引用、向量或矩陣的索引號超出范圍等。教師給樣例程序的時候故意設(shè)置這些陷阱,讓學(xué)生仔細(xì)閱讀命令窗的錯誤提示,自行改正語法錯誤。經(jīng)常出現(xiàn)的錯誤還有邏輯錯誤,指導(dǎo)學(xué)生在單步調(diào)試過程中一方面察看程序運行步驟,另一方面僅僅盯著工作區(qū)中變量的數(shù)值變化,認(rèn)真進(jìn)行數(shù)據(jù)分析和確認(rèn)。學(xué)生通過這些訓(xùn)練,逐步增長調(diào)試經(jīng)驗,提高程序調(diào)試技能。

3.3注重實驗數(shù)據(jù)的分析、討論和理論驗證

用理論驗證程序是非常重要的,程序是將數(shù)學(xué)語言翻譯為計算機(jī)語言,程序只要沒有語法錯誤,肯定能得到一個計算結(jié)果,至于這個結(jié)果對不對、有沒有道理,只能由人來判斷,用理論來驗證。

入門1中學(xué)生學(xué)習(xí)Matlab基本運算和簡單的plot指令之后,讓學(xué)生分析函數(shù):

[[y=lgx2-10x+25] (1) ]

的特性。學(xué)生獨立編寫程序,畫出函數(shù)曲線如圖2,得出該函數(shù)有對稱性、存在最小值的結(jié)論。

[x = 0:0.01:10;

y = log10(x.^2-10*x+25);

plot(x,y); ]

教師引導(dǎo)學(xué)生進(jìn)行理論分析:

[[lgx2-10x+25=lgx-52=2lgx-5] (2) ]

該函數(shù)以直線[x=5]為對稱軸左右對稱,[x]從左、從右趨于[5]時[y]均趨于[-∞],該函數(shù)不應(yīng)該出現(xiàn)最小值,理論分析和Matlab畫圖有矛盾。教師給出結(jié)論:“Matlab欺騙了我們”。教師引導(dǎo)學(xué)生橫向放大[x=5]的周圍,曲線如圖3所示,學(xué)生才發(fā)現(xiàn)不是Matlab說謊了,是自己做錯了,[x=5]的位置函數(shù)曲線是間斷的,Matlab只計算了[x=4.99]和[x=5.01]兩個點。進(jìn)一步分析工作區(qū)中變量[y]的數(shù)值,[x501=5],對應(yīng)的[y501=-Inf],圖2看著似乎有最小值,其實它不是最小值,而是間斷點。學(xué)生深切體會理論驗證程序的必要性。

學(xué)生不知道哪些東西需要做理論分析和討論,也不知道怎樣進(jìn)行分析和討論,這就需要老師循循善誘。比如項目1中用plot指令畫音樂信號波形之后彈出來的圖形窗口一片藍(lán)色,什么信息都得不到,教學(xué)生圖形窗口的操作方法:zoom,pan,cursor,將音樂中do音的信號波形橫向放大之后才看到正弦波,引導(dǎo)學(xué)生測量正弦波周期為0.0038s,計算倒數(shù)得到頻率262Hz,確認(rèn)生成信號與理論相符。講到這里,有些學(xué)生自行摸索rotate,brush,dock figure等更多功能。項目3的頻域分析中,用cursor檢驗兩個正弦分量的頻率數(shù)值,確認(rèn)DTMF編碼子程序的正確性,再進(jìn)行下一步DTMF解碼子程序。學(xué)生雖然沒有接觸過頻域分析的概念,但是從高中三角函數(shù)引入頻率的概念還是很容易的,至于傅里葉變換子程序由教師編寫供學(xué)生使用,學(xué)生只要理解頻率的概念、會調(diào)用子程序即可進(jìn)行獨立編程,完成項目任務(wù)。

教師時時提醒學(xué)生,沒有經(jīng)過分析、討論和理論驗證的程序是半成品,是不可信的,程序一定要通過理論驗證環(huán)節(jié)。這一點也是本文反對在Matlab課程中做一些涉及較深專業(yè)知識的實驗項目的原因,沒有深厚的專業(yè)知識底蘊,即使正確使用Matlab指令編寫出程序也沒有任何意義,因為編寫的程序無從判斷其正確性,也無法對計算結(jié)果進(jìn)行分析和討論并給出合理的理論解釋。專業(yè)課實驗交給專業(yè)課老師指導(dǎo),對理論知識理解透徹的前提下,Matlab編程才有意義。

此外,相關(guān)資料搜集技能、報告書寫作技能、發(fā)表技能、閱讀論文等技能都是需要的。Matlab教學(xué)中,每次做完一個項目都要求學(xué)生寫報告書,報告書采用論文結(jié)構(gòu),給學(xué)生做簡單的論文指導(dǎo)。因為還沒有學(xué)習(xí)專業(yè)課,讓學(xué)生讀論文難度比較高,找一些難度低的學(xué)術(shù)文章也不容易,可以考慮在網(wǎng)上搜索幾篇寫得好的與項目相關(guān)的文章推薦給學(xué)生讀。學(xué)生在解決項目任務(wù)的過程中碰到了適當(dāng)?shù)睦щy和挫折,克服困難,積極探索,最終品嘗到成功的喜悅,繼而增強(qiáng)了求知欲,開拓了視野,提高了分析問題和解決問題的能力。

4結(jié)論

高等教育的教學(xué)理念正在從“期待學(xué)生知道的量”到“期待學(xué)生用其所學(xué)”轉(zhuǎn)變,“高等教育不是給學(xué)生解決問題,而是讓學(xué)生想更多的問題”。本著這一教學(xué)理念,本文以快速入門、項目貫穿教學(xué)全過程的方式展開Matlab項目教學(xué),每一個項目均融入驗證性、綜合性、設(shè)計性,讓學(xué)生想象力飛起來,讓學(xué)生主動投身到項目任務(wù)的探索和研究中,達(dá)到深度學(xué)習(xí)的目的。在項目教學(xué)實施過程中注重培養(yǎng)學(xué)生幫助文檔閱讀技能、程序調(diào)試技能、計算結(jié)果的分析和討論技能以及用理論驗證程序的良好思維習(xí)慣,以實現(xiàn)學(xué)生能夠達(dá)到初步的獨立編程能力這一教學(xué)目標(biāo)。

參考文獻(xiàn):

[1] 張靜亞.基于項目驅(qū)動的Matlab教學(xué)方法研究[J]科技資訊, 2014(36): 147-149.

[2] 易昆南, 李慧, 趙澍源.讓枯燥無味的數(shù)學(xué)變得有趣、有味、有惑——Matlab中的音樂合成[J].實驗室研究與探索, 2014, 33(6): 114-117.

[3] 魏為民, 屈婉瑩, 趙琰.Matlab程序設(shè)計語言快速教學(xué)實踐[J].計算機(jī)教育, 2015(24):102-106.

[4] 畢美華, 楊國偉, 周雪芳, 曾然, 胡淼, 李齊良.Matlab寓教于樂教學(xué)模式的探討[J].高教學(xué)刊, 2017(11): 86–87.

[5] 林海濤, 任務(wù)驅(qū)動教學(xué)法在《Matlab程序設(shè)計語言》教學(xué)中的實踐[J].開封教育學(xué)院學(xué)報, 2014, 34(1): 80–81.

[6] 張玉葉.Matlab語言課程教學(xué)中若干問題探討[J].實驗室研究與探索, 2018, 37(3): 176–179

[7] 姜靜思.淺析項目式教學(xué)[J].電腦知識與技術(shù),2014,10(5):1006-1007.

[8] 曹倩雯,呂光金.游戲項目在“VB程序設(shè)計”課程中的應(yīng)用[J].電腦知識與技術(shù),2015,11(21):85-87.

【通聯(lián)編輯:王力】

猜你喜歡
項目教學(xué)法程序設(shè)計教學(xué)改革
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計技巧
電子制作(2019年9期)2019-05-30 09:42:04
高職高專院校C語言程序設(shè)計教學(xué)改革探索
探析項目教學(xué)法在化工管路拆裝實訓(xùn)中的應(yīng)用
考試周刊(2016年85期)2016-11-11 02:22:39
項目教學(xué)法在中職flash課程教學(xué)中的應(yīng)用探究
職業(yè)(2016年10期)2016-10-20 22:17:40
項目教學(xué)法在園林工程招投標(biāo)與預(yù)決算課程中應(yīng)用
基于人才培養(yǎng)的技工學(xué)校德育實效性研究
成才之路(2016年25期)2016-10-08 09:51:08
現(xiàn)代信息技術(shù)在高職數(shù)學(xué)教學(xué)改革中的應(yīng)用研究
科技視界(2016年20期)2016-09-29 12:59:03
以職業(yè)技能競賽為導(dǎo)向的高職單片機(jī)實踐教學(xué)改革研究
科技視界(2016年20期)2016-09-29 11:20:38
微課時代高等數(shù)學(xué)教學(xué)改革的實踐與探索
科技視界(2016年20期)2016-09-29 11:16:19
衡阳县| 闽侯县| 明水县| 揭西县| 中方县| 长汀县| 台北县| 无极县| 桃园市| 冷水江市| 南开区| 塔河县| 东山县| 怀化市| 洛隆县| 肃南| 隆化县| 洮南市| 闽侯县| 扎鲁特旗| 故城县| 德钦县| 醴陵市| 稷山县| 永靖县| 郓城县| 秦安县| 吉安县| 深州市| 浠水县| 景洪市| 九龙城区| 自治县| 云林县| 莒南县| 蓬安县| 乳源| 黔东| 凤山县| 西林县| 新余市|