在算法與程序設計課程中,程序設計對一些初學者來說,入門是非常重要的一個環節。如果直接講授,學生可能很難吸收,無法理解。如何提起學生的興趣,活躍課堂氣氛呢?在程序設計教學實踐中,筆者覺得,如果將新的教學內容與熟悉的事物進行類比,就能夠形象、生動地讓學生理解,達到事半功倍的教學效果。
變量的定義與使用
程序設計教學的難點就是對抽象理論概念的理解。這些內容如果只憑老師反復講述,教學效果普遍比較差。而類比等教學法的應用,能夠使抽象的知識變得形象化、趣味化。
例如,在程序設計中,定義變量與使用變量幾乎是必不可少的,但由于有些語言編譯器不夠嚴謹,導致在使用變量的時候,即使不定義變量,編譯的時候一樣能夠順利通過,所以絕大多數同學選擇不定義變量。
定義變量a為整形變量,語句為:dim a as integer。
類比——旅館住宿:服務臺手續→服務員分配房間→住進房間。
變量定義和使用:定義變量→分配存儲單→使用變量。
通過上面的類比方法讓學生知道,變量必須先定義后使用。也就是說定義了變量a(服務臺給了房間號)表示系統中已經有了這個存儲單元(房間),然后就可以利用這個變量來存儲數據了(住宿)。學生一下子就明白了,變量在使用的時候必須定義。
程序設計的三種基本結構的類比
程序設計包括順序結構、選擇結構、循環結構等三種基本結構。要學好程序設計,這三種基本結構必須掌握好。
把順序結構與穿衣服順序進行類比 穿衣服是先穿內衣,再穿外衣,不能交換順序。順序結構:一組按書寫順序執行的語句。同學們理解了,順序結構程序按書寫順序從上到下,每個語句都要執行。
例:交換兩個變量的值。
Private sub exchange_click( )
Dim A as integer
Dim B as integer
Dim C as integer
A=inputbox(“please input A’ value”)
B=inputbox(“please input B’ value”)
Print “before exchange:”;“A=”;A,“B=”;B
C=A
A=B
B=C
Print “after exchange:”;“A=”;A,“B=”;B
End sub
與此同時總結出程序的一般結構為三大塊:輸入——處理——輸出。
把選擇結構與“魚和熊掌不能兼得”進行類比 魚和熊掌不能兼得,二者只能選其一。選擇結構:能根據運行時的情況自動選擇執行的語句組。這個類比法主要是讓學生明白選擇結構并不是所有的語句組均要執行,而是根據情況選擇一組語句執行。
例:輸入三個數,輸出最大者。
Private sub largerst_click( )
Dim A as integer
Dim B as integer
Dim C as integer
Dim max as integer
A=inputbox(“please input A’ value”)
B=inputbox(“please input B’ value”)
C=inputbox(“please input C’ value”)
If A>B then max=A else max=B
If C>max then max=C
Print “the largest numbet is”; max
End sub
把循環結構與天平稱砝碼進行類比(以for循環為例) 用天平稱物體的質量,要不停地加砝碼直到天平平衡后不加。循環結構:重復地執行某些語句組,循環從初值循環到終值,結束循環。
例:FOR<循環變量>=初值TO<終值>STEP步長
當步長為正值時,我們可以類比為在不停地加砝碼,直到天平平衡,結束循環。
當步長為零時,我們可以類比為不加砝碼,因為天平永遠不可能平衡,所以就會變為死循環。
當步長為負值時,我們可以類比為物體測量結束了,要先拿掉物體之后,再從天平上取砝碼,同樣也是以取完砝碼且天平平衡作為結束循環的條件。
用采購流程來類比遞歸思想
在程序設計中遞歸思想往往是教學過程中最難讓學生掌握的一個知識點。一是比較抽象,二是學生沒有辦法想象是用堆棧原理來實現的。為了讓大家理解遞歸的思想,筆者用購物流程來類比。因此,在教學活動中,采用類比的教學方法,可以收到良好的效果。在學習程序設計這樣枯燥的課程時,只要例子舉的妥當,學生感興趣,在例子中摸索,教師再把例子進一步升華,學生必然能很好地掌握這些難點。心理學研究表明,好奇心、求知欲和創造力是緊密聯系的。嘗試用類比的方式來剖析計算機教學中的抽象概念,對提高教學效果,增強學生學習的興趣,必然行之有效。
(作者單位:江蘇省蘇州市吳江區盛澤第二中學)