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