張付林
計(jì)算機(jī)程序語言和算法是一門抽象、難學(xué)的課程。在中職計(jì)算機(jī)語言教學(xué)中,正確使用直觀性教學(xué)方法,可以激發(fā)學(xué)生的學(xué)習(xí)興趣,提高教學(xué)效果。建構(gòu)主義認(rèn)為,學(xué)習(xí)總是與一定的情境相聯(lián)系的,在適當(dāng)?shù)那榫持?,學(xué)生通過直接觀察的生動(dòng)實(shí)際現(xiàn)象或者親身參與,更容易完成知識(shí)建構(gòu),并且能夠在大腦中能形成極其深刻印象。
計(jì)算機(jī)語言程序設(shè)計(jì)和算法有著較強(qiáng)的邏輯性和結(jié)構(gòu)性,需要學(xué)習(xí)者有較扎實(shí)的數(shù)學(xué)基礎(chǔ)和較強(qiáng)的邏輯思維能力。這對(duì)于初學(xué)者來說有一定的難度,尤其對(duì)于基礎(chǔ)較差的中職學(xué)生更是難上加難。在計(jì)算機(jī)語言程序設(shè)計(jì)教學(xué)中根據(jù)需要正確運(yùn)用直觀性教學(xué)方法,將有助于學(xué)生去消化、理解抽象的算法和程序執(zhí)行流程,進(jìn)一步提高學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)積極性。程序設(shè)計(jì)的直觀性教學(xué)可以從以下幾個(gè)方面來實(shí)現(xiàn)。
使用教學(xué)課件,幫助學(xué)生理解程序的執(zhí)行過程
計(jì)算機(jī)程序的運(yùn)行是在計(jì)算機(jī)內(nèi)部進(jìn)行的,是看不到、摸不著的。各種控制語句的執(zhí)行流程、函數(shù)與子程序的調(diào)用和返回過程及參數(shù)之間的傳遞,學(xué)生是無法直接感知的。即使實(shí)驗(yàn)課調(diào)試程序的過程中,學(xué)生也只能看到中間或最終的結(jié)果,是對(duì)程序正確性的驗(yàn)證,看不到程序的執(zhí)行過程。多媒體教學(xué)課件能夠模擬不可能或很難看到的現(xiàn)象,能使抽象的理論形象化。在程序設(shè)計(jì)教學(xué)中借助于課件,可以模擬程序的執(zhí)行過程和各參數(shù)的變化,讓學(xué)生理解控制語句的執(zhí)行流程以及函數(shù)、子程序調(diào)用過程中各參數(shù)的變化情況,一些算法的基本原理。因此,在教學(xué)中設(shè)計(jì)必要的課件,課堂教學(xué)效果遠(yuǎn)遠(yuǎn)超過詳細(xì)的語言講解。
程序設(shè)計(jì)的教學(xué)課件切忌花哨、濫用,教師要從教學(xué)需要和實(shí)際出發(fā),結(jié)合本班學(xué)生的知識(shí)水平和認(rèn)知心理設(shè)計(jì)課件,最好在學(xué)生理解、認(rèn)知有困難的知識(shí)點(diǎn)上使用,一定要對(duì)學(xué)生的認(rèn)知有幫助,不能為使用課件而使用課件。
用好恰當(dāng)類比,使抽象的內(nèi)容形象化
即使在教育技術(shù)高度發(fā)達(dá)的今天,語言講授仍然是教師在課堂上向?qū)W生傳授知識(shí)的主要方式,因?yàn)樵诿恳还?jié)課中都讓學(xué)生去“親身體驗(yàn)”是不現(xiàn)實(shí)的。課堂教學(xué)語言的質(zhì)量不僅關(guān)系到教學(xué)質(zhì)量,而且還影響著學(xué)生學(xué)習(xí)的質(zhì)量和水平。形象、生動(dòng)的課堂教學(xué)語言,合乎情理的夸張,生動(dòng)貼切的比喻,可以幫助學(xué)生理解不易接受的抽象知識(shí),使學(xué)生如見其形、如臨其境、如聞其聲,對(duì)完成教學(xué)目標(biāo)至關(guān)重要。這里所講的“直觀性”語言就是指使用恰當(dāng)?shù)谋葦M,來解釋程序設(shè)計(jì)教學(xué)中學(xué)生難以理解的知識(shí)點(diǎn)。
例如函數(shù)與子程序部分教學(xué)中,學(xué)生編寫函數(shù)或子程序時(shí)總是不知道要設(shè)立多少行參,不是多就是少,調(diào)用函數(shù)時(shí)總是不理解行參與實(shí)參要個(gè)數(shù)相等、類型一致,編好了函數(shù)也不知道調(diào)用。講解時(shí),教師可以把函數(shù)比喻成一臺(tái)電視機(jī),函數(shù)調(diào)用比喻成看電視節(jié)目,編好了函數(shù)不調(diào)用,相當(dāng)于沒有通電的電視機(jī)。要想看電視節(jié)目,必須有電源和信號(hào),這兩個(gè)缺一不可,少了不行,多了也沒用,如給電視機(jī)接上電話信號(hào)就是多余的。行參實(shí)參的類型不一致,就相當(dāng)于電源插頭兩只腳與三只腳不一致的情形等。再如條件循環(huán)可以類比成學(xué)生的平時(shí)學(xué)習(xí)生活,在一學(xué)期中每周必須重復(fù)課表中同樣的學(xué)習(xí)內(nèi)容,結(jié)束重復(fù)的條件是假期到了。實(shí)踐證明,通過這樣的類比,比重復(fù)闡述編程語言的語法規(guī)則的效果要好得多。
使用形象化語言進(jìn)行教學(xué)時(shí),要注意精煉、恰當(dāng),所使用例子或比喻要經(jīng)典,要與學(xué)生的生活經(jīng)驗(yàn)和實(shí)際相關(guān),要與所反映的問題貼近,防止學(xué)生產(chǎn)生歧義。例如交換兩個(gè)變量a、b的值,如果借用第3個(gè)變量c,其程序段為:LET c=a:LET a=b:LET b=c。此時(shí)可以舉交換兩只藍(lán)墨水和紅墨水這樣的例子,可以先將藍(lán)墨水倒入第3個(gè)瓶子,然后將紅墨水倒入原來裝藍(lán)墨水的瓶子,最后將第3只瓶子中的藍(lán)墨水倒入原來裝紅墨水的瓶子。這個(gè)例子中,如果不借助于第3只瓶子,則不能交換。因此只使用2個(gè)變量,實(shí)現(xiàn)其中值的交換的程序段就不能用此例子來解釋。
重視上機(jī)實(shí)驗(yàn),幫助學(xué)生解決知識(shí)疑惑,增強(qiáng)知識(shí)產(chǎn)權(quán)意識(shí)
曾經(jīng)聽說一些職業(yè)學(xué)校在計(jì)算機(jī)語言程序設(shè)計(jì)教學(xué)安排中,為了培養(yǎng)學(xué)生閱讀程序、分析程序的能力,而取消了上機(jī)實(shí)驗(yàn)課,這是一種錯(cuò)誤的做法。實(shí)驗(yàn)課中調(diào)試程序過程是分析和排錯(cuò)的過程,是程序設(shè)計(jì)的一個(gè)重要環(huán)節(jié)。其目的就是讓學(xué)生輸入和調(diào)試程序,是一個(gè)讓學(xué)生親身體驗(yàn)程序設(shè)計(jì)從編寫代碼、輸入程序、調(diào)試運(yùn)行程序的整個(gè)過程,可以解決學(xué)生在認(rèn)知過程中的疑惑,驗(yàn)證分析程序的正確性和運(yùn)行結(jié)果,理解程序中語法、邏輯錯(cuò)誤所造成的后果,從而進(jìn)一步幫助學(xué)生鞏固課堂教學(xué)中的知識(shí),培養(yǎng)他們良好的編程習(xí)慣。同時(shí)也讓他們感知程序設(shè)計(jì)的不易,培養(yǎng)知識(shí)產(chǎn)權(quán)保護(hù)的意識(shí)。因此上好實(shí)驗(yàn)課對(duì)程序設(shè)計(jì)教學(xué)及提高學(xué)生信息素養(yǎng)有很大的幫助。
上好一節(jié)實(shí)驗(yàn)課必須在課前充分備好課。一方面,要根據(jù)已講授的知識(shí)內(nèi)容和學(xué)生作業(yè)反饋精心設(shè)計(jì)好要實(shí)驗(yàn)任務(wù),可以有語句的基本應(yīng)用,也可以有涉及到算法的綜合編程調(diào)試,在難度上有一定的梯度。另一方面,還要設(shè)計(jì)好上機(jī)實(shí)驗(yàn)流程,在充分了解學(xué)生知識(shí)和技能水平的基礎(chǔ)上,決定本次實(shí)驗(yàn)前是否要補(bǔ)充講解算法原理,實(shí)驗(yàn)過程中是否需要補(bǔ)充新的程序調(diào)試的方法。另外如果本次實(shí)驗(yàn)需要一些現(xiàn)成的程序段,必須在實(shí)驗(yàn)前復(fù)制到所有實(shí)驗(yàn)用機(jī)上。實(shí)驗(yàn)過程中,還要對(duì)極少數(shù)技能差的學(xué)生以必要的指導(dǎo),幫助學(xué)生解決實(shí)驗(yàn)中遇到的各種錯(cuò)誤,使學(xué)生不畏懼出錯(cuò),能正確面對(duì)錯(cuò)誤,防止產(chǎn)生畏難情緒。還要注意采用引導(dǎo)的方法,不要告訴學(xué)生直接答案,讓他們學(xué)會(huì)分析錯(cuò)誤、排除錯(cuò)誤的方法。
實(shí)驗(yàn)結(jié)束后學(xué)生要寫實(shí)驗(yàn)報(bào)告,寫出實(shí)驗(yàn)中調(diào)試成功的程序和遇到的語法、邏輯錯(cuò)誤以及排除錯(cuò)誤的過程。教師通過實(shí)驗(yàn)報(bào)告了解學(xué)生的學(xué)習(xí)情況,學(xué)生通過寫實(shí)驗(yàn)報(bào)告總結(jié)上機(jī)調(diào)試和編程經(jīng)驗(yàn),避免下次犯同樣的錯(cuò)誤,進(jìn)一步提高學(xué)生程序設(shè)計(jì)的規(guī)范化。
設(shè)計(jì)好學(xué)生演練,讓學(xué)生深刻理解算法的原理
程序的算法是很抽象、極不易理解的教學(xué)內(nèi)容之一。讓學(xué)生參與一些實(shí)際表演來演練算法的執(zhí)行過程,可以進(jìn)一步讓學(xué)生理解和體會(huì)算法執(zhí)行的原理和過程。如講授冒泡排序法時(shí),教師可以設(shè)計(jì)下列表演場(chǎng)面:讓若干個(gè)學(xué)生排成一排,然后利用冒泡排序的原理按由高到矮的個(gè)子排列。冒泡排序的原理是從第一個(gè)數(shù)據(jù)開始發(fā)現(xiàn)相鄰的數(shù)據(jù),發(fā)現(xiàn)反序則交換的原理演示冒泡排序的排序過程,學(xué)生按照冒泡排序的原理比較相鄰兩個(gè)人的高矮,若前面的一個(gè)人比后面的高,則互換位置,經(jīng)過若干輪比較和交換后,便完成了冒泡排序。
為了比較各種排序的過程,可以將學(xué)生按照各種排序的原理進(jìn)行演練,讓學(xué)生總結(jié)出各種排序的不同,加深對(duì)各種排序算法過程的理解。
直觀性教學(xué)方法在使用過程中需要注意的是,教師要正確引導(dǎo)和啟發(fā)學(xué)生,通過演示、表演、類比能夠使所要講授的抽象知識(shí)點(diǎn)形象化,易于學(xué)生理解。在教學(xué)過程中,還要防止學(xué)生看熱鬧或只注重表面現(xiàn)象,否則很難起到好的教學(xué)效果。
總之,直觀性教學(xué)方法是激發(fā)學(xué)生學(xué)習(xí)興趣的有效方法,是促進(jìn)學(xué)生思維發(fā)展,幫助學(xué)生內(nèi)化知識(shí)的重要途經(jīng)。在計(jì)算機(jī)程序教學(xué)中正確使用直觀性教學(xué)方法,可以進(jìn)一步提高課堂教學(xué)效益,幫助學(xué)生掌握難以理解的抽象知識(shí),使抽象的知識(shí)形象化。
(作者單位:江蘇省海安縣雙樓職業(yè)高級(jí)中學(xué))