裴福俊 郭民
摘要 本文分析和論述了目前高等學校中C語言程序設計課程教學中存在的主要問題,提出了行之有效的教學改革方案,旨在提高教學質量,激發學生的學習興趣,加深學生對理論知識的理解和掌握,培養分析和解決具體問題的能力。
關鍵詞 非計算機專業 C語言程序設計 教學改革 案例驅動
中圖分類號:G642文獻標識碼:A
高等學校非計算機專業的計算機程序設計課程是國家高等教育發展規劃的必修課程,C語言以其知識結構體系合理、使用靈活、實用性強、可移植性好等特點使其成為眾多高等學校的非計算機理工學科專業的計算機基礎必修課。開設C語言程序設計課程不僅是讓學生掌握一種軟件開發工具,了解計算機的功能和工作原理,培養學生的計算機邏輯編程思維。更為重要的是讓學生了解計算機編程技術在本專業領域中的作用,以便于在后期的專業課學習過程中進行相應的程序設計和開發奠定基礎。
但是,在國內的多數高校仍然采用“多媒體教室講課+學生上機訓練”的傳統教學模式。這種教學模式中的教學內容一般脫離了實際應用,將學習重點放在C語言的語法和理論講解上,學生并不知道所學習知識的實際應用方向和價值,也就不能很好地調動學生的積極性,因此普遍存在著“教師難教,學生難學”的狀況。針對目前C語言教學過程中的問題,本文結合作者多年的面向非計算機專業的C語言程序設計課程教育教學的經驗,總結了非計算機專業C語言程序設計教學過程中存在的主要問題,并提出行之有效的教學改革方法,從而提高非計算機專業C語言教學的教學質量。
1 C語言教學中存在的問題
1.1 學生缺乏興趣,學習主動性不足
自從我國大學教育實現擴招以來,很多學校均采用了多個班級同時上課的大課堂教學模式,大課堂導致學生很難始終保持精神集中,甚至有些學生上課期間上網、發短信、打游戲等等。另外,由于授課對象多為一年級的新生,對社會、職業和自己所學的專業尚無清晰的認知,往往會認為這是計算機專業的課程,對課程的重要性認識不足,也就對該課程提不起興趣,缺乏學習的主動性。
1.2 教師教學方法不妥,影響教學效果
很多學校的教師仍然采用了以教師講授為主的灌輸式教學方法,講授過程中只注重了知識點的系統性和完整性傳授,但缺乏對各知識點之間的內在關系以及綜合運用的深入分析和講解,更忽略了對學生編程思想和邏輯思維能力的培養。同時,這是一個教師向學生單向傳輸過程,教學過程空洞、呆板、缺乏互動,學生很容易會感到課堂的枯燥乏味,造成課堂教學的效果不理想。
1.3 理論教學與專業需求脫節
目前,多數學校教學過程中仍采用“多媒體教室講課+學生上機訓練”教學模式,兩者的學時比例一般為2:1或3:1。多媒體教室授課重點是對語法概念和語法規則的分析與講解,內容枯燥、抽象,尤其是學生缺乏對實際物理對象和計算機邏輯思維方式的直觀理解。同時,學生實踐訓練所占的課時比重過低,并且用于實踐課程中的訓練題目,大多數是一些簡單的數學問題,也就無法真正體會到C語言在其未來專業課程中的作用和重要性。
1.4 考核方式不合理
目前,C語言程序設計課程的考核方式是“筆試+上機”的考核方式,筆試成績占到總成績的80%,明顯偏重于對語法知識和語法規則的考查,而缺乏對學生實際編程能力和邏輯思維能力的考查,往往會導致學生“只會考試,不會編程”。上機考試占到總成績的20%,重點是考核學生上機操作和現場編程能力,但上機考試的評估不夠準確客觀,而且所占比重過輕,學生缺乏足夠的實踐訓練。
2 第一堂課尤為重要
興趣是一個人力求認識并趨向某種事物特有的意向,是個體主觀能動性的一種體現。因此,在第一堂課上如何激發學生對C語言程序設計課程的學習興趣,調動學生的求知欲望和學習主動性將對后期的教學產生重要影響。對于剛剛接觸C語言程序設計課程的學生,往往存在這樣的誤區:“計算機既然是智能的,那我們還學編程做什么”、“學習C語言到底能做什么”等等。因此,教師在第一堂課程教學過程中,首要任務是向學生解答這些疑問,讓學生理解和認識到學習C語言程序設計課程的目的和作用,尤其是對后續專業課程的重要作用,從而令其能夠端正學習態度、提高學習興趣。具體可以采用如下途徑:其一是通過一些日常生活中經常遇到的實例,如貪吃蛇、俄羅斯方塊、網絡聊天等小程序,讓學生直觀地看到C語言在日常生活中的重要作用。其二是教師可以結合往屆學生編寫的課程設計程序或參加科技競賽的實例程序,給學生展示C語言并不難學,只要建立主動學習意識和不斷實踐編程訓練就能學好C語言。其三是要結合學生的專業明確地講述學習意義,例如給自動化專業學生任課時,可以結合同期開設的專業認知課程,將學生接觸的實際自動化系統,通過實際的專業案例介紹程序設計課程的應用和重要性,使學生切身體會到C語言在自身專業上的重要作用。
3 多層次案例驅動教學
非計算機專業的學生學習C語言程序設計的目的是將其作為一種應用技術,而不是作為學習理論知識的課程。因此,針對非計算機專業學生的需求,我們采用了多層次案例驅動教學方法,采用知識導入型案例來引導新知識點的學習,從而讓學生快速理解所學知識點的同時,也能幫助學生了解各個知識點的具體用法。在此基礎上,結合學生的專業背景,用一個專業綜合應用型案例使學生了解本知識點與前后知識點的聯系,以及綜合應用所有知識點解決實際問題。
3.1 知識導入型案例
針對C語言的語法繁瑣復雜、知識點繁多、結構抽象復雜、難以理解等問題,我們以一個簡單、直觀的知識導入型案例的方式引入每個新的知識點,即可以生動地給出知識點的語法知識,又可以讓學生理解知識點的實用價值。所選取案例盡量貼近現實世界的實際問題,同時具有典型性、綜合性和示范性,例如,對于選擇結構的知識導入型案例:出租車計費系統,起步價3公里10元,超過三公里每公里2元,編寫一個程序自動計算出租車費用。將問題提出后,讓學生思考這個問題的解決方案,學生根據已經學過的C語言知識編寫程序,由于是有條件選擇問題,學生無法有效計算費用。此時,教師給與學生引導,先列寫該問題的偽代碼解決方案,如果距離小于3公里,則費用=10元;否則費用為10+2*(距離—3)。學生通過該過程可以很容易地理解選擇結構的基本實現流程和使用方法,同時也對選擇結構的關鍵字if和else有了清晰的理解。
3.2 專業綜合應用型案例
在學生掌握新的知識點以后,需要幫助學生掌握各個知識點之間的內在聯系,如何綜合應用各知識點進行復雜程序設計,如何解決本專業的實際問題。為兼顧理工類不同專業背景的學生,我們為不同的專業設計不同的專業綜合應用型案例。案例將貫穿整個C語言的學習過程,按照C語言各階段的教學目標和要求,將整個案例分解為多個子任務,以子任務之間的內在關聯為線索,引導學生應用新學的知識點逐步解決一個個子任務,當學習完C語言課程時,該專業案例也將得到最終的解決。以自動化專業為例,我們使用了最為常見的爐溫控制系統作為應用案例,將整個問題分解為:溫度顯示、溫度計算與比較、統計數據計算與分析、多點測量數據處理、程序的模塊化實現、指針提高程序的效率、數據存儲與讀取等多個小模塊,在整個教學過程中,逐步解決每一個子問題,最終構成整個爐溫控制系統程序,并通過實驗平臺展示的程序實際運行情況,使學生切身體會到C語言解決專業問題的方法和作用。
4 考核方式改革
考核在教學過程中起著非常重要的導向和督促作用,考核是了解學生學習狀況的依據,學生和教師都非常重視。我們以理論與實踐相結合為考核基準,以全面考查學生的實踐操作和靈活運用能力為主要目標,建立階梯式開放考核體系:“平時+筆試+上機”的綜合考核方式,其中平時的階段性實踐考核占到總成績的40%,期末筆試考核占到總成績的40%,上機考試占到總成績的20%。具體的形式是:充分利用實踐教學的靈活性特點,結合每一階段課程的難度和教學目標,將實踐課程考核分為不同的階段和級別,在每次實驗課程中,以任務形式布置難度適中的編程題目,要求學生在本次課堂完成代碼編寫、調試并提交,教師根據學生編寫程序的情況給予一個階段性成績。在整個C語言程序設計教學過程中,安排5—6次類似的階段性考核,并把每一階段的實踐考核成績作為重要的參考依據,以一定的比例加入到整個課程的最終考核成績中,綜合評價學生的學習成果。
5 結論
本文是作者結合多年的面向非計算機專業的C語言程序設計課程教育教學的實際經驗,總結了目前國內高校非計算機專業C語言程序設計教學過程中存在的一些主要問題,從課堂教學、教學方法、考核方式等方面提出了行之有效的教學改革方法。從幾年的實踐經驗來看,較好地改善了C語言教學的教學質量。但是,對于非計算機專業的學生來說,只有設置完善的課程體系,才能保障整個程序設計類課程的完整性和持續性,保證整個大學期間程序設計類課不斷線,才能培養符合社會需求的優秀畢業生。
參考文獻
[1] 陳一昌.C語言程序教學新探[J].科技經濟市場,2011.9:107—109.
[2] 王國偉.C語言程序設計課程教學探析[J].教育教學論壇,2012.19:79—80.
[3] 劉帥,張星.基于案例的C語言程序設計教學改革[J].教育教學論壇,2011.20:160—161.
[4] 胡丹.非計算機專業《C語言程序設計》教學探討[J].電腦知識與技術,2011.34(7):8983—8991.
[5] 房媛,趙秀巖,劉劍,王智森.高校非計算機專業C語言課程教學方法研究[J].計算機教育,2011.22:74—76.
[6] 張鑫,張菁,劉威.非計算機專業C語言程序設計教學改革探究[J].福建電腦,2011.11:189—190.