◆湛靜梅
(河北省唐山師范學(xué)院灤州分校)
對(duì)于非計(jì)算機(jī)專業(yè)理工類學(xué)生而言,C語言程序設(shè)計(jì)這門課有著較強(qiáng)的應(yīng)用前景。它不僅是計(jì)算機(jī)二級(jí)考試要求的課程之一,而且也為解決實(shí)際問題提供了方法或者是方便。尤其是與數(shù)學(xué)應(yīng)用聯(lián)系緊密。因?yàn)榻坛虄?nèi)容中大多以數(shù)學(xué)問題作為實(shí)例,應(yīng)用C語言解決數(shù)學(xué)問題也應(yīng)該是學(xué)生具備的一種能力。在我校??普n程設(shè)置中,C語言成為數(shù)學(xué)專業(yè)學(xué)生的必修課。對(duì)于數(shù)學(xué)專業(yè)學(xué)生學(xué)習(xí)該課程,教學(xué)內(nèi)容上應(yīng)該本著突出基礎(chǔ)理論知識(shí)的應(yīng)用和實(shí)踐能力培養(yǎng)的原則,能夠達(dá)到學(xué)以致用,加強(qiáng)針對(duì)性和實(shí)用性。
C語言是一種通用的程序設(shè)計(jì)語言,具有功能強(qiáng)大、表達(dá)簡(jiǎn)明、使用靈活、結(jié)構(gòu)化的流程控制、豐富的數(shù)據(jù)結(jié)構(gòu)和操作符集合、良好的程序可移植性和高效率的目標(biāo)代碼等特征。既可以編寫系統(tǒng)軟件,也可以用于編寫應(yīng)用軟件。C語言的語法規(guī)則清晰,便于掌握和記憶,是大多數(shù)程序設(shè)計(jì)者的入門語言。C語言兼有高級(jí)語言的容易學(xué)校及低級(jí)語言的強(qiáng)大控制能力著兩種特性,也因這兩種特性,使它取代了許多程序設(shè)計(jì)語言的地位,成為大多數(shù)程序設(shè)計(jì)人員喜愛的程序語言。然而C語言的數(shù)據(jù)類型較多、表達(dá)式豐富、語法結(jié)構(gòu)較復(fù)雜,也使它成為一門教師難教、學(xué)生難學(xué)的課程。
單純的程序語言指令規(guī)則枯燥乏味,按部就班地講解指令規(guī)則和介紹書本上的例子很難引起學(xué)生的學(xué)習(xí)興趣。這樣也很難使學(xué)生在C語言課程中找到編程的樂趣。因此,教師需要在授課時(shí)多聯(lián)系實(shí)際舉例,多激發(fā)學(xué)生自主學(xué)習(xí)的能力。
1.明確學(xué)習(xí)目標(biāo),提高學(xué)習(xí)動(dòng)力
“沒有目標(biāo)的人,就好比沒有眼睛的魚。”在教學(xué)過程中我們不難發(fā)現(xiàn),很多學(xué)生都是學(xué)的時(shí)候很迷茫,不知道該如何運(yùn)用,甚至不知道到底有什么用。C語言這門課程作為一門程序設(shè)計(jì)課,不僅僅要求學(xué)生對(duì)C語言本身有準(zhǔn)確的理解,還要求學(xué)生能夠合理運(yùn)用,提高程序設(shè)計(jì)能力。在具體教學(xué)組織中每節(jié)課我都給學(xué)生制定學(xué)習(xí)目標(biāo),使他們能夠有方向、有目的的去學(xué)習(xí)。事實(shí)證明在C語言教學(xué)中,幫助學(xué)生明確學(xué)習(xí)目標(biāo)是增加學(xué)生的學(xué)習(xí)動(dòng)力的有效辦法。
2.增加實(shí)例的趣味性、實(shí)用性,提高教學(xué)效果
C語言中有許多實(shí)例,比如,猜數(shù)字游戲、水仙花數(shù)、fibonaCCi數(shù)列、猴子吃桃、譯密碼等。在教學(xué)過程中盡量運(yùn)用簡(jiǎn)單實(shí)用有趣味性的作為教學(xué)內(nèi)容,巧妙設(shè)計(jì)。像這樣的例子可能比比皆是,在此我簡(jiǎn)述我在循環(huán)結(jié)構(gòu)教學(xué)中的幾個(gè)案例。
案例1.講到循環(huán)結(jié)構(gòu)時(shí),強(qiáng)調(diào)while語句使用應(yīng)該注意的問題。(while后面是否加“;”,復(fù)合語句要用“{}”)。最初的授課方法就是先講述后練習(xí),這樣的講解學(xué)生在學(xué)習(xí)學(xué)習(xí)過程中并沒有引起注意,記憶也不深刻。到后面做練習(xí)的時(shí)候錯(cuò)誤百出。后來我改變了教學(xué)技巧。講述完基本用法之后我給了一個(gè)大家感興趣的話題《找不同》。
通過區(qū)別程序,輸出了不同結(jié)果,學(xué)生在分析它們的執(zhí)行過程的同時(shí)深刻理解并記住了這些問題。這次教學(xué)效果明顯提高。
此外教學(xué)實(shí)例還應(yīng)該盡量做到少而精、一例多用,通過一個(gè)例子起到對(duì)前后相關(guān)內(nèi)容的融合貫通。例如,實(shí)例“猜數(shù)字游戲“分別用于選擇和循環(huán)結(jié)構(gòu)教學(xué)內(nèi)容中。實(shí)例(1)將十個(gè)數(shù)按照逆序排列。(2)將十個(gè)數(shù)排序,分別貫穿于數(shù)組,函數(shù),指針教學(xué)內(nèi)容中等。因?yàn)閷W(xué)生是數(shù)學(xué)專業(yè),所以也可以多運(yùn)用數(shù)學(xué)例子,比如,用牛頓迭代法(或者二分法)求方程的根,用遞歸方法求勒讓德多項(xiàng)式。這樣既適合專業(yè)性質(zhì),又解決了本課程的學(xué)習(xí),一舉兩得。
案例2.在循環(huán)結(jié)構(gòu)當(dāng)中用“計(jì)算1+2+….+100的和”的實(shí)例來講解while語句的語法和使用,再用do~while語句和for語句實(shí)現(xiàn)。
進(jìn)而還可以推導(dǎo)出if語句使用過程中三個(gè)表達(dá)式的缺省問題,三種語句在什么條件下可以等價(jià)轉(zhuǎn)換,掌握了三個(gè)語句的用法的同時(shí),也理解力它們之間的區(qū)別。
3.發(fā)展學(xué)生自主學(xué)習(xí),培養(yǎng)學(xué)生學(xué)習(xí)興趣
新課程強(qiáng)調(diào)學(xué)生是學(xué)習(xí)的主人,在教學(xué)中要充分發(fā)揮主體性。因?yàn)镃語言這門課程僅僅依靠課本或是老師教的知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,它是一門帶有探究性的、以學(xué)生動(dòng)手實(shí)踐為主的學(xué)科,探究性學(xué)習(xí)以“問題”為基礎(chǔ),“問題”是學(xué)生進(jìn)行探究式學(xué)習(xí)的載體,而教師可通過“問題”的提出,激發(fā)學(xué)生探求新知的欲望,在引導(dǎo)學(xué)生去探究的過程中,學(xué)生主動(dòng)地產(chǎn)生學(xué)習(xí)的需求。因此,恰當(dāng)?shù)摹皢栴}”是信息技術(shù)教學(xué)的重要手段,它不但能鞏固知識(shí),及時(shí)反饋教學(xué)信息,而且能激勵(lì)學(xué)生積極自主地參與到教學(xué)活動(dòng),成為學(xué)習(xí)的主人。所以教學(xué)應(yīng)立足于學(xué)生學(xué)習(xí)能力的培養(yǎng),特別是自主學(xué)習(xí)能力的培養(yǎng),只有這樣,才能促進(jìn)課堂教學(xué)質(zhì)量的提高。
案例3.在“循環(huán)語句”的教學(xué)中,安排學(xué)生完成課本的一道習(xí)題。題目要求:猜字游戲。(給一個(gè)數(shù)字,猜對(duì)了輸出**right**,猜錯(cuò)了輸出**wrong**)。
程序分析過程中要鼓勵(lì)學(xué)生勇于質(zhì)疑,大膽發(fā)表自己獨(dú)特的見解。教師在教學(xué)中要給學(xué)生留有思考、探究和自我開拓的余地,要善于把教學(xué)內(nèi)容本身的矛盾與學(xué)生已有的知識(shí)、經(jīng)驗(yàn)間的矛盾作為突破口,啟發(fā)學(xué)生去探究,使學(xué)生的思維活躍起來,使學(xué)生勤于思考,樂于思考,從而更加積極自主地投入學(xué)習(xí)。討論過程學(xué)生可以得出如下結(jié)論:應(yīng)該限定猜的次數(shù);猜對(duì)后就應(yīng)該結(jié)束循環(huán)。實(shí)現(xiàn)過程中同學(xué)們運(yùn)用不同的方法實(shí)現(xiàn)。
C語言程序是一門理論加實(shí)踐的課程,必須上機(jī)實(shí)踐,將程序運(yùn)行調(diào)試才能真正解決問題,得到正確結(jié)果。有的同學(xué)認(rèn)為完成程序的編寫,就萬事大吉。實(shí)際上上機(jī)運(yùn)行時(shí)可能會(huì)不斷出現(xiàn)錯(cuò)誤有時(shí)候可能沒有語法錯(cuò)誤,但是結(jié)果不對(duì)。這樣只有在上機(jī)的過程中還能發(fā)現(xiàn),進(jìn)而改正。還要特別強(qiáng)調(diào)的是,最好是先講課后上機(jī),而且時(shí)間間隔不能太長(zhǎng)。所以多實(shí)踐是學(xué)習(xí)掌握C語言的必經(jīng)之路。
上機(jī)實(shí)踐課主要采用分組討論。先將學(xué)生分成小組根據(jù)學(xué)習(xí)水平均衡分配,這樣有助于互幫互帶。實(shí)現(xiàn)過程:難度低的程序?qū)嵭忻總€(gè)人獨(dú)立完成后組內(nèi)交流討論,難度較高的程序一個(gè)人思考可能存在一定的困難,就實(shí)行組內(nèi)先討論然后共同完成。大家彼此學(xué)習(xí)好的編程思路和方法,得到質(zhì)量較高的程序也達(dá)到共同提高的目的。這樣既可以鍛煉個(gè)體,也能培養(yǎng)大家團(tuán)結(jié)協(xié)作的團(tuán)隊(duì)精神。
要教好C語言,關(guān)鍵在于教師要明確學(xué)生學(xué)習(xí)目標(biāo),有效地組織教學(xué),這樣才能激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生主動(dòng)、愉快地學(xué)習(xí),滿足他們的求知欲,從而取得良好的教學(xué)效果。
[1]譚浩強(qiáng).C語言程序設(shè)計(jì).清華大學(xué)出版社.
[2]孟祥雙.C語言教程.北京師范大學(xué)出版社.
[3]王保勝.C語言程序設(shè)計(jì)教學(xué)探討與實(shí)踐.科技信息,2011,(27).