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