摘 要: C語言程序設計是專業基礎課,筆者結合安康學院的實際情況,以及自身的教學體會,探索目前針對電子信息類專業學生,進行以程序設計能力為培養目標的教學方法,近年的實際教學成果表明這些手段是有效的。
關鍵詞: 電子信息類專業 C語言程序設計 教學改革
1.電子信息類專業C語言課程現狀分析
C語言程序設計,又稱高級語言程序設計,是電子信息類本科、專科專業的一門專業基礎課程。近些年的教學實踐表明,電子信息類專業學生程序設計能力主要靠C語言課程打下堅實基礎,從而使網絡數據庫應用、嵌入式系統開發等專業核心能力的提高得以實現。但是,這門難度較大的課程教學效果卻不佳。
從教學方面看,目前C語言課程教學存在的問題主要有三點:一是高級語言程序設計課程的教學內容偏窄偏淺,二是教學方法不適當,三是實驗考核手段落后。首先,高級語言程序設計課程在教學內容上偏重于語言本身,在程序設計方面注意不夠。教學內容主要是語言的語法、語義等基本內容的介紹,以及簡單的應用舉例,缺少較深入討論程序設計的內容,缺少對語言運用能力培養和訓練的內容。其次,在課程教學過程中未能充分認識到高級語言程序設計是一門實踐性很強的專業基礎課,課程的目標是培養學生分析問題和運用程序設計語言解決實際問題的能力,而把這門課混同于一般的理論課,因而在教學過程中重視概念的講解而忽視概念的運用,重視知識的講授而忽視對能力的培養。最后,在練習和考試中,由于缺少必要的技術手段,因此多采用書面方式。這樣,一方面使得學生很難把注意力集中到提高實際的程序設計能力上面,另一方面也使得教師在評判學生的練習和考試答卷時面臨巨大的工作量和難度,因此只能盡量多出一些選擇題、填空題等標準化試題。這樣也從另一方面引導學生把注意力更多地放在對一些基本概念和語言要素的學習上,而忽視了對程序設計能力的鍛煉和培養。
因此,很多學生盡管在書面考試中的成績尚可,但是在實際的程序設計能力方面普遍偏低,即使是100行以內的簡單程序也很難在較短的時間內正確地完成,更談不上具有較為專業化的程序設計能力了。
2.正確培養程序設計能力
電子信息類專業的學生應該具備什么樣的程序設計能力呢?非計算機專業學生不可能也沒必要像計算機專業學生一樣比較系統地學習很多具體的理論知識,而應該更多地從學以致用的原則出發來進行教學。所以教師在教學中應努力落實“以程序設計方法為主線,以語法和結構為核心,以能力培養為目標”的教學理念。通過教學方法、教學手段、考試方式綜合改革,構建課堂教學、實驗教學、網絡教學、課程設計等環節的多維立體化教學環境與學習環境,可以使電子信息類專業學生的程序設計能力得到極大的鍛煉,教學質量得到明顯的提高。
3.基于程序設計能力培養的教學改革實踐
3.1改革課堂教學模式
在教學內容上,開展以講解程序設計思路和方法為主、講解語言語法規范為輔的課堂教學內容改革探索。增加算法設計方面的內容,而將語法規范的學習更多地放在課后,以網絡支持下的自主學習為主。教師應從傳統的先講授基本理論、再舉一兩個小實例的課堂教學模式中改變過來。教師不應該局限在這種教學模式下,而應針對電子信息類專業,精心準備與有關章節知識相關的常用的小軟件。
在教學方法上,通過增加活動課時比例,以任務驅動下的協作學習,達到克服滿堂灌,提高學生學習興趣的目的。可以根據所電子信息類學生的專業補充講解一些和專業緊密相關的一些程序設計的應用,為學生布置一些任務,帶領學生一起開發。在開發的各個階段,教師都應該留出時間和學生分組討論,根據自己的開發經驗,教會學生如何發現和解決問題。通過學生討論做出總結,教師判斷學生對該章節內容的掌握程度,有針對性地給學生提出鞏固知識的方法和建議,并布置下一個任務。這樣,學生就會非常有興趣,因為他們一旦開發成功,就可以將這些小軟件應用到實際生活當中去,也同時讓他們進一步了解自己的專業領域,這樣可以讓學生有很大的成就感。
通過對課堂教學模式的改革,力求達到能充分調動學生的學習主觀能動性,使學生不再有“學了不知道拿來有什么用,和我的專業又沒關系”的想法。
3.2改革實踐教學模式
在實驗項目上,現在的實驗教學基本都有現成的實驗指導書、實驗題目、實驗步驟、程序流程圖,源程序全部是現成的,還有大量的網絡資源,造成學生對實驗沒有多大的興趣,更談不上創新了。教師應該從專業基礎課出發、改革實驗項目,通過在課堂布置與專業相關的實際應用的小軟件開發任務,使他們產生興趣,結合嵌入式技術,充分利用C語言程序設計這個開發平臺做一些研究性、探索性的課題或直接參與教師的科研項目。積極鼓勵他們參加全國、全省的各類競賽,積極創造各種條件。
在實驗方法上,引導學生按照軟件工程理論的解決問題的步驟對問題抽絲剝繭,可以培養學生獨立解決問題的能力,使學生能真正將所學的程序設計應用到自己的生活及以后的工作中。在開發過程中,不用過多強調軟件工程的理論,而重在讓他們體會軟件開發過程其過程如下。
(1)需求分析
這一步是準確地確定“為了解決這個問題,目標系統必須做什么”,是確定目標系統必須具備那些功能,是以后設計和實現目標系統的基礎。
(2)總體設計
這一步是從宏觀上處理“如何解決這個問題”。在這個過程中,應充分考慮解決方案的多樣化,并對待實現方案進行多方面比較,從而選出最佳方案。
(3)詳細設計
這一步的任務是把總體設計階段提出的解決方案具體化,主要是詳細規劃每一步工作如何完成。
(4)編碼和單元測試
這一步的任務是寫出正確的易理解的源代碼和維護的程序模塊。
(5)綜合測試
這一步的任務是通過各種類型的測試使軟件能夠達到預期的目標和要求。
在整個實驗教學環節中,要充分使學生感覺到自己真正成為學習的中心,而老師只起到輔助和引導的作用。
4.結語
總之,“C語言程序設計”的非計算機專業教學改革是一項長期的任務,但是無論怎樣改革,都要從課程特點和學生的實際出發,在教學過程的每一個環節中都要應以培養學生的程序設計能力為目標,探索出更多適合C語言教學的教學方法,充分調動學生學習的積極性,不斷提高教學質量。
參考文獻:
[1]結鳳克.C程序設計教學模式的改革與實踐[J].中州學刊,2(X)7,(4):109.
[2]周艷明,傅瑜.淺談大學計算機應用型人才培養課程體系[C].全國高校軟件工程專業教育年會論文集.北京:高等教育出版社,2007:205-208.
基金項目:2010安康學院教學改革立項項目(Jg03217