佟萍
摘要:對中職計算機專業(yè)的學生來說,c語言是最難學習的一門課程,這個“最難”就體現(xiàn)在編程上。因此,培養(yǎng)學生的編程能力尤為重要。而作為一門實踐性很強的課程,在實踐教學中培養(yǎng)學生的編程能力應注重“四巧”策略。
關鍵詞:中等職業(yè)學校;C語言編程教學;編程能力培養(yǎng)
中圖分類號:G712 文獻標志碼:A 文章編號:1673-9094-(2016)06C-0046-03
南宋詩人陸游在他的《冬夜讀書示子聿》中寫道:“紙上得來終覺淺,絕知此事要躬行?!边@兩句詩的意思是從書本上得到的知識終歸是淺薄的,最終要想認識事物或事理的本質(zhì),還必須自己親身的實踐。作為一門實踐性很強的課程《編程語言基礎——c語言》著重程序設計在實踐中的應用。因此,對于計算機專業(yè)的學生,僅僅在紙上寫寫程序是遠遠不夠的,必須讓他們把自己寫的程序拿到電腦上去運行、調(diào)試,發(fā)現(xiàn)問題,然后再嘗試解決問題,循環(huán)往復,在實踐教學中培養(yǎng)他們的編程能力。
一、巧選題,激生趣
很多計算機教師都認為,只要是在機房上課,就有很大的隨意性,所以往往不是很認真準備,有時會在課前準備兩個題目,讓學生上機做;有時干脆在上機的過程中隨機出個題,目的就是只要讓學生有事可做,不閑著就行,只要沒學生問問題,就認為他們都會。表面上看,學生熱熱鬧鬧、忙忙碌碌,其實他們真正用于做題的時間并不多,很多學生都是渾水摸魚、濫竽充數(shù),只有少數(shù)幾個學生是認真對待。
究其緣由,就是教師沒有認識到上機的重要性,或者認識到了,沒有在課前做充分的準備。而練習題的選取其實是首當其沖的。選得好,學生既喜歡做又提升了能力;選不好,學生既無趣又浪費了時間。那么,該如何巧選題呢?
(一)基礎題+提升題的搭配套餐
上機就和上課一樣,也有一個過程:從生到熟,所以剛開始上機編程時,教師應選取一些最基礎的題目加深學生對c語言基礎知識的理解。比如如下程序:
main( )
{float x1,x2;
double z1,z2;
float x;
double y;
x=123456.789;
y=123456.789;
printf(“x=%f”,x);
printf(“y=%f”,y);
}
選取這道題的目的就是讓學生理解浮點數(shù)的“精度”和“范圍”的確定,通過把這個程序輸入電腦,并調(diào)試運行得出結果,學生很容易就記住了float型和double型數(shù)據(jù)的區(qū)別,而且該題沒有任何難度,即使是學習能力較差的學生也很容易調(diào)試成功,所以很容易打動學生的心。
但沒有挑戰(zhàn),就感受不到勝利的刺激。如果每次上機都是這種不費吹灰之力就可以完成的程序,時間長了,學生就會覺得索然無味,失去興趣。這時就要適當?shù)靥嵘绦虻碾y度,既要能激起學生的斗志,但又不能把學生一棍子打死。比如這道題:從鍵盤上輸入a、b、c三個整數(shù),按從小到大的順序輸出。選這道題的原因是剛學習過求兩數(shù)之中的大者、小者的編程方法,而且已上機調(diào)試過,因此在此基礎上又增加一個數(shù),而且不是求最大或最小,而是要按一定的順序輸出,既聯(lián)系了之前所學知識,又使其上升了一個梯度。在學生可以解決的范圍之內(nèi),但又需要思考,調(diào)動了學生的興趣,激發(fā)他們?nèi)ヌ骄俊?/p>
(二)實用性+趣味性的完美組合
既然編程的目的是為了以后的實際應用,那么選取一些貼近生活的實用的程序就是必不可少的,因為和生活相關,學生看得到,想得出,當然也會有興趣參與??催@道題:編程判斷2020年是否為閏年?
學生看到這道題,立刻會想到以前中學學過的判斷閏年的方法:能被4整除但不能被100整除或者能被400整除的年份即為閏年,接下來自然會把這個判斷方法用c語言的語句和結構表示出來,一切都是順理成章、水到渠成。
實用性的題目很多,但并不是所有的都符合學生的興趣,如果再加些趣味性,相信學生會興趣倍增,思維也隨之開闊。如,把10元錢人民幣兌換成1元、2元和5元的零鈔,有多少種兌換方法?這是一道既貼合生活又很有趣的題,學生可能會立刻拿出三種面值的人民幣,然后進行組合,也有可能會在大腦里進行快速地思考,然后結合學過的“百錢買百雞”的編程方法編寫該程序。
(三)題目形式的多樣化
單一的題型,學生會感到膩,如果一上機就是從頭到尾的編程,他們的興趣就會銳減,所以多樣化的題型更會吸引學生的眼球。教師就要多動腦子了,什么樣的程序適合填空題型,什么樣的程序適合改錯題型,什么樣的程序適合學生自己編寫,什么樣的程序只要學生調(diào)試,看結果。只要教師靈活選擇,合理使用,相信學生定會乖乖配合,樂在其中。
二、巧搭配,促合作
上機時,雖然每個學生都有一臺電腦可供使用,但這并不代表著他們是孤立的個體,相互之間不需要幫助和交流。恰恰相反,由于編程題的特殊性,他們之間更需要合作、互助,因此采取分組的學習方式是最適合不過的。
(一)組間同質(zhì),組內(nèi)異質(zhì)”
教師應對學生的個性、知識水平等方面有充分的了解,目的就是為了在學生合作過程中做到組內(nèi)合作、組間競爭,讓每個學生在合作中都能展示自我,發(fā)揮自己的特長。在充分了解之后,教師就應該以此為依據(jù)進行分組。比如,有的學生打字比較快,有的學生邏輯思維能力強,有的學生英語水平高,有的學生比較心細,合理搭配就可以集各家之所長,讓他們在編程的過程中互相協(xié)作,互相鼓勵,每個人都有事可做,每個人也都認為自己是不可缺少的,在合作的過程中共同學習,共同進步。
(二)明確分工,激發(fā)參與
為了達到最佳的合作效果,小組成員還應該在完成具體的任務前明確各自的分工,這個工作可由小組長來做。在具體做的過程中,每位成員應該積極參與,不偷懶,不?;R心協(xié)力,共同完成從程序的設計到編寫,到運行,到調(diào)試,到獲取正確結果,到最終記錄的全過程。只有這樣,巧妙搭配,合理分工,才能促進合作,從而使大家的編程能力都上升一個層次。
三、巧考核,提能力
C語言課程的考試,基本上是出一份試卷,學生只要動動筆即可。因此,很多學生并不重視上機,只重“紙上談兵”,而這種思想對其編程能力的培養(yǎng)有百害而無一利。為了扭轉學生這種不正確的想法,教師應把上機考核作為學生c語言成績的一部分,而且考核的方式應該多種多樣。
(一)競爭考核
教師把精心準備的編程題給各小組,然后開始觀察各小組成員之間的合作情況:是否能全員參與,是否能齊心協(xié)力,是否能發(fā)揮各自的長處,小組長是否起到了應有的作用。而這些都將計入考核評價中;編程完成后,看哪個小組用的時間最短,并且編程的思路最清晰,用的方法最簡潔,程序輸入的格式最完美,有自己獨到的見解,用了一種以上的方法等等,最后綜合權衡,評出獲勝小組,并給予一定的獎勵。
(二)“小老師”考核
上機時,教師出題,給學生充分的時間思考,然后由學生自愿充當“小老師”,把編程的思想、方法一一道來,教師和其他學生根據(jù)其回答的條理性、正確性等方面為其打分,納入考核成績。
四、巧表揚,增信心
學生都以得到教師的表揚為榮,而在機房編程時,教師的表揚尤其重要。因為編程是一個細致的過程,來不得半點馬虎,一個分號忘了,都會滿盤皆輸。一節(jié)課下來,完不成一個程序更是常見的現(xiàn)象,這就會導致學生疲乏、厭煩、急躁,如果教師的表揚或者一些鼓勵性的話語適時地出現(xiàn),對學生是很大的心理安慰。
學生的語法格式總是不對的時候,教師要表現(xiàn)出極大的耐心,和他一起查看錯誤提示,并適當鼓勵學生:“你做得不錯了,只是語法上有點錯誤,再找找看是哪個地方粗心了,馬上就成功了,加油!”
學生不知該用哪種結構時,教師可以說:“你很不簡單,能把編程的方法想得如此奇妙,老師都沒想到這個方法,相信怎么用c語言的結構實現(xiàn),對你來說一定不是問題,老師相信你!”
別的小組完成,而只有一個小組未完成時,教師可以說:“別著急,你們小組合作得很好,大家都能齊心協(xié)力,你看,都完成大半了,堅持到底就是勝利!”
總之,實踐教學中的“四巧”策略確實可以培養(yǎng)學生的編程能力,改變他們對c語言的畏難情緒,讓他們愛上編程。
Strategies of Developing Students' Programming Ability in Secondary Vocational C Language Practice Teaching
DONG Ping
(Xuzhou economic and Technological Development Zone Industrial School, Xuzhou 221121, Jiangsu Province)
Abstract: For secondary vocational computer professional students, C language course is the most difficult one to learn, which is reflected in programming. Therefore, cultivating the students' programming ability is particularly important, which should focus on "four skillful strategies" in practice teaching.
Key words: secondary vocational school; C language programming teaching; programming ability cultivation