趙燕香
(湖南省衡山縣職業(yè)中專學(xué)校)
結(jié)構(gòu)化的控制語句、靈活多變的編程方法是C 語言的特點,相對普高而言,職高生文化基礎(chǔ)和理解能力相對薄弱,因此,如何在C 語言教學(xué)中啟發(fā)并訓(xùn)練學(xué)生的編程思維,是每個教師應(yīng)深思的問題。以下是筆者在C 語言教學(xué)中的一些看法,愿和同行探討。
了解學(xué)生已構(gòu)建的知識結(jié)構(gòu)、專業(yè)水準(zhǔn)等情況;由簡單問題展示新教學(xué)內(nèi)容的實際功效。激發(fā)學(xué)生對新知識的學(xué)習(xí)興趣,是任務(wù)執(zhí)行的最大目標(biāo)。
要讓學(xué)生理解新知識的應(yīng)用機(jī)理,向?qū)W生示范操作步驟,講述操作的實現(xiàn)過程。
主要由學(xué)生進(jìn)行學(xué)習(xí)活動,即按照教師的示范,學(xué)生自己動手操作,教師指導(dǎo)。
教師對整個教學(xué)活動進(jìn)行歸納總結(jié),對教學(xué)重點、難點進(jìn)行反復(fù)講解,也可以了解學(xué)生對新知識的掌握程度。
遵從學(xué)生認(rèn)知事物的心理、已構(gòu)建的知識結(jié)構(gòu)并由日常生活問題引入新課內(nèi)容,如在講關(guān)系運算符后講邏輯運算符和邏輯表達(dá)式可以這樣進(jìn)行:在講關(guān)系運算符的優(yōu)先級和結(jié)合性后,舉例分析下例程序段中表達(dá)式的值:
分析:同級運算左結(jié)合性,故先算a<x 表達(dá)式的值,若為真,結(jié)果就是1,為假,是0,然后再將期值進(jìn)行比較運算,無論是0<b 還是1<b,它的結(jié)果總是為真,其表達(dá)式的輸出結(jié)果均為1。然后請學(xué)生思考在我們的日常生活中若要選成績在100 到120 分的學(xué)生時,其條件常寫成:100<=cj<=120,C 語言能夠這樣準(zhǔn)確無誤地表示嗎?就以日常生活中選出100 分到120 分的學(xué)生進(jìn)行評優(yōu),若是80 分,思考是否也可以參加評優(yōu)?126 分是否也能參加評優(yōu)?然后得出結(jié)果都可以,推出它是不能正確地表示C 語言的含義的表達(dá)式,于是引入邏輯運算符:邏輯與&&。
主要由學(xué)生進(jìn)行學(xué)習(xí)活動,即按照教師的示范,學(xué)生自己動手操作,教師指導(dǎo)。在此基礎(chǔ)上,學(xué)生自己通過練習(xí),逐步對新學(xué)知識達(dá)到完全掌握和熟練運用的程度。
如,先以1+2+3+4+……+10 為例,分析計算機(jī)解題的思維方式,講解while 循環(huán)結(jié)構(gòu)的特點、語句語法及應(yīng)用方法,介紹流程圖畫法,描述計算機(jī)解題步驟,寫出程序代碼。然后擦去代碼要求學(xué)生練習(xí)1*2*3*4……*10 求積的程序,以訓(xùn)練學(xué)生知識的理解掌握和遷移能力。
范例比較教學(xué)法是指根據(jù)好的、特別清楚的、典型的例子進(jìn)行教學(xué),使學(xué)生能依靠例子來掌握新知識。比較則是把與該范例相關(guān)的另一類語言的編寫程序列舉出來相比較。問題探究教學(xué)法即教師根據(jù)教學(xué)要求和教學(xué)的重點、難點,設(shè)計問題來組織教學(xué),使學(xué)生在教師引導(dǎo)下,以“問題解決者”的角色積極主動地參與課堂研討,提出問題、分析和解決問題,從而啟發(fā)學(xué)生思維和培養(yǎng)學(xué)生能力的一種教學(xué)方法。問題探究教學(xué)法在C 語言程序設(shè)計教學(xué)中是一種相當(dāng)有用的教學(xué)方法,能夠充分發(fā)揮學(xué)生的思維,突出學(xué)生的主體作用,能有效地培養(yǎng)學(xué)生的分析問題與解決問題的能力。
例如,我們學(xué)習(xí)了for 循環(huán)結(jié)構(gòu)后,如有求下列表達(dá)式的值:1-1/2+1/3-1/4+……-1/20,那么學(xué)生可能會感覺無從下手。但我們以下面題目為基礎(chǔ)步步深入,列舉若干例子使它們彼此聯(lián)系又略顯不同,就可以逐步引導(dǎo)學(xué)生完成較難的編程。
(1)我們可以通過下題作為基礎(chǔ)
例1:求表達(dá)式1+2+3+4+…+20 的值。
分析:表達(dá)式的各項之間相加,但前一項比后一項向上遞增1的順序,于是就可以設(shè)初值為1,終值為20,循環(huán)變量i 的步長為1,放和的變量為sum 其初值為0。程序代碼如下:
舉例練習(xí)思考題:求1+3+5+7+……+21 的值。(并要求課后做到作業(yè)本上)
(2)通過下例兩題做比較
例2:求表達(dá)式1-2+3-4+……-20 的值?
分析:比較它與例1 的相同點和不同點:相同點是它們都是求表達(dá)式的值,不同的地方是前面都是加,而例2 是加減相交錯,探討下我們是否可以將它理解為:1+(-1)*2+3(-1)*4+……(-1)*20。這時就會要運到標(biāo)志變量flag=1,程序代碼只變循環(huán)就可,如下:
例3:求表達(dá)式1+1/2+1/3+1/4+…+1/20 的值。
分析:比較它與例1 的相同點和不同點:相同點是它們都是求表達(dá)式的值,不同的地方是例1 是整數(shù)相加,而例2 是可以看作是:1/1+1/2+1/3+1/4+…+1/20,是將其變?yōu)榉謹(jǐn)?shù)相加,同時應(yīng)注意sum 應(yīng)改變數(shù)據(jù)類型實型,
通過上面探討解決問題,結(jié)合例1、例2,就能正確地引導(dǎo)學(xué)生編出程序。
課后思考作業(yè):求表達(dá)式1/1-1/3+1/5-1/7+…-1/21 的值?
上述幾種教學(xué)方法打破了以教材為中心的傳統(tǒng)教學(xué)模式,而是以精選出的實例或生活中的例子為中心,把學(xué)習(xí)的重點放在范例的講述上,把要學(xué)習(xí)的語法結(jié)構(gòu)和概念融入具體范例中來講解。整個教學(xué)過程中強(qiáng)調(diào)學(xué)以致用,在應(yīng)用中學(xué)習(xí),從而避免枯燥、繁雜的理論說教,不僅能增進(jìn)學(xué)生的學(xué)習(xí)積極性,而且對提高學(xué)生綜合分析和解決實際問題的能力有很大幫助。
教學(xué)有法,教無定法,只要教學(xué)得法。靈活地選用合適的教學(xué)方法,或?qū)⒍喾N教學(xué)方法優(yōu)化組合,這樣才能讓課堂教學(xué)沖破課堂,使學(xué)生逐步對新學(xué)知識達(dá)到完全掌握和熟練運用的程度。