[摘要]針對教師與學生普遍認為C語言難教也難學,從教學內(nèi)容、教學手段、教學方法等方面介紹C語言教學中的幾點感想。實踐證明,這些方法效果良好,不僅有利于培養(yǎng)學生學習興趣,而且有利于培養(yǎng)學生分析問題與解決問題的能力。
[關鍵詞]C語言 教學內(nèi)容 教學手段 教學方法
中圖分類號:G42文獻標識碼:A文章編號:1671-7597(2009)0310156-01
在C語言教學中,許多教師和學生都認為C語言涉及的概念比較復雜,規(guī)則繁多,使用靈活,容易出錯,教師教學和學生學習都感到困難,并不同程度產(chǎn)生畏難心理。特別是多數(shù)高校將C語言作為計算機專業(yè)學生進校后首先接觸的第一門專業(yè)基礎課,這種現(xiàn)象尤為明顯。筆者根據(jù)多年的程序設計課程的教學實踐,對C語言課程從教學內(nèi)容、教學手段、教學方法等方面進行了一些改進,并取得較好的教學效果。
一、教學內(nèi)容的改進
對于課常教學內(nèi)容,筆者本著“深入淺出,突出實用”的指導思想,在課堂教學過程中,對教學內(nèi)容重新進行了歸納,將難點再次分散,以縮小臺階,達到循序漸進。例如,C語言數(shù)據(jù)類型、運算符、表達式種類繁多,放在一塊講授,學生學習起來難度較大,于是筆者就刻意將算術型的數(shù)據(jù)類型、運算符以及相關的表達式先介紹,使學生學習起來沒有想象中的那么難。緊接著又教學生編寫簡單的、實用的C程序設計,然后趁機引入基本輸入、輸出函數(shù)就順理成章了。這樣一來臺階小了,學生的信心也增加許多,學習積極性很快就被提高起來。對于深硬的語言敘述,筆者則改用生動的比喻,進行詳盡引導。譬如,在開始學習指針的概念時,教材對“間接存取”敘述比較深硬,學生難以理解,筆者就借用比喻:將A房間的鑰匙放在B房間里,若要取A房間里的物品,就需要先打開B房間,取出A鑰匙,再打開A房間,取出A房間的物品,這就是“間接存取”。學生很快就能理解,也加深了指針的概念。
二、教學手段的改進
在教學過程中,運用多媒體技術輔助教學,有利于激發(fā)學生的學習興趣,能發(fā)展學生的主體能力;同時由于多媒體信息量大,也能夠優(yōu)化教學過程。但多媒體輔助教學也有不利之處,主要體現(xiàn)在不恰當?shù)氖褂脮稚W生注意力,影響主要問題的理解,也不利于發(fā)揮學生的想象力,影響師生之間的情感交流。在C語言教學過程中,筆者考慮到課程的特點,揚長避短,將傳統(tǒng)教學與多媒體教學進行了有機的結合。例如:由于C語言的數(shù)據(jù)類型、變量類型、運算符、程序結構等,它們的定義、概念較多,又沒有深奧的理論,也沒有多少邏輯推理,所以筆者就采用多媒體教學。在教學過程中,事先將概念、大信息量的案例代碼制作成課件,在課堂做展示供學生增加信息量用,也簡化傳統(tǒng)教學無法板書的缺點,課堂教學也不再顯得枯燥無味。但對于案例分析或程序的編寫過程,筆者就發(fā)揮傳統(tǒng)教學的優(yōu)勢,進行課堂討論、板書講解、結合提問,將問題層層剖析、層層深入,達到師生互動的效果,學生的想象力就會得到充分的發(fā)揮,對問題的理解也變得更容易。另外,筆者也充分利用網(wǎng)絡資源,將電子教案、大綱、課件、習題等放在網(wǎng)上,供學生自行調(diào)用,同時通過Email、QQ對學生的提問進行答疑、討論,以彌補課堂教學的不足。
三、教學方法的改進
在C語言課程教學過程中,一方面要求教師能夠準確把握授課內(nèi)容,同時也要求教師注意應用相應的教學方法,以此提高教學質(zhì)量。以下是筆者在幾年的C語言課程教學中采用的一些教學方法。
(一)問題探究教學法。問題探究教學法在C語言教學中是一種相當有用的教學方法。這種教學法能夠充分發(fā)揮學生的思維,突出學生的主體作用,能有效地培養(yǎng)學生的分析問題與解決問題的能力。以“冒泡排序”為例,筆者沒有平鋪直敘地介紹算法與程序代碼,而是先跟學生講解什么叫“冒泡”,然后讓學生思考冒泡排序的算法思路,進而讓學生討論并寫出算法流程圖,接下來講解如何用for與if程序結構實現(xiàn)算法,最后才講解為了減少交換次數(shù)而引入swap這一判定變量,直至整個程序編寫完整。整個講解過程結合板書,逐步引導,層層深入,取到很好的教學效果。
(二)歸納教學法。C語言有很多的定義、概念、語法規(guī)則,它們使用靈活、難以記憶,也特別容易出錯。如果能夠引導學生進行歸納,將會起到事半功倍的效果。C語言的定義、概念、語法規(guī)則有許多相似的地方,例如:printf()與scanf()函數(shù),有很多語法規(guī)則是一樣的,對它們進行歸納之后,學生只要記住其中一個,另一個自然就會使用了。又如:數(shù)組與指針,由于它們使用靈活,許多學生與教師都認為它們很難,尤其是指針。但如果對它們進行歸納之后,就會發(fā)現(xiàn)無論是二維數(shù)組,還是指向指針的指針或其它類型的指針,它們都會變得與一維數(shù)組的使用一樣容易。為了這些歸納便于記憶,筆者還將它們編成了順口溜,例如二維數(shù)與各類有二重地址的指針歸納如下:數(shù)組名與指針名代表二重地址,即無“*”也無“[ ]”加減數(shù)值對行操作;僅有1個“*”或“[ ]”代表單重地址(即行地址),加減數(shù)值對列操作;“*”與“[ ]”加起來有2個就是元素值。
(三)因材施教法。由于學生學習的動機、興趣、能力存在較大的個體差異,所以決定了C語言課程必須因材施教。對于學習能力較強的學生,筆者就鼓勵他們自學,并給予方向性指導,讓他們超前學習。在C語言教學中,培養(yǎng)學生的自學能力尤為重要,如果學生的學習完全依賴教師才能掌握,而沒有一定的自學能力,其所學的知識很快就會被淘汰。對于多數(shù)學生,則把精力放在最基本、最常用的內(nèi)容上,讓他們學好基本功,掌握程序設計的方法,為后續(xù)課程的學習打下基礎。另外,教學過程中,筆者還不時地從學生的角度來考慮問題,講解內(nèi)容,加強師生的互動效果,以降低學生學習的焦慮情緒。
(四)實踐教學法。學習程序設計課程的目的是掌握設計程序的思路,學會用計算機語言編寫程序,以實現(xiàn)所需處理的任務。因此教學重點要放在解題的思路上,通過大量的實踐讓學生學會怎樣設計一個算法,構造一個程序。筆者一開始,讓學生編寫簡單的程序,然后逐步深入。在實驗題目設置上,根據(jù)課時安排以及要掌握基本知識,設置必做與選做題,以滿足各個層次學生的需要。在本課程結束后,安排一次綜合的大實驗,培養(yǎng)學生綜合應用能力。
(五)綜合考核法。衡量一門課學習的好壞,不是看學生“知不知道”,而是“會不會干”。考核的方法不能主要用是非題和選擇題,而應當把重點放在編制程序和調(diào)試程序上。所以筆者對學生學習成績的評定,采用綜合考核法,將平時的實踐成績與期末卷面成績進行綜合,得出本課程綜合考評分。這種教學法,不但能更客觀地反映學生的學習情況,同時也能促進學生學習,起到很好的教學效果。
參考文獻:
[1]嚴桂蘭,C語言程序設計與應用教程[M].福建:廈門大學出版社,2006.
[2]譚浩強,C程序設計(第三版)[M].北京:清華大學出版社,2005.
作者簡介:
漆智勤,女,主要從事高校教學工作。