管榮平
摘 要:隨著社會的不斷發(fā)展,中職生的學(xué)習(xí)動機(jī)、學(xué)習(xí)方式和學(xué)習(xí)興趣等不斷改變。因而,中職學(xué)校專業(yè)課的教學(xué)必須進(jìn)行改革,改革傳統(tǒng)的教學(xué)理念、教學(xué)方法和教學(xué)內(nèi)容,體現(xiàn)職業(yè)特點(diǎn),形成具有職業(yè)特色的課程觀,為社會培養(yǎng)出更多素質(zhì)高、技能強(qiáng)的一線勞動者。在教學(xué)中嘗試?yán)们榫辰虒W(xué)法進(jìn)行C語言教學(xué),取得了良好的效果。
關(guān)鍵詞:情境教學(xué)法;中職生;C語言教學(xué)
C語言是職業(yè)學(xué)校計算機(jī)專業(yè)學(xué)生學(xué)習(xí)的第一門程序語言課。在實(shí)際教學(xué)中,筆者發(fā)現(xiàn)大多數(shù)職業(yè)學(xué)校學(xué)生學(xué)習(xí)C語言都有一定的困難。運(yùn)用一般的教學(xué)方法很難讓學(xué)生很好地理解并掌握程序設(shè)計知識,原因主要有:
一、創(chuàng)設(shè)情境,提出問題
【教師】世界杯足球比賽前裁判都會通過拋硬幣的方式來決定雙方的場地和哪方先開球,今天我們利用隨機(jī)函數(shù)來模擬拋硬幣。
【學(xué)生板書演示】
#include
#include
void main()
{ int x;
x=(rand()%2);
if(x==0)print f(″硬幣為正面\n″); else printf(″硬幣為反面\n″);
}
【經(jīng)驗小結(jié)】通過中職生感興趣的世界杯足球比賽,將學(xué)生的注意力吸引到今天的教學(xué)內(nèi)容中。這種導(dǎo)入方式在教學(xué)過程中效果非常好。
【教師引導(dǎo)】這個例題是采用隨機(jī)函數(shù)rand()產(chǎn)生一個[0,32767]之間的隨機(jī)整數(shù)。然后采用模除2的方式,求得x的值為隨機(jī)數(shù)0或1。我們可以用0表示硬幣的正面,用1表示硬幣的反面,因此可以采用隨機(jī)函數(shù)來模擬拋硬幣。
這時,教師可以進(jìn)一步引導(dǎo)學(xué)生深入思考。如果要隨機(jī)產(chǎn)生10個、50個或者更多的隨機(jī)數(shù)時,再用這種方法行嗎?又將如何解決?
【例1】將硬幣拋擲100次,統(tǒng)計正反面出現(xiàn)的次數(shù),請思考如何利用C語言編程實(shí)現(xiàn)?
【教師引導(dǎo)】根據(jù)剛才的分析,產(chǎn)生隨機(jī)數(shù)用隨機(jī)函數(shù),如果產(chǎn)生多個隨機(jī)數(shù),我們可以用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)。
【經(jīng)驗小結(jié)】教材中只列出了隨機(jī)函數(shù)的作用,沒有陳述隨機(jī)函數(shù)的具體應(yīng)用,學(xué)生理解起來很困難。因此,在教學(xué)中要提出貼近學(xué)生生活的程序設(shè)計問題,讓學(xué)生深刻體會編寫程序可以解決身邊的事情。
二、創(chuàng)設(shè)情境,講授新知
【例2】模擬擲骰子的情況,擲100次,統(tǒng)計其每一面出現(xiàn)的次數(shù)。該怎么樣來實(shí)現(xiàn)呢?
教師講授新的知識,給出一個表達(dá)式:x=(rand)%(n-m+1)+n),其中m為產(chǎn)生隨機(jī)數(shù)的起始值,n為產(chǎn)生隨機(jī)數(shù)的終止值。如:產(chǎn)生[1,6]之間的數(shù),其表達(dá)式為x=(rand)%(6-1+1)+1)。
【教師】現(xiàn)在請一個學(xué)生利用上述表達(dá)式完成例2,其余學(xué)生獨(dú)立完成,有困難的學(xué)生可以進(jìn)行小組討論或師生討論。
【學(xué)生板書】略。
【教師】通過新學(xué)的表達(dá)式,我們可以產(chǎn)生任意范圍的隨機(jī)數(shù),只要修改相應(yīng)的m和n即可。那么,剛才我們做的例1也可以用新學(xué)的表達(dá)式來完成,應(yīng)該怎么樣?
【學(xué)生】x=(rand)%(1-0+1)+0),產(chǎn)生0和1兩個數(shù),0可以表示正面,1則可表示反面。
【經(jīng)驗小結(jié)】學(xué)生的程序設(shè)計內(nèi)容應(yīng)當(dāng)是現(xiàn)實(shí)的、貼近學(xué)生生活的,通過程序設(shè)計學(xué)生可以完成一些簡單的、學(xué)生感興趣的問題。讓學(xué)生在輕松的環(huán)境中學(xué)習(xí)程序設(shè)計,并體驗成功的喜悅,使他們產(chǎn)生更大的興趣去學(xué)習(xí)程序設(shè)計,而不是整天面對教材上枯燥的例題。同時引導(dǎo)學(xué)生采用小組合作的方式,進(jìn)行討論,解決問題。不知不覺,培養(yǎng)學(xué)生的團(tuán)隊合作精神。
三、情境創(chuàng)設(shè),鞏固新知
【例3】讓所有學(xué)生(共45人)利用計算機(jī)程序進(jìn)行抽獎,其中一等獎5名,二等獎10名,三等獎15名,要求每個學(xué)生不能重復(fù)獲獎。
【師生共同分析】我們要隨機(jī)產(chǎn)生30個不重復(fù)的數(shù)字,數(shù)字范圍剛好應(yīng)是學(xué)號的范圍,即[1,45]。在產(chǎn)生隨機(jī)數(shù)的時候,每產(chǎn)生一個數(shù)都要與前面已產(chǎn)生的隨機(jī)數(shù)進(jìn)行比較,若相同則這個數(shù)不能要,則需重新產(chǎn)生一個。其中判斷是否重復(fù)與判斷是否為“素數(shù)”這個程序差不多。產(chǎn)生符合條件的數(shù)后放入數(shù)組,最后把前5個作為一等獎,其后的10個作為二等獎,余下的都為三等獎。
【經(jīng)驗小結(jié)】在C語言程序設(shè)計教學(xué)中,教師要通過創(chuàng)設(shè)問題情境,培養(yǎng)學(xué)生的創(chuàng)新思維。這里的關(guān)鍵在于設(shè)計好例題。在學(xué)生解決問題的途中,巧設(shè)新的矛盾,引導(dǎo)他們探究矛盾,尋找新的解決途徑。因此,教師精心創(chuàng)設(shè)問題情境是培養(yǎng)學(xué)生創(chuàng)新思維的必要途徑之一。
參考文獻(xiàn):
[1]譚浩強(qiáng).C語言程序設(shè)計.4版.清華大學(xué)出版社,2010.
[2]陳靜,楊青,鄭世玨.高級語言程序設(shè)計與應(yīng)用教程.清華大學(xué)出版社,2008.