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