摘 要: 《C語言程序設計》在中職計算機專業課程中起著舉足輕重的作用,職業學校的學生素質偏差,學生理解、接受能力較低,倘若教師的教學方法不能很好地吸引學生,勢必會造成學生厭學的情緒,使教學陷入困境。
關鍵詞: 中職計算機專業 《C語言程序設計》 教學方法
《C語言程序設計》在中職計算機專業專業課程中起著舉足輕重的作用,也是對口高考技能考核和理論考試的必考科目。學生素質偏差是中職學校普遍存在的共性,由于學生素質一般不高,學習興趣不濃,學習態度不端正,學習目的不明確,再加上學生剛剛接觸計算機語言類的專業課,該課程本身難度較大,枯燥無味,又存在傳統教學的弊端,教學設施設備落后,這些因素造成學生學習困難,沒有興趣去學,甚至有些學生望而生怯,不愿意去學;教師上課也無精打采,照本宣課,課堂氛圍死氣沉沉,教學效率不高,教學質量上不去,使教學陷入困境。如何使教師的教與學生的學走出誤區,已成為當務之急。
一、培養學習興趣,提高學生的學習積極性
愛因斯坦曾經說過:“興趣是最好的老師。”一些老師往往不注重學生興趣的培養,在第一課簡單介紹完自己后就步入正題,開始按部就班地教學了,認為早點讓學生接觸本課程的相關基礎知識,可為后面緊張的學習爭取時間。其實不然,中職學生素質不高,學習興趣不濃,甚至有厭學情緒,如果一開始就講授課本知識,容易使本就厭倦學習的學生產生抵觸情緒,從而為后面的教學帶來諸多不利因素。
教師首先應想方設法調動學生的學習積極性,不要急著去講解書本知識,把學生學習積極性調動起來,讓學生感覺學習C語言程序好玩,把C語言的研發當成一種游戲,產生強烈的求知欲望,進而挖掘出巨大的學習潛能。
其次在C語言教學中應多采用通俗易懂的例子,避免抽象問題挫傷學生學習積極性。比如在講解兩個變量值互換時,很多學生采用數學中的解法:A=B,B=A,不理解為什么要引入中間變量C,使用C=A;A=B;B=C語句。[1]此時教師如果用生活中看得見摸得著的實物來比喻,學生就很容易理解了。假設A和B兩個盒子里分別放滿白色粉筆和彩色粉筆,現要求在不借助第三方載體的情況下將兩盒粉筆交換,請同學演示,能否成功?如果再拿一個空盒子來并允許使用第三個空盒,能否成功?由此得出必須借助第三個盒子,才能交換成功。這樣學生理解起來就容易多了。
二、重新整合教學內容,分類匯總
教材一般先介紹數據類型、表達式、算法、函數等抽象難懂的C語言基本概念,然后才介紹程序的編輯和運行。如何利用現有資源重新整合教學內容打破教材原有的順序章節,將各知識點按先分類后匯總的原則重新組織?這就要求教師對整本教材的內容非常熟悉,能前后照應、融會貫通,而不是為了上課而上課,照本宣課,不能盡信書,也不能無書,這樣會取得更好的教學效果。例如在講解命名規則時,老師可以把變量和數組放在一起,使學生感覺到知識間的關聯,記住了一個,另一個也記住了,提高學習效益。再如利用C語言把一系列雜亂無章的數據按照一定順序排列,此時我們可以把順序法、選擇法、冒泡法放在一起,讓學生能直觀地看出各種方法的區別,舉一反三,有利于加深對知識的理解。
如學習循環結構時,舉例:sum=1+2+3+4+5+…+n;讓學生建立兩個概念:裝和的變量sum(初值為0),表達式:sum=sum+n;例題變化:p=1*2*3*4*5*…*n;裝乘積的變量p(初值為1),表達式:p=p*n;深化例題:s=1!+2!+3!+4!+5!+…+n!;引導學生分析并發現這是前兩個循環的合并,得出循環體語句:p=p*n,s=s+p,[2][3]使學生掌握一題多變的思維模式,舉一反三、觸類旁通。
三、改變傳統單一的教學方法
C語言和其他計算機專業課不同,它要求初學者要具備較好的數學和英語基本功,而數學和英語是職業中學學生普遍感到頭疼的“老大難”課程。針對這種現狀,我們要根據學科間的聯系,以及學生的個性差異因材施教,要改變過去單一、乏味的以教師講為主的傳統教學方法,采用適應時代需求的符合學生客觀規律的“項目教學”、“自主學習”、“任務驅動”、“案例學習”、“合作學習”[4]等多種方法。
例如:輸入5個學生的3門課程成績,求每個學生的平均成績和每門課程的平均成績。學生拿到題目感覺無從下手,我把題目拆分成兩個任務:1.求每個學生的平均成績;2.求每門課程的平均成績。再將學生分成A、B兩組,分別將任務1交給A組學生完成,將任務2交給B組學生完成。這樣學生感覺輕松多了,輕而易舉地完成了各自的任務。最后我把兩個任務再組合在一起,此題就迎刃而解了。在教學過程中我改變了過去一個人講的傳統教學方式,采用項目教學和合作學習相結合的復合法使問題得以解決,學生對二維數組有了進一步的認識,加深了理解。
求學生平均成績程序段如下:
For(i=0;i<5;i++)
Aves[i]=0
For(j=0;j<3;j++)
Aves[i]+=scor[i][j];
Aves[i]/=3;
求課程平均成績程序段如下:
For(i=0;i<3;i++)
Aves[i]=0
For(j=0;j<5;i++)
Aves[i]+=scor[i][j];
Aves[i]/=5;
C語言程序設計課程本身要求培養學生的動手能力和綜合運用知識解決實際問題的能力,這就要求學生要多動手上機練習。教師要采用多媒體技術,多形式地運用教學方法激發學生的學習興趣,引導學生的發散性思維的形成。例如:打印楊輝三角形,由于學生對楊輝三角形不了解,教師可以借用Flash動畫形象地打印出楊輝三角形,幫助學生找出其中的規律:第一列的數都是1,各行最后一個數也是1,從第3行第2個數起,為上行同列數與前一列數之和,例:a[i][j]=a[i-1][j-1]+a[i-1][j];(i>=3,j>=2)。教師借助動畫,可使得原本抽象難懂的概念變成形象直觀的動態模型,為學生在練習的過程中發現問題、探討問題、解決問題,積累豐富的經驗,使學生體會到成功的喜悅。
只要我們能從學生的實際出發,充分調動學生的學習積極性,運用科學有效的適應時代要求的教學方法,就一定能使學生學好這門課程。
參考文獻:
[1]林東,陳琳.編程語言基礎——C語言.高等教育出版社,2006.6,(2).
[2]黃煜編.程序設計語言課程教學方法探討.山西農業大學學報,2006,(1).
[3]譚浩強.C程序設計題解與上機指導.清華大學出版社,2000.9,(2).
[4]王吉慶.信息技術課程與教學論.浙江教育出版社,2003.8.