歐群雍
(鄭州華信學(xué)院,河南 鄭州 424204)
大多數(shù)高等院校都在計(jì)算機(jī)專業(yè)和非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)教學(xué)設(shè)置了高級(jí)語言程序設(shè)計(jì)課程.在多數(shù)情況下,高級(jí)語言程序設(shè)計(jì)類課程在計(jì)算機(jī)專業(yè)設(shè)置為專業(yè)基礎(chǔ)課或?qū)I(yè)課,在非計(jì)算機(jī)專業(yè)設(shè)置為公共基礎(chǔ)課,高級(jí)語言程序設(shè)計(jì)類課程能很好地培養(yǎng)和考察學(xué)生思辨能力、數(shù)學(xué)解題能力、計(jì)劃統(tǒng)籌能力等多方面綜合能力.在計(jì)算機(jī)相關(guān)專業(yè),高級(jí)語言程序設(shè)計(jì)類課程被視為學(xué)生不得不學(xué)的專業(yè)基礎(chǔ)課,通過對(duì)該類課程的學(xué)習(xí),讓計(jì)算機(jī)專業(yè)的學(xué)生掌握開發(fā)環(huán)境的使用、程序的編寫、程序的調(diào)試以及程序設(shè)計(jì)的基本方法和技巧,并學(xué)生具備運(yùn)用程序設(shè)計(jì)解決相關(guān)專業(yè)領(lǐng)域內(nèi)實(shí)際問題的基本能力,同時(shí)也為其他課程如《數(shù)據(jù)結(jié)構(gòu)與算法》、《操作系統(tǒng)》等提供知識(shí)基礎(chǔ).
由于高級(jí)語言抽象性、靈活性、邏輯性強(qiáng)等特點(diǎn),給程序設(shè)計(jì)類課程的教學(xué)帶來很大的困難.從教學(xué)角度來說,高級(jí)語言程序設(shè)計(jì)類課程具有以下特點(diǎn):
在程序設(shè)計(jì)的教學(xué)中,學(xué)生面對(duì)的是一大堆語言符號(hào),需要記憶內(nèi)容過多,學(xué)習(xí)起來較枯燥.在教學(xué)過程中,教師也經(jīng)常對(duì)語法、語句進(jìn)行講解,在黑板上或多媒體屏幕上展示大段大段的代碼,學(xué)生對(duì)于這些符號(hào)難以理解,或者難以跟上老師的思路,讓學(xué)生感覺這類課程很枯燥,學(xué)習(xí)起來很困難.
高級(jí)語言雖然比匯編語言好學(xué)得多,也比較接近于自然語言,但它們畢竟是一種程序語言,邏輯性很強(qiáng),學(xué)生需要了解計(jì)算機(jī)的工作原理,站在計(jì)算機(jī)的角度上去思考問題,用計(jì)算機(jī)語言來表達(dá)自己的思想,這種思維方式常常難以轉(zhuǎn)變,給學(xué)生帶來很大的苦惱.學(xué)生常常感覺理解相應(yīng)的知識(shí)點(diǎn)(語法)并不困難,聽老師講解例題時(shí)也容易明白,但真正來解決實(shí)際問題時(shí),有相當(dāng)一部分學(xué)生感到用自然語言能輕松的表達(dá)自己的思路,但要用高級(jí)語言寫出來卻無從下手無從下手,覺得問題太難,無法解決.
學(xué)生對(duì)于課本上和老師講的例子容易理解,但是換種題型學(xué)生就不能夠靈活應(yīng)用所教授的方法,不會(huì)舉一反三.筆者認(rèn)為這情況主要基于以下原因,一是學(xué)生沒有很好理解老師所教授的方法和知識(shí)點(diǎn),二是學(xué)生沒有對(duì)所學(xué)的知識(shí)點(diǎn)進(jìn)行總結(jié)歸納,三是學(xué)生實(shí)踐少,沒有對(duì)教授的方法進(jìn)行反復(fù)練習(xí),四是教師教學(xué)手段僵硬老化,沒有很好地引導(dǎo)學(xué)生進(jìn)行思考總結(jié).
由于高級(jí)語言程序設(shè)計(jì)類課程具有上述特點(diǎn),再加上很多學(xué)生的學(xué)習(xí)能力較差,課后不肯花時(shí)間,導(dǎo)致學(xué)生聽不懂,老師失去信心,給高級(jí)語言程序設(shè)計(jì)類課程的教學(xué)帶來一定的難度.采用有效的教學(xué)進(jìn)行教學(xué)就成為高級(jí)語言程序設(shè)計(jì)類課程教學(xué)的一個(gè)關(guān)鍵.
比喻就是“打比方”,根據(jù)事物之間的相似點(diǎn),把某一事物比作另一事物,把抽象的事物變得具體,把深?yuàn)W的道理變得淺顯.用比喻法描寫事物,可使事物形象鮮明生動(dòng),給人深刻的印象;用來說明道理,能使道理通俗易懂,使人易于理解.比喻教學(xué)法就是把比喻用到教學(xué)中,即在教學(xué)過程中通過打比方的方法,將兩個(gè)本質(zhì)不同但又有相似點(diǎn)的事物建立聯(lián)系,使抽象的概念和理論知識(shí)講得生動(dòng)、淺顯易懂,達(dá)到讓學(xué)生更好地認(rèn)識(shí)新事物的目的,激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的有意和無意注意力,活躍課堂氣氛,大大提高教學(xué)效果.
由于高級(jí)語言程序設(shè)計(jì)類課程比較枯燥、抽象、不易理解和掌握,給學(xué)生學(xué)習(xí)帶來困惑,直接影響學(xué)生的學(xué)習(xí)這方面課程的信心.如果使用比喻教學(xué)法可以讓該課程變得生動(dòng)有趣,調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,幫助學(xué)生快速理解掌握相關(guān)知識(shí)點(diǎn).以下是高級(jí)語言程序設(shè)計(jì)課程中的部分知識(shí)點(diǎn)的應(yīng)用舉例.
當(dāng)我們講到變量這一知識(shí)點(diǎn)時(shí),可以把變量比喻成裝東西的桶,我們根據(jù)東西的多少選擇不同大小的桶.如果東西較少卻選擇較大的桶就存在浪費(fèi),相反,如果東西較多卻選擇較小的桶就裝不下,就會(huì)溢出,以此讓學(xué)生理解變量的定義,并讓學(xué)生知道要根據(jù)存儲(chǔ)數(shù)據(jù)的大小來選擇類型合適的變量.
變量的賦值就相當(dāng)于往桶里裝東西,如果第一次裝東西直接裝進(jìn)去就行了,如果已經(jīng)裝了東西要換裝成其他的東西,就得把原來的東西倒掉再裝另外的東西(即把原來的值覆蓋掉),如果要在桶里已有東西的基礎(chǔ)上增加或減少一些東西,就得先取出桶里面的東西加上或減去要增加或減少的東西再放到該桶里.
講到數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換時(shí)我們可以這樣比喻:把小桶里的東西倒到大桶里好辦,直接倒進(jìn)去就行了,不會(huì)丟失不會(huì)溢出,但把大桶里的東西倒到小桶里就麻煩了,得考慮會(huì)不會(huì)溢出,所以這個(gè)時(shí)候就得考慮強(qiáng)制轉(zhuǎn)換的問題.
兩個(gè)變量的值進(jìn)行交換也是常用的,我們可以通過以下比喻幫助學(xué)生理解:要交換A B兩個(gè)桶里的東西,就得借助第三只桶C,先把A桶里的東西倒到C桶,再把B桶里的東西倒到A桶,最后把C桶里的東西倒到B桶,即完成了A B兩個(gè)桶里的東西交換.
程序設(shè)計(jì)的三種結(jié)構(gòu)也可以找到很多很多的比喻.對(duì)于順序結(jié)構(gòu)我們可以比喻成人的一生經(jīng)歷、人一天的活動(dòng)、完成一件事的過程等等.人們從早上起床開始到晚上睡覺結(jié)束的一天活動(dòng)中經(jīng)歷許許多多的事情,這些事情常常是順序進(jìn)行的,如早上起床,然后晨練、洗漱、做早餐、吃早餐、完成上午的工作、做午餐、吃午餐、完成下午的工作、做晚餐、吃晚餐、散步、洗漱、上床休息等,這些都是順序進(jìn)行的.
順著這個(gè)比喻講下去,如果天氣不好就在室內(nèi)活動(dòng),否則的到室外鍛煉,如果時(shí)間是周一到周五上午或下午就去上班,否則在家休息,這些就是分支結(jié)構(gòu)了.多分支結(jié)構(gòu)就好比我們走到一個(gè)十字路口,我們走那個(gè)方向取決于我們的目的地,根據(jù)目的地這個(gè)變量的值來確定前進(jìn)的方向.
我們晨練時(shí)在田徑場(chǎng)上跑步,不累的話跑了一圈又一圈,循環(huán)往復(fù)的跑,直到累了為止,這就是循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)的特點(diǎn)是如果滿足條件(不累)則重復(fù)執(zhí)行(跑了一圈又一圈),不滿足條件(累了)則停止執(zhí)行.多重循環(huán)就像鐘表里面的指針,分針每走一格秒針得走60格,分針走60格秒針共走60×60格,這是典型的兩重循環(huán),即外層執(zhí)行一次,內(nèi)層執(zhí)行多次.同樣,時(shí)針每走一格分針就得走60格,秒針共走60×60格,如果時(shí)針走60格分針得共走60×60格,秒針就得共走60×60×60格,這就是三重循環(huán).多重循環(huán)也可比喻成大小齒輪的關(guān)系.
遞歸可以比喻成某些公司里辦理事情的過程,董事長(zhǎng)把事情交給總經(jīng)理辦理,總經(jīng)理很忙,他交給部門經(jīng)理,部門經(jīng)理又交給下一級(jí)負(fù)責(zé)人,一直交到處理此事的人,處理此事的人處理此事后上報(bào)給他的上級(jí),他的上級(jí)加上他自己的人思想后再上報(bào)給上一級(jí)領(lǐng)導(dǎo),這樣每級(jí)接收下一級(jí)反饋結(jié)果再加上自己的思想后逐級(jí)上報(bào),一直上報(bào)到董事長(zhǎng),整個(gè)事件處理結(jié)束.從這個(gè)比喻中可以看出遞歸分為兩部分,一部分是逐級(jí)往下調(diào)用、處理后再逐級(jí)往上反饋的過程,即遞歸調(diào)用部分,另一部分是處理此事的人處理的過程,即遞歸結(jié)束條件.
運(yùn)用比喻教學(xué)法要注意幾個(gè)問題:
(1)使用比喻要為教學(xué)服務(wù),不要為比喻而比喻.對(duì)于一些比較淺顯的學(xué)生一看就懂的知識(shí),就沒必要使用比喻,否則,不僅浪費(fèi)上課時(shí)間,也給學(xué)生增加了理解比喻的負(fù)擔(dān).
(2)用作比喻的事物應(yīng)當(dāng)是為大家常見的、熟悉的、具體的、淺顯易懂的,這樣才能既通俗又生動(dòng)地說明另一個(gè)事物.如果用作比喻的事物是學(xué)生不熟悉的,學(xué)生難以理解用作比喻的事物,更別說理解被比喻的事物了,這樣不但沒有幫助學(xué)生理解所學(xué)知識(shí),而且增加了學(xué)生的負(fù)擔(dān),這樣的比喻是達(dá)不到目的的.
(3)比喻應(yīng)當(dāng)貼切、自然,要能恰到好處地說明被比喻事物的特點(diǎn).必須對(duì)用作比喻的事物和被比喻的事物的共同點(diǎn)做認(rèn)真的概括,找到這些事物的相似性,可以讓學(xué)生通過用作比喻的事物很快就理解被比喻的事物,這樣才能達(dá)到比喻的目的.如果信手拈來,不能很好的反映他們的共同特點(diǎn),沒法讓學(xué)生由此及彼的聯(lián)想,這樣的比喻還不如不用.
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2012年22期