王淑霞,田麗艷,白 雪
(通化師范學院 計算機科學系,吉林 通化134002)
興趣教學法就是以直觀教學為出發(fā)點,把興趣作為教學的手段和動力,以學生為主體,培養(yǎng)學生的學習興趣,充分發(fā)揮其主觀能動性和創(chuàng)造性的一種方法[1].作為一名教師,首先要處理好“教什么”的問題,其次是如何結合教學內容,讓課堂氣氛活起來,從而有效地指導學生進行高級語言程序設計的學習.
在高級語言教學中,首先要考查學生的具體情況,依據(jù)參照教學大綱整合教學內容,精選案例,扼要講解,以案例為引導,在教學過程中引入新思想、新方法,激發(fā)學生的興趣,提高教學質量,使課堂教學成為師生雙方都樂于參與的一種充滿情趣活動.興趣教學應用到課堂教學中,既滿足了學生積極求知的心理,又使學生學會了掌握知識的方法,并能成為誘發(fā)學生學習積極性和自覺性的內部動因[2],通過“高級語言程序設計”興趣教學的嘗試性研究,筆者建立一套基于人的認知規(guī)律和好奇心理方面的“興趣教學方法”.
“興趣是最好的老師”,[3]它是求知者跨入知識殿堂的入場券.興趣是一種具有濃厚情感的志趣活動,它可以使人集中精力去獲得知識,并創(chuàng)造性地完成當前的活動.在教學過程中,一方面教師要通過情感交流,做學生的良師益友,讓學生在一種輕松愉快的環(huán)境中學習,使學生有在“玩中學,學中玩”的感覺.另一方面教師用積極肯定的語言評價和鼓勵學生,能夠使學生學習熱情高漲,學習興趣盎然,變“要我學”為“我要學”.所以教師既要做好學生的思想教育工作,又要有意識地讓學生獲得更多的成功快感,增強其學習信心,調動學習熱情,提高學習興趣.例如編寫一個數(shù)組排序的程序時,應采用“化整為零法”,將一個復雜的程序拆分成幾個小函數(shù),這幾個函數(shù)分別是數(shù)組元素賦值的函數(shù),輸出數(shù)組元素的函數(shù),排序函數(shù),最后再把這幾個函數(shù)組織起來.引導學生單獨完成每一個函數(shù),復雜的問題簡單化學生就容易接受、理解.教師再對學生的小小的成功給予肯定,就會增長學生的自信,提高學習興趣.
在高級語言程序設計中有些內容對初學者來說既抽象,又難理解.老師更應化繁為簡、化難為易,將抽象的問題簡單明了化.在教學中巧用生活實例,形象比喻的方法可使問題更容易被學生接受.例如變量間賦值的問題,結合生活中甲方把蘋果給了乙方,結果甲方?jīng)]有蘋果的實例,講解變量之間的賦值后兩個變量都有相同的值,其實變量間的賦值就是變量值的復制過程.又如學習兩個變量交換值時[4],由于受到生活中甲乙兩人交換禮物不需要第三人參與的影響,對于為什么要借助于第三變量?學生有些糊涂,可以向學生做一個形象比喻,一瓶醋,一瓶醬油,如何實現(xiàn)兩瓶液體要互換?學生馬上可以想到借助于第三個瓶子,通過以上的形象比喻,學生容易接受,就會牢牢記住這個知識點,培養(yǎng)學生的學習興趣.
對于高級語言程序設計課程中(以C語言為例),printf()函數(shù)輸出項右結合和變量存儲的問題[5],變量在內存中的存儲學生看不見又摸不著,非常抽象,不容易理解,在講解這部分內容時,可利用圖例來引出變量在內存中的存儲和printf()函數(shù)執(zhí)行過程中如何使用棧等更深層的知識.筆者通過以下例題,將抽象的問題圖例化,學生易于接受.
例long a=65536;
printf(“%d ”,a,); /*輸出結果為0*/
printf(“%8ld ”,a); /*輸出結果為65536*/
而printf(“%d,%8ld ”,a, a); 的輸出結果是什么?
首先,考慮長整型變量a在內存中的存儲如圖1所示.
圖1 變量a的存儲形式
對于printf(“%d,%8ld ”,a,a);的輸出結果,大多數(shù)認為結果是0,65536,但執(zhí)行結果為0,1,結果不一致,導致這種情況的原因是什么呢?還要從printf()函數(shù)的構成著手,printf()函數(shù)的輸出項在內存中是用棧存放的,如圖2所示.而%d的執(zhí)行讓位于棧頂?shù)氖幌瘸鰲?,如圖3所示,出棧的數(shù)據(jù)是0000 0000 0000 0000,這部分的值轉換為十進數(shù)輸出恰好是0.當執(zhí)行%8ld的時候位于棧頂?shù)娜幌瘸鰲#?如圖4所示,出棧的數(shù)據(jù)是0000 0000 0000 0000 0000 0000 0000 0001,這部分的值轉換為十進數(shù)輸出恰好是1.剩余的數(shù)據(jù)仍然保留在棧中.圖2-圖4形象的描述了printf()函數(shù)的執(zhí)行過程,有效的利用棧來實現(xiàn)函數(shù)功能.不但挖掘出printf()函數(shù)更深層的知識,為以后學習《數(shù)據(jù)結構》課程打下基礎,還能誘導學生深層次學習的興趣.
圖2 兩個輸出項入棧 圖3 %d輸出項出棧 圖4 %ld輸出項出棧
在教學過程中,發(fā)現(xiàn)有些學生對教材上知識點感覺枯燥無味,沒有興趣,但對生活中的事例卻熱情很高.因此,教師要打破從概念講解的傳統(tǒng)教學方式,先從一個趣味實例做起.在解決問題的過程中,讓同學們自己在實例中體會一些概念,引發(fā)對知識點的思考,在時機成熟時再和學生一起歸納總結,在課堂教學中采用了自然過渡、類比等教學方法.例如講解什么是“循環(huán)嵌套”,什么是外層循環(huán),什么是內層循環(huán)[6]時,可以很形象的用分針與秒針的關系來解釋,分針動一下,秒針需要轉一周,來解釋外層改變一次,內層需要改變一整圈.再給出一個平行四邊形(如圖5所示),一起寫出它的算法(如圖6所示)并執(zhí)行,讓學生看到運行結果,激發(fā)學生的興趣,這時再講解循環(huán)嵌套的執(zhí)行過程和一些知識點就很容易接受了.
圖5 平行四邊形 圖6 平行四邊形算法
圖7 三角形 圖8 菱形圖 9漏斗形
在平行四邊形實現(xiàn)后,接下來以此事件展開三角形、菱形、漏斗形(圖7-圖9)的實現(xiàn).可以留出十分鐘時間,讓學生通過思考,找出共性的問題是外層循環(huán)控制行,兩個內層循環(huán)一個控制空格的輸出,一個內層循環(huán)控制星號的輸出.不同點是圖形中空格的個數(shù)和星號的個數(shù)不同且與行號有關.最后,由教師進行算法分析并引導學生編寫程序.實踐證明,在課堂教學中,時刻注意從生活中選取與課堂內容相關的趣味題型展開教學,比直接講解概念更容易激發(fā)學生的興趣,通過趣味題型也可以加強學生對概念的理解.在整個教學過程中,先不用提出“循環(huán)嵌套”的作用,而是讓學生在完成以上趣味題型過程中,慢慢地體會出什么是外層循環(huán),什么是內層循環(huán)等.最后由教師對知識點做歸納總結.由此可見,教學過程中以學生為主,課堂氣氛活躍,一切問題就迎刃而解了.
筆者將興趣教學方法應用到計算機科學與技術和信息管理專業(yè)的高級語言程序設計教學中,充分利用高級語言的特點,從學習興趣入手,引導學生走上實用高效的學習之路,進入良性的學習狀態(tài),結果表明學生的綜合素質提到了全面的提高,多名學生在ACM程序設計大賽中獲獎.
[1]Willis J.A Framework of task2based learning[M].Longman,1996.
[2]Skehan P.Cognitive app roach to language learning[M].Oxford University Press, 1998.
[3]欒好利,楊政.基于興趣的“程序設計基礎”課程教學策略的研究與實踐[J].計算機教育2008(1)
[4]譚浩強.C語言程序設計[M].北京:清華大學出版社,2005.
[5]顧元剛.C語言程序設計[M].北京:機械工業(yè)出版社,2004.
[6]吳文虎.程序設計基礎[M].北京:清華大學出版社,2003.