梁新月 聶維
摘要:C語言程序設計是高校計算機科學與技術專業(yè)的一門核心基礎課。針對C語言程序設計課程的特點和教學現(xiàn)狀,分析教學存在問題,提出以培養(yǎng)學生邏輯思維能力、創(chuàng)新能力、分析問題和解決問題能力為目標的教學理念,進一步提出改革教學內(nèi)容和教學方法的途徑。
關鍵詞:C語言程序設計;教學方法
中圖分類號:G420 文獻標識碼:A 文章編號:1009-3044(2012)33-7974-03
C語言程序設計是計算機專業(yè)的一門專業(yè)核心基礎課。但是,從以往學生的學習情況及后期應用來看,學生對該門課的掌握比較吃力,應用能力不足。筆者結合自己的教學體會,從教與學的角度進行分析,發(fā)現(xiàn)問題在于:一,目前所用教材難點集中、跨度大,容易使學生產(chǎn)生畏難情緒;二,教學理念陳舊,有些教師培養(yǎng)目標不明確,教學方法、教學手段不夠靈活,導致教學過程中教與學不能有機融合。針對以上情況,對該門課程的教學改革提出一些新的建議,以供參考。
1建立以能力培養(yǎng)為目標的教學理念
在傳統(tǒng)C語言教學中,采用以語言知識為主線、先理論后實踐的教學方法,教學重點在語法知識上,容易使學生深陷復雜的語法知識的“泥淖”而產(chǎn)生畏學情緒,不利于對知識的掌握和實踐應用。實踐證明,建立以實際應用為背景,以提高興趣、培養(yǎng)學生邏輯思維能力、創(chuàng)新能力、分析和解決問題能力為主線的教學理念,有助于學生在培養(yǎng)能力的過程中逐步學習語言知識,提高語言應用能力。
1.1理論教學方面
理論教學方面的改革主要是對課程教學內(nèi)容進行整合。依據(jù)知識的難易程度和學生的學習規(guī)律,應用由簡到繁、由易到難的進階式學習方法,把教學內(nèi)容的難點和重點分散到不同的教學階段,建立如圖1所示的教學結構模塊,從而達到優(yōu)化教學內(nèi)容結構的目的。
1)將數(shù)據(jù)類型、運算符、表達式等繁雜、抽象的語法知識分散到各個教學模塊。
2)分解語句、函數(shù)、指針、文件等難點內(nèi)容。
以函數(shù)為例來說,在簡單程序設計階段教師就把函數(shù)的定義和調(diào)用方法介紹給學生,這樣做的目的在于:一方面使模塊化設計思想及早扎根于學生編程的思維習慣之中;另一方面把函數(shù)這個教學難點進行合理分散,使學生在多次應用和長時間練習之后最終牢固掌握函數(shù)的使用方法。
3)融入軟件工程思想與軟件測試技術。
以簡單程序為例,引導學生體驗從分析問題、設計算法、編碼到測試的軟件開發(fā)過程,使學生盡早了解軟件工程的基本思想,并對每個測試用例的設計方法進行分析講解,以便引起學生對測試環(huán)節(jié)的重視,培養(yǎng)學生具備軟件工程的素質(zhì)。
1.2實踐教學
C語言程序設計課程的實驗通常分為三大類:驗證實驗、設計實驗和綜合實驗。實驗教學以此三類實驗為主線,循序漸進,以達到不同的教學目的。其模塊化分層結構如圖2所示。
1)驗證實驗。每學完一章知識點后,要求學生上機調(diào)試課后習題,深化對本章知識的理解,培養(yǎng)學生調(diào)試和測試程序的能力。
2)應用設計性實驗。針對具體問題應用某個知識點設計簡單的實現(xiàn)方案。如,在數(shù)組、函數(shù)、文件部分把前面各章學習的知識進行綜合應用,安排各種典型算法和應用的編程訓練,使學生在程序調(diào)試中不斷復習基礎知識,同時將基礎知識和實際應用結合起來,鍛煉學生解決具體問題的能力。對于驗證實驗和應用性實驗,要求各組每個人都要完成并提交源代碼。
3)綜合性實驗:學生以2~3人為小組組成項目組,組員能力的高低須呈階梯狀,完成一個小型應用程序開發(fā)。綜合實驗以小組為單位,通過相互協(xié)作共同完成,每個小組最終提交一份源代碼,但每個人必須總結整理獨立的設計報告。
2確立以案例法為主的教學方法
案例教學法是基于建構主義理論的一種教與學的模式,起源于19世紀20年代,由美國哈佛商學院(HarvardBusinessSchool)倡導。案例教學法在程序設計課程中的教學設計如圖3所示:
在課堂教學中,選取既可體現(xiàn)C語言語法,又具有實用性的問題進行講解。通過案例引入知識點,針對知識點再進行語法講解,通過提出問題、算法設計,編碼測試各階段,逐步引導,使學生了解程序開發(fā)的基本流程。在教學過程中,注重激發(fā)學生的編程興趣,強調(diào)學以致用,使學生在具體的案例中找到學習動力。對同一個問題,可以重復應用已有的實例,例如,求階乘的例子,在循環(huán)結構、函數(shù)定義、函數(shù)的調(diào)用及遞歸時都可以用,通過將同一個案例貫穿到不同的知識點中去,讓學生重點放在理解知識點本身,而不必在理解知識點的同時還要思考如何進行程序設計。
在實踐課堂中,以學生為主。通過源代碼編輯,編譯,鏈接和執(zhí)行各步驟的練習,使學生熟悉程序的執(zhí)行過程;通過程序調(diào)試,修改程序中的語法錯誤和邏輯錯誤,使學生進一步掌握C語言語法規(guī)則;通過例題驗證、習題調(diào)試,使學生加深對知識點的理解。
3搭建以課程資源網(wǎng)站為輔助的網(wǎng)絡教學平臺
課堂教學主要以教師為中心,教師占組織和主導地位。學生跟隨教師的思路,難以調(diào)動學習的積極性和主動性;另,課堂教學受時間和空間的限制,教師講授的內(nèi)容和教學方法不能適應每一個學生。
利用校園網(wǎng)絡平臺建立課程資源網(wǎng)站,借助網(wǎng)站豐富的教學資料提供與課程資源相關的鏈接,包括多媒體課件、相關網(wǎng)絡課程、學科網(wǎng)站、學習參考文獻等進行輔助教學。豐富的教學資源不僅構建了強有力的教學支持環(huán)境,而且開拓學生的學習思路。另外,網(wǎng)絡教學突破了時間和空間的限制,解決了課程知識點多、知識更新快、學生基礎不均衡及學時少等實際問題,而且各種教學形式相互補充,有利于滿足不同學生學習習慣的需要。
4結束語
C語言程序設計主要目的是培養(yǎng)學生的程序設計能力,初步了解軟件工程的思想。該文從教學理念、教學內(nèi)容、教學方法、實驗教學等方面提出C語言程序設計課程教學的一些新的感悟,并在實際教學中進行了相應的試驗和評估,教學效果良好。
參考文獻:
[1]程一飛,程玉勝.《C語言程序設計》的教學探討.安慶師范學院學報(自然科學版),2011(17):114-117.
[2]譚浩強.C程序設計(第3版)[M].北京:清華大學出版社,2008.
[3]胡楓.《C語言程序設計》的教學的設計[J].青海師范大學學報:自然科學版,2010(4):48-51.
[4]周鳴爭.C語言程序設計教程[M].成都:電子科技大學出版社,2005.
[5]劉濤,嚴軼群.語言程序設計課程教學改革的研究與實踐[J].電腦知識與技術(學術交流),2006(36):224-226.