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