曹亞平
【摘要】要想減輕學(xué)生的學(xué)習(xí)壓力,使學(xué)生輕松掌握教材知識(shí),就必須扎實(shí)推進(jìn)教育教學(xué)改革,在改革中不斷創(chuàng)新,形成屬于自己的,切實(shí)有效的教學(xué)觀。我的C語言教學(xué)觀是:初學(xué)者應(yīng)當(dāng)熟悉標(biāo)準(zhǔn)格式語句,掌握必備算法;熟練后應(yīng)當(dāng)適應(yīng)語句的多種形式,增加常用算法的理解。
【關(guān)鍵詞】C語言 入門難 初學(xué)者 算法
談及C語言,許多朋友都感覺到:C語言功能強(qiáng)大,應(yīng)用廣泛。C語言知識(shí)猶如“少林功夫”般博大精深,實(shí)在難學(xué)。有教師認(rèn)識(shí)到:學(xué)習(xí)C語言必須解決學(xué)生問題,提出激發(fā)學(xué)生學(xué)習(xí)興趣,做學(xué)習(xí)主人的方法。也有教師認(rèn)為:C語言教學(xué)入門難,學(xué)生在課堂上聽懂了,但不會(huì)應(yīng)用,歸結(jié)為應(yīng)試、考級(jí)等要求的制約。
我認(rèn)為:教師除了分析學(xué)生因素,研究考綱之外,應(yīng)該把正確把握編者意圖,剖析、吃透教材,突出重點(diǎn),更好地適應(yīng)學(xué)生的學(xué)習(xí)需求作為教學(xué)的根本方向。對(duì)C語言教材的處理,按掌握知識(shí)的難易程度可分為初步掌握和熟練掌握,按知識(shí)的側(cè)重點(diǎn)可分為必須知識(shí)和補(bǔ)充知識(shí)。
C語言教學(xué)一般分為兩個(gè)學(xué)期,第一學(xué)期的關(guān)鍵是破解入門難。教師做好“快”、“實(shí)”、“精”三步驟,學(xué)生往往能夠感受到學(xué)習(xí)C語言的信心和樂趣。
“快”——快速進(jìn)入語句部分的教學(xué)過程。忽略C語言的產(chǎn)生、發(fā)展,重點(diǎn)講述程序的構(gòu)成和程序設(shè)計(jì)的三種基本結(jié)構(gòu)。如何解決數(shù)據(jù)類型較多,學(xué)生忙于記憶,走錯(cuò)學(xué)習(xí)方向十分重要。初學(xué)者可以先掌握int和char類型,教師只要告訴他們,其他類型與int類型本質(zhì)一樣,只是精度不同。忽略定點(diǎn)、浮點(diǎn)數(shù)的概念與表示,在理解常量、變量的含義,函數(shù)、表達(dá)式的計(jì)算和表示后,立即進(jìn)入語句部分的教學(xué),同時(shí)輔以上機(jī)實(shí)踐。這樣的教學(xué),減輕了學(xué)生記憶的負(fù)擔(dān),使學(xué)習(xí)C語言成為一種享受;同時(shí),也理通了教材,為以后突出重點(diǎn),克服難點(diǎn),預(yù)留了教學(xué)空間。實(shí)踐證明,教師講授C語言4課時(shí)左右就進(jìn)入語句部分,教學(xué)效果相當(dāng)好。
“實(shí)”——夯實(shí)語句部分的教學(xué)基礎(chǔ)。C語言函數(shù)由一條條語句構(gòu)成,語句是編程的基礎(chǔ),C語言語句的書寫靈活多變,令人神傷。初學(xué)者應(yīng)先掌握常規(guī)格式,教師在教學(xué)時(shí)可以把常規(guī)格式稱為標(biāo)準(zhǔn)格式,待C語言基礎(chǔ)扎實(shí)后,再去熟悉其多變的格式。學(xué)生掌握了常用語句,能進(jìn)行簡單的編程,可激發(fā)其學(xué)習(xí)興趣,提高求知欲,增強(qiáng)學(xué)習(xí)的積極性和主動(dòng)性。教師往往會(huì)碰到這樣的問題:按教材授課,學(xué)生能理解語句,但課后不會(huì)運(yùn)用語句編程。學(xué)習(xí)C語言的目的是為了學(xué)以致用,這就要求教師在授課時(shí)注重語句與實(shí)際編程相結(jié)合。例如:在教學(xué)if語句時(shí),讓學(xué)生用C語句描述“如果x為偶數(shù),則n+1”,“如果x能被y整除,則打印x值”,“判斷year是否為閏年”等。在教學(xué)for語句時(shí),讓學(xué)生用C語句描述“循環(huán)變量x為1-100間的所有奇數(shù)”、“循環(huán)變量x為2-100間的所有偶數(shù)”、“循環(huán)變量x為2—n-1的整數(shù)”等。
“精”——狠抓典型算法。算法是C語言的靈魂,需要反復(fù)變化題型,精講精練。止步于算法學(xué)習(xí)的C語言編程愛好者不在少數(shù),究其原因,是把C語言當(dāng)作一門記憶量大,且拗口的科目學(xué)習(xí),當(dāng)然事倍功半。通過前面快速而實(shí)效的基礎(chǔ)學(xué)習(xí),學(xué)生興致高昂,探究編程思想的感情濃厚,若教授的算法過多、太難,則會(huì)造成學(xué)生的畏難思想,不利于教學(xué)。初學(xué)者在第一學(xué)期必須掌握的典型算法集中在累加求和、素?cái)?shù)問題,并掌握一種排序算法。通過不斷練習(xí),使算法思維得到強(qiáng)化,逐步從模仿轉(zhuǎn)變?yōu)樽约悍治鰡栴}、解決問題的能力。
第二學(xué)期的關(guān)鍵是學(xué)習(xí)算法,理解自定義函數(shù)的調(diào)用與返回。數(shù)組與自定義函數(shù)章節(jié)是教材的重點(diǎn),也是難點(diǎn),教學(xué)過程中需要一“慢”二“懂”。
所謂“慢”,就是放慢教學(xué)進(jìn)度,在學(xué)生掌握一種算法后再學(xué)其他算法。如:教學(xué)四種排序算法至少8課時(shí),要給學(xué)生足夠的時(shí)間來消化吸收知識(shí),否則寧可只講兩種算法。一維數(shù)組中常見的查找、刪除、移動(dòng)等算法,可作為語句應(yīng)用和編程思想的有效補(bǔ)充。二維數(shù)組中矩陣轉(zhuǎn)置、鞍點(diǎn)等問題,對(duì)學(xué)生靈活運(yùn)用數(shù)組及數(shù)組下標(biāo)提出更高要求?!奥笔亲寣W(xué)生跟上學(xué)習(xí)的節(jié)奏,是學(xué)生能夠?qū)W有所得的要求。第二學(xué)期,學(xué)生必須掌握新增排序算法,矩陣轉(zhuǎn)置算法。教師通過抓住教材重點(diǎn),突破難點(diǎn),減輕學(xué)生學(xué)習(xí)壓力,那么,所教學(xué)生熟練掌握C語言不再是難題。
“懂”,就是注重理解,理順弄懂。自定義函數(shù)教學(xué)時(shí)涉及概念較多,如:全局與局部,靜態(tài)與動(dòng)態(tài),實(shí)參與形參等。教師先教授基本型函數(shù),即實(shí)參為局部變量,形參為動(dòng)態(tài)變量,充分理解實(shí)參與形參的概念,掌握函數(shù)的調(diào)用及返回過程,鼓勵(lì)學(xué)生多寫,爭取熟能生巧。在此基礎(chǔ)上,通過全局與局部、靜態(tài)與動(dòng)態(tài)對(duì)程序運(yùn)行有何不同后果的比較,加深對(duì)概念的理解并掌握其應(yīng)用。告訴學(xué)生:自定義函數(shù)只是書寫形式不同,就是把具有某功能的程序段寫入某函數(shù),并實(shí)現(xiàn)調(diào)用和返回,屬于模塊化程序設(shè)計(jì),僅此而已。
C語言在各類院校的教學(xué)安排通常是一學(xué)年,而在中職學(xué)校則時(shí)間更長。學(xué)習(xí)C語言需要通過多次復(fù)習(xí),層層推進(jìn),加強(qiáng)理解,才能不斷深入掌握其應(yīng)用,越學(xué)越有勁,樂在其中。老舍說過:“驕傲自滿是我們的一座可怕的陷阱;而且,這個(gè)陷阱是我們自己親手挖掘的?!弊鳛橐幻處熤挥胁粩嗵剿鹘逃虒W(xué)新方法,才能不斷進(jìn)步,才能滿足人們不斷增長的知識(shí)需求。
參考文獻(xiàn):
[1]譚浩強(qiáng).C程序設(shè)計(jì)[M].清華大學(xué)出版社.2010.