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