程佑寅
摘要:初中階段的信息技術(shù)課程越來越強(qiáng)調(diào)程序設(shè)計和計算思維,然而這一學(xué)段的程序設(shè)計課程中不少概念、算法較為抽象難懂。如果將“比喻教學(xué)法”應(yīng)用到程序設(shè)計課程中,就可以幫助學(xué)生更好地理解新學(xué)知識,激發(fā)學(xué)習(xí)的興趣,提高教學(xué)效果。
關(guān)鍵詞:程序設(shè)計教學(xué);比喻教學(xué)法; 應(yīng)用案例
中圖分類號:G632 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-9094(2017)02B-0098-03
一、問題的提出
程序設(shè)計是信息技術(shù)教育的傳統(tǒng)內(nèi)容?!痘A(chǔ)教育信息技術(shù)課程標(biāo)準(zhǔn)(2012版)》中,小學(xué)、初中和高中三個學(xué)段均包含了算法與程序設(shè)計的內(nèi)容,江蘇省最新版的初中信息技術(shù)教材中的“程序設(shè)計”部分,也從以前的九年級選修內(nèi)容調(diào)整到八年級下學(xué)期的必修內(nèi)容。讓學(xué)生體驗程序設(shè)計思想和算法思維,是初中階段程序設(shè)計教學(xué)的重要目標(biāo)。
蘇教版八年級信息技術(shù)教材中,選用高級程序設(shè)計語言VisualBasic進(jìn)行教學(xué)。很多初次接觸到程序設(shè)計的學(xué)生對于設(shè)計計算機(jī)程序非常感興趣,但是每當(dāng)學(xué)習(xí)到諸如數(shù)據(jù)類型、算法等基礎(chǔ)知識時,課堂反應(yīng)和學(xué)習(xí)效果往往不盡理想。不少學(xué)生認(rèn)為這些概念和算法過于抽象,教材上對這些概念的解釋晦澀難懂,一定程度上影響了學(xué)習(xí)的信心與學(xué)習(xí)的效果。
如何讓“曲高和寡”的程序設(shè)計知識更加通俗易懂,引領(lǐng)學(xué)生更好、更快地掌握這些概念和算法?這是一線的信息技術(shù)教師研究的熱點和難點。我們嘗試使用“比喻法”進(jìn)行教學(xué),收到了良好的成效。
二、比喻教學(xué)法在初中程序設(shè)計課程中的應(yīng)用
比喻就是“打比方”,即根據(jù)事物之間的相似點,把某一事物比作另一事物,把抽象的事物變得具體,把深奧的道理變得淺顯。比喻教學(xué)法,就是在教學(xué)過程中通過打比方的方法,將兩個本質(zhì)不同但又有相似點的事物建立起聯(lián)系,使抽象的概念和理論知識更為生動、淺顯易懂,以進(jìn)一步激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的有意和無意注意力,增強(qiáng)教學(xué)的效果。
1.用比喻解釋程序設(shè)計的基礎(chǔ)概念
程序設(shè)計課程的難點之一在于基礎(chǔ)概念較多且較難理解,例如常量、變量、數(shù)據(jù)類型等等。對此,我們在教學(xué)中一般采用比喻的方法幫助學(xué)生理解這些抽象的概念。
我們把“變量”比喻成橡皮泥。因為變量是在程序中值會發(fā)生變化的量,就像學(xué)生經(jīng)常把玩的橡皮泥一樣——它們是會變的。例如語句LET A=1:LET A=3:LET A=5:PRINT A,這段程序的作用是在給變量A進(jìn)行多次賦值,變量A的值從1變成了3,最后變量A的值是5。這個過程就好像學(xué)生把玩橡皮泥:先捏成圓形,再捏成長條形,最后捏成方塊形,橡皮泥最后的形狀是由最后一次塑型決定的,這恰好與一個變量多次賦值之后,值是由最后一次賦值的內(nèi)容決定的一樣。
而在介紹“常量”這一概念時,我們通常會把它比喻成一塊堅硬的石頭。因為在不破壞石頭原有結(jié)構(gòu)的情況下(比如打碎或融化),石頭的形狀是不會發(fā)生改變的。而常量便是在程序中值不會發(fā)生變化的量,“不會發(fā)生改變”就是石頭和常量的共同點,所以石頭可以作為常量的比喻對象。
2.用比喻區(qū)分IF語句的三種格式
在講解分支語句時,我們通常要介紹三種不同形式的分支語句,即:
(1)完整的行IF語句:IF<判斷條件> THEN <語句1>ELSE<語句2>
(2)不完整的行IF語句:IF<判斷條件> THEN<語句1>
(3)塊IF語句:
IF <判斷條件> THEN
<語句組1>
ELSE
<語句組2>
END IF
這三種不同格式的IF語句各有特點,且書寫格式不盡相同,很容易出錯。
在學(xué)習(xí)了完整的行IF語句之后,學(xué)生要學(xué)習(xí)沒有ELSE <語句2>的不完整行IF語句。我們會用小壁虎的尾巴作比喻,即小壁虎的尾巴有時候會斷掉,但是不會死。這是因為在某些情況下,程序只需要在滿足條件之后執(zhí)行<語句1>,而對于不滿足判斷條件的情況時,程序不做任何改變,所以可以不用后半部分的ELSE <語句2>,程序也能正確運(yùn)行。這樣不完整的行IF語句和斷尾的小壁虎一樣依然可以正常生存。
在講解完整的行IF語句和塊IF語句的區(qū)別時,我們通常將之比喻為一杯水倒在寬口的大燒杯中與倒在細(xì)長的試管里,水面的高度是有區(qū)別的。這是因為行IF語句是把判斷條件、語句1、語句2寫在一行,這樣在視覺上看IF語句會顯得“寬而扁”;而塊IF的格式則是將判斷條件、語句組1、語句組2分別寫在不同行上,并且要在最后加上END IF作結(jié)尾,這樣的IF語句在視覺上看則會顯得“窄而高”。需要強(qiáng)調(diào)的是,塊IF語句和完整的行IF語句的作用是一樣的,只不過書寫格式不同而已,當(dāng)然,塊IF語句更適合于多語句組的情況。
3.用比喻揭示初級算法的執(zhí)行過程
講解如何在三個數(shù)中找到最大數(shù)時,我們會把計算機(jī)的“兩兩比較”過程比喻成“三個學(xué)生打擂臺”:首先選擇一個學(xué)生作為擂主,第二位學(xué)生上場打擂(例如比身高),如果打擂成功則擂主換成第二位同學(xué),否則擂主不變;最后,第三位學(xué)生上場和擂主打擂,如果打擂成功,則擂主換成第三位同學(xué),否則擂主不變。經(jīng)過兩次打擂之后,擂主就是要找的人。可以用如下程序表示這一過程:
DIM AS INTEGER A,B,C,MAX ‘定義變量A,B,C,MAX
INPUT A,B,C ‘從鍵盤輸入A,B,C的值
MAX=A ‘把A設(shè)為擂主
IF B>MAX THEN MAX=B ‘B打擂,如果成功則擂主變成B
IF C>MAX THEN MAX=C ‘C打擂,如果成功則擂主變成C
PRINT MAX ‘打印擂主
SLEEP:END ‘結(jié)束
在講授“打擂臺”算法時,我們還可以請三位學(xué)生親身示范打擂的過程,這樣,可以更好地幫助他們理解和熟悉計算機(jī)算法的執(zhí)行過程,算法思維也在游戲的過程中得到了進(jìn)一步的內(nèi)化。
三、在程序設(shè)計課堂上運(yùn)用比喻教學(xué)法的注意點
上述只是本人在教學(xué)過程中運(yùn)用“打比方”的個別例子,在初中程序設(shè)計課程中還有很多問題,可以拿現(xiàn)實生活中的例子去形象地講解。當(dāng)然,打比方要打得好,如果比方打得不好,或者說打得不恰當(dāng),那就起不到幫助學(xué)生理解疑難問題的目的了。
1.比喻不能“喧賓奪主”
所有的教學(xué)手段都是服務(wù)于課堂教學(xué)的,比喻教學(xué)法也不例外。對于一些晦澀難懂的概念,我們可以借助比喻,讓學(xué)生更好地理解抽象的概念。但是,并不是所有的知識點都是抽象的,或者都可以找到合適的比喻。如果比喻過多過濫,往往會浪費(fèi)寶貴的課堂時間,增加學(xué)生理解比喻的難度,從而偏離服務(wù)課堂的主旨。我們不能無視教材中對于程序設(shè)計基礎(chǔ)概念和算法的經(jīng)典描述,對于這些,初學(xué)時可能難懂,但是當(dāng)學(xué)生通過比喻法理解了之后,便要重新回歸理性,將感性的、具體的知識內(nèi)化為理性的、嚴(yán)謹(jǐn)?shù)母拍?,這樣才更加符合程序設(shè)計的學(xué)科特點。
2.喻體要常見易懂
試想一下,如果我們將一個抽象的概念比喻成另一個學(xué)生不熟悉或者很少見的事物時,學(xué)生能很好地理解這個概念么?答案無疑是否定的。比喻法就是要讓學(xué)生形成知識的正向遷移,學(xué)生首先要熟悉比喻物是什么,然后才能將比喻物的知識結(jié)構(gòu)遷移到抽象的概念之中,在腦海中構(gòu)建起自己對于新知識的理解。教師要選擇學(xué)生“耳熟能詳”的常見實物作為比喻的對象,這樣才能便于學(xué)生更好、更快地掌握這些概念。
3.喻體要特征鮮明
教師要對比喻對象和被比喻對象的特點進(jìn)行認(rèn)真概括,找到它們的相似點,引領(lǐng)學(xué)生通過這些相似點搭建一座“知識橋”,更好地理解新概念。如果在教學(xué)時隨意打比方,在比喻對象和被比喻對象之間“生拉硬拽”,學(xué)生找不到兩者的相似點,反而會越學(xué)越糊涂。
責(zé)任編輯:宣麗華