張勝蘭
摘??要:c#作為電子專業(yè)的專業(yè)課程之一,讓學(xué)生掌握面向?qū)ο蟪绦虻木帉懞驼{(diào)試的能力,在以往教學(xué)中高職學(xué)生畏難情緒容易缺乏學(xué)習(xí)動(dòng)力,影響教學(xué)效果。鑒于以上情況,本文針對(duì)各個(gè)教學(xué)板塊的特點(diǎn)采取不同的教學(xué)方法,充分調(diào)動(dòng)學(xué)生的積極性,讓學(xué)生快速有效地學(xué)習(xí)
關(guān)鍵詞:C#程序設(shè)計(jì);教學(xué)方法
1、課程背景
C#程序設(shè)計(jì)課程是電子專業(yè)開設(shè)的一門專業(yè)課,是一門純面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它主要面向的是上位機(jī)軟件測(cè)試和開發(fā)崗位,。作為非計(jì)算機(jī)專業(yè),以往的程序設(shè)計(jì)課程選擇了VB程序設(shè)計(jì),但是由于運(yùn)用VB編寫比較復(fù)雜和通用的高級(jí)應(yīng)用程序,通常達(dá)不到要求。而目前流行Java、C#等語(yǔ)言,是現(xiàn)在高職學(xué)生更愿意去學(xué)和接觸的。并且電子類專業(yè)學(xué)生有C語(yǔ)言的基礎(chǔ),能更專注于面向?qū)ο蟾拍畹睦斫夂瓦\(yùn)用。基于這些原因,我們選擇了C#程序設(shè)計(jì)作為教學(xué)內(nèi)容。
2、教學(xué)現(xiàn)狀
電子專業(yè)學(xué)生與計(jì)算機(jī)專業(yè)學(xué)生在知識(shí)能力結(jié)構(gòu)上是不同的,純編程類課程對(duì)于電子專業(yè)學(xué)生而言可能有一部分學(xué)生會(huì)覺得沒有興趣,或者覺得學(xué)不會(huì)。C#課程的教學(xué)全程都是在機(jī)房完成,通過(guò)講練結(jié)合的項(xiàng)目式教學(xué)提高學(xué)生的編程能力。
但是在實(shí)際的教學(xué)過(guò)程中,學(xué)生很多時(shí)候表現(xiàn)為比較被動(dòng),缺乏主動(dòng)參與意識(shí)和習(xí)慣,一味的按照老師的要求機(jī)械性地完成書本上的案例,不會(huì)思考,編程能力無(wú)法提高。這說(shuō)明采用普通的項(xiàng)目教學(xué),效果并不能很好的達(dá)到預(yù)期教學(xué)目標(biāo)。
其次,高職學(xué)生理解能力不足,動(dòng)手能力欠缺,對(duì)于較為難理解的面向?qū)ο蟮母拍詈蜋C(jī)制,面對(duì)越來(lái)越長(zhǎng)的代碼,出現(xiàn)了程序調(diào)試不通過(guò)、畏難的情況,慢慢地就跟不上老師的進(jìn)度了,也沒有繼續(xù)完成程序的強(qiáng)大動(dòng)力了。
3、教學(xué)方法探討
針對(duì)以上的教學(xué)情況,近幾學(xué)期我對(duì)C#程序設(shè)計(jì)課程的教學(xué)進(jìn)行了一系列探索和調(diào)整,在具體實(shí)施過(guò)程中不同教學(xué)內(nèi)容采用不同的教學(xué)方法,讓學(xué)生能快速有效地學(xué)習(xí)。
3.1?糾錯(cuò)法
C#基礎(chǔ)語(yǔ)法部分,我首先會(huì)給出有瑕疵的案例讓學(xué)生去做,通過(guò)一個(gè)個(gè)BUG的解決,讓學(xué)生自己歸納出解決方法,。比如有這樣一些BUG:無(wú)法將類型“string”隱式轉(zhuǎn)換為“double”、應(yīng)輸入;、無(wú)效的表達(dá)式項(xiàng)“)”、當(dāng)前上下文中不存在名稱“s”。通過(guò)反復(fù)修改BUG來(lái)熟練對(duì)于數(shù)據(jù)類型轉(zhuǎn)換、變量的定義、基本的結(jié)構(gòu)的掌握情況,大大提高了程序的通過(guò)率。
3.2?比對(duì)法
C#面向?qū)ο蟛糠?,?shí)現(xiàn)同樣的問題采用不同的機(jī)制:比如虛方法、抽象方法、接口方法。我們可以給出3種機(jī)制實(shí)現(xiàn)的代碼,讓學(xué)生通過(guò)討論找出這3種實(shí)現(xiàn)方法的不同點(diǎn),從而達(dá)到進(jìn)一步理解繼承與多態(tài)的概念。
例如給出設(shè)計(jì)要求:描述一個(gè)幾何圖形類,派生出長(zhǎng)方形類、正方形類、圓形類,并為每個(gè)圖形對(duì)象計(jì)算面積。虛方法:public?;Virtual?double?Area(){return?0;}的關(guān)鍵字是Virtual,并且在基類于派生類定義之外的其他類定義中再聲明一個(gè)含基類對(duì)象形參的方法:public?statiic?double?FromArea(Dimension?re){return?re.Area();}抽象方法:public?abstract?double?Area();的關(guān)鍵字是abstract,接口:public?interface?IArea{?double?Area();}定義接口,其他類繼承于接口,并且實(shí)現(xiàn)接口里面的所有成員。在程序編寫和調(diào)試時(shí),可以采用設(shè)置斷點(diǎn)的方式,在FromArea這個(gè)方法里通過(guò)追蹤可以看到不同的對(duì)象導(dǎo)致程序進(jìn)入到不同的Area()方法里求面積,進(jìn)而深刻地理解多態(tài)的含義。
3.3?拆分法
Windows窗體程序開發(fā)部分,窗體上各控件及其屬性、方法比較多,綜合應(yīng)用起來(lái)難度很大。于是我們將一個(gè)“用戶注冊(cè)”的程序按控件拆分成TextBox、Button、RadioButton和CheckedListBox這4個(gè)部分,邊講解控件邊完成程序,內(nèi)容講完這個(gè)程序就也寫完了,最后再加入DateTimePicker控件和TabControl控件,整合以后就是完整程序了。拆分法將難點(diǎn)拆分開來(lái),各個(gè)擊破,讓學(xué)生學(xué)習(xí)和應(yīng)用起來(lái)感覺容易上手。當(dāng)然,整個(gè)程序完成后,還需要引領(lǐng)著學(xué)生從整體上面對(duì)程序的結(jié)構(gòu)有個(gè)清楚全面的認(rèn)識(shí)。
3.4?真實(shí)案例法
訪問數(shù)據(jù)庫(kù)部分,通過(guò)圖書館的操作案例,讓學(xué)生對(duì)比較抽象的數(shù)據(jù)庫(kù)知識(shí)有了感性認(rèn)識(shí),同時(shí)對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)的操作5個(gè)部分:創(chuàng)建數(shù)據(jù)庫(kù)和表、了解數(shù)據(jù)源、對(duì)數(shù)據(jù)源操作、通過(guò)數(shù)據(jù)集對(duì)數(shù)據(jù)進(jìn)行各種操作、顯示數(shù)據(jù),有全面的了解和實(shí)操。為課程的綜合項(xiàng)目實(shí)訓(xùn)打好基礎(chǔ)。
3.5優(yōu)化案例法
在每個(gè)任務(wù)之后都會(huì)提供給學(xué)生一個(gè)優(yōu)化程序的建議或者思路,讓學(xué)生主動(dòng)去完善程序,調(diào)動(dòng)所學(xué)的知識(shí),可以打開思路天馬行空,程序的優(yōu)化是沒有終點(diǎn)的,只要你愿意程序的優(yōu)化永遠(yuǎn)在路上。針對(duì)每個(gè)程序的優(yōu)化情況,記錄分?jǐn)?shù)作為平時(shí)成績(jī)的一部分,這樣堅(jiān)持一段時(shí)間,同學(xué)們的思路更開闊了,經(jīng)常會(huì)探討書本上沒有講到的知識(shí)點(diǎn),如果通過(guò)自己的研究學(xué)習(xí)實(shí)現(xiàn)了更強(qiáng)大的功能,那么編程的積極性就更高了。
4結(jié)束語(yǔ)
c#程序設(shè)計(jì)課程的教學(xué)不僅是編程能力,而是要通過(guò)該課程的學(xué)習(xí)培養(yǎng)學(xué)習(xí)的自學(xué)能力、實(shí)踐能力、創(chuàng)新能力、分析問題和解決問題的能力、所學(xué)知識(shí)的運(yùn)用能力以及項(xiàng)目團(tuán)隊(duì)團(tuán)結(jié)協(xié)作能力。
本文從傳統(tǒng)的C#課程教學(xué)存在的問題入手,探索了一系列適用于各教學(xué)模塊的方法,在2017級(jí)2018級(jí)的電子專業(yè)學(xué)生中得到了應(yīng)用,可以發(fā)現(xiàn)2017、2018級(jí)學(xué)生的編程能力有大幅提高,學(xué)生的學(xué)習(xí)積極性也明顯提升。
參考文獻(xiàn)
[1]??郭玲,袁滿.基于案例驅(qū)動(dòng)的研究性教學(xué)[J].計(jì)算機(jī)教,2011(5):75—78.
[2]??胡文君.《基于.NET的軟件開發(fā)》教學(xué)方法初探[J].現(xiàn)代計(jì)算機(jī),2012(5):45—46,50.
[3]??黃淼,高敬禮等.C#程序設(shè)計(jì)課程教學(xué)改革研究[J].計(jì)算機(jī)教育,2010,18
作者簡(jiǎn)介:張生蘭(1983.12-),女(漢族),湖北武漢,武漢城市職業(yè)學(xué)院,職稱:講師;研究方向:數(shù)字電路。