信息技術(shù)是一門(mén)技術(shù)類(lèi)課程,實(shí)踐性要求很高,在很多人看來(lái),這門(mén)課程的教學(xué)就只能是簡(jiǎn)單、高強(qiáng)度的操作訓(xùn)練。因此,“算法與程序設(shè)計(jì)”模塊的教學(xué)也常被認(rèn)為是訓(xùn)練學(xué)生在計(jì)算機(jī)中寫(xiě)幾條程序語(yǔ)句。這種看法到底正確不正確呢?
我們提出這個(gè)問(wèn)題的背景是當(dāng)前正值新課程改革,很多新思想、新教法層出不窮,很多教師為了所謂的“課堂藝術(shù)”在片面追求標(biāo)新立異:課,的確是越上越“好看”,但實(shí)際效果卻并不理想,甚至實(shí)施的過(guò)程違背了課程自身的教學(xué)原則和目的。信息技術(shù)課程,很多教師看到了它的技術(shù)性,卻往往忽略了其本來(lái)所蘊(yùn)涵的思想性,而這個(gè)思想性對(duì)于學(xué)生信息素養(yǎng)的養(yǎng)成起到了關(guān)鍵性的作用?,F(xiàn)在很多教師呼吁的“還信息技術(shù)課堂本來(lái)面目”的口號(hào)就是出于這個(gè)目的而發(fā)出的,具有適時(shí)性和正確性。
大家都知道,把所有高中學(xué)生都培養(yǎng)成程序員那肯定是不現(xiàn)實(shí)也沒(méi)必要的,我們開(kāi)設(shè)這個(gè)模塊的目的很大程度在于啟蒙學(xué)生,在于教學(xué)生有條理地思考問(wèn)題,而不是盲目操練。所以,本文開(kāi)頭提出的觀(guān)點(diǎn)是錯(cuò)誤的,“算法與程序設(shè)計(jì)”模塊具有很強(qiáng)的思想性,可以很好地熏陶學(xué)生的思維,對(duì)其他學(xué)科的解題能力、日常事務(wù)的處理能力都會(huì)有所幫助和提高,絕不應(yīng)該把它看做簡(jiǎn)單的程序語(yǔ)言的學(xué)習(xí)和死記硬背。從這個(gè)意義上說(shuō),信息技術(shù)課程也是一門(mén)專(zhuān)門(mén)的方法學(xué)課程。假如你的學(xué)生通過(guò)這個(gè)模塊的學(xué)習(xí)學(xué)到的僅僅是if-else、for-next,那么我想你的教學(xué)應(yīng)該是失敗的。
通過(guò)上面的論述,我無(wú)非想說(shuō)明在該模塊,思想(算法)是第一重點(diǎn),而程序語(yǔ)言是第二位的,課程絕不能?chē)@純粹的程序語(yǔ)言展開(kāi)。你大可在信息技術(shù)課堂暢談解題思路,即便用的全是漢語(yǔ),而并非一定要在語(yǔ)文或數(shù)學(xué)課上才可以那么做。當(dāng)然這么看來(lái),所謂的“語(yǔ)言之爭(zhēng)”(哪種語(yǔ)言更適合教學(xué))就變得意義不大了。
那么,如何跟我們的學(xué)生談思想呢?
一、編程思想的教學(xué)形式要能引起學(xué)生的興趣
其實(shí),無(wú)論是什么學(xué)段的學(xué)生,學(xué)習(xí)的最大促進(jìn)力肯定是興趣。在高中階段,學(xué)生的興趣是十分廣泛的,每個(gè)人的興趣也不盡相同,不可能要求他們都單單喜歡計(jì)算機(jī)、喜歡程序。一方面,我們應(yīng)該采取選修的方式,讓感興趣的學(xué)生加入到我們的課程中。但也要知道,即便是“感興趣”的學(xué)生,他們由于先前并不了解寫(xiě)程序到底是怎么回事兒,選擇多少有點(diǎn)盲目。寫(xiě)程序遠(yuǎn)不像在孩子們眼里那么“酷”,有時(shí)候的確還有點(diǎn)兒枯燥和寂寞。那么如何讓這門(mén)課被大多數(shù)人接受呢?這個(gè)就值得我們?nèi)パ芯亢退伎剂恕?br/> 在不同的年齡段,人總都有一些共性。比如說(shuō),高中階段的孩子一般都喜歡漫畫(huà)、喜歡卡通、喜歡游戲。這就是突破口,把握住了孩子的共性,就有可能讓大多數(shù)孩子對(duì)我們的課產(chǎn)生興趣。課程中的算法,即思想,其實(shí)由來(lái)已久,并非計(jì)算機(jī)出現(xiàn)后才有的,很多都是來(lái)自古代思想家,都有一段來(lái)歷或一個(gè)小故事。為什么不利用這個(gè)來(lái)激發(fā)學(xué)生的興趣呢?
比如談到遞歸思想,如果直接用程序例子給學(xué)生灌輸,效果就不大好,很抽象,不大容易被接受和理解,學(xué)生就會(huì)產(chǎn)生厭學(xué)心理,從而形成不良的后果。但如果我們的研究是圍繞古代埃及神廟中的漢諾塔游戲展開(kāi)的,搬來(lái)一個(gè)實(shí)物道具做一做,讓大家根據(jù)規(guī)則去思考問(wèn)題的完美解決方案,學(xué)生的興趣就一下子被激發(fā)了,往下學(xué)也有勁兒了。當(dāng)然,還可以先讓大家唱一唱都熟悉的兒歌:“從前有座山,山上有座廟,廟里有個(gè)老和尚給小和尚講故事:從前有座山……”讓學(xué)生實(shí)實(shí)在在地去體會(huì)生活中包含的遞歸思想。我想,這些都是學(xué)生樂(lè)意去做的事情,他們會(huì)感到學(xué)習(xí)很輕松、很有趣,當(dāng)然學(xué)習(xí)的效果也不會(huì)差。
總之,我們要善于利用孩子的共性,在講編程思想時(shí)多用漫畫(huà)、卡通、游戲、故事等孩子喜歡的形式激發(fā)學(xué)生興趣。
二、編程思想的教學(xué)語(yǔ)言必須通俗易懂
由于我們面對(duì)的是高中階段的孩子,他們的認(rèn)知水平不可能同成人以及大中專(zhuān)院校的學(xué)生相提并論。因此,教師在講解編程思想時(shí)一定要顧及學(xué)生能否接受,不能太學(xué)術(shù)化、抽象化。一旦學(xué)生聽(tīng)不懂,很可能就會(huì)形成“鏈?zhǔn)椒磻?yīng)”,不但不感興趣的學(xué)生會(huì)更不感興趣,本來(lái)有興趣的學(xué)生也會(huì)提不起精神,整個(gè)課堂最后變得死氣沉沉,恐怕教師也心灰意冷了。
比如讓大家了解并行算法思想,純學(xué)術(shù)的定義是:適合于在某類(lèi)并行計(jì)算機(jī)上求解問(wèn)題和處理數(shù)據(jù)的算法,是一些可同時(shí)執(zhí)行的諸進(jìn)程的集合……這顯然是讓孩子們望而卻步的講解,不可能讓他們理解思想的內(nèi)涵。我們可以換個(gè)方法,給大家講個(gè)故事:有個(gè)國(guó)王向另一個(gè)國(guó)家的公主求婚,公主說(shuō)她會(huì)告訴國(guó)王一個(gè)17位的數(shù),如果國(guó)王能在三天內(nèi)把這個(gè)數(shù)分解成兩個(gè)數(shù)相乘的話(huà)就同意嫁給他。國(guó)王知道這道題目的難度,很苦惱,向一位大數(shù)學(xué)家請(qǐng)教。數(shù)學(xué)家說(shuō),17位的數(shù)分解后至少一個(gè)數(shù)是小于9位的,可以給全國(guó)每個(gè)人按順序編號(hào),讓他們記住自己的數(shù)字,公布題目之后立即相除,能整除的把數(shù)字報(bào)上來(lái),給予重賞,就可以解決了。講完故事后告訴大家:故事里數(shù)學(xué)家用的就是并行算法。比較兩種語(yǔ)言描述,后一種講解不如前者嚴(yán)密,但更生動(dòng)和形象,學(xué)生很容易接受,所以我們說(shuō)后一種是適合高中階段孩子的教學(xué)語(yǔ)言。
在高中階段,基于學(xué)生的認(rèn)知水平,很多學(xué)術(shù)性很強(qiáng)的原理和思想我們都可以把它形象化、生動(dòng)化,并不一定要“滴水不漏”。在編程思想的教學(xué)中,對(duì)教師教學(xué)語(yǔ)言最基本的要求就是要切實(shí)做到讓學(xué)生感覺(jué)通俗易懂。
三、編程思想的教學(xué)必須具有實(shí)際使用價(jià)值
技術(shù)類(lèi)學(xué)科的宗旨就是要學(xué)以致用。雖然就目前的一些評(píng)價(jià)方式來(lái)說(shuō)還不能完全體現(xiàn)這一點(diǎn),但作為“行內(nèi)人”,一個(gè)想為學(xué)生做點(diǎn)兒事情的教師,我想我們最起碼要保證教授給學(xué)生的知識(shí)是有用的,不是在誤人子弟。所以給學(xué)生講的編程思想,不應(yīng)是生僻的,不要一味追求高、深,而要能夠在實(shí)際的運(yùn)用中起到指導(dǎo)作用。倘若不然,學(xué)生發(fā)覺(jué)他們學(xué)到的都是些不切實(shí)際的東西,是在學(xué)習(xí)“屠龍刀法”,那么最終他們也會(huì)棄你而去。在“算法與程序設(shè)計(jì)”模塊中,數(shù)據(jù)結(jié)構(gòu)可以獨(dú)立出來(lái)形成一個(gè)篇幅,但并不是要把數(shù)據(jù)概念孤立研究,高中學(xué)生還沒(méi)有完全的抽象思維,我們的教育目的是普及不是專(zhuān)攻。因此,高中階段談編程思想、講數(shù)據(jù),都需要有客觀(guān)的實(shí)體做載體,這樣才能讓學(xué)生有明確的應(yīng)用對(duì)象和環(huán)境。當(dāng)前,很多高中學(xué)生的計(jì)算機(jī)讀物在這點(diǎn)上是不足的,基本都是抄襲大學(xué)的教材,形象性、實(shí)用性不夠。
比如講到多種排序思想,如果我們只是拿幾個(gè)數(shù)字做示范,學(xué)生學(xué)習(xí)之后肯定是要問(wèn)的:排序是一眼就能看出來(lái)的事情用得著這么復(fù)雜嗎?到底意義何在呢?對(duì)于程序編寫(xiě)人員來(lái)說(shuō),排序的意義是很顯然的事情,但這樣的教學(xué)并沒(méi)能讓學(xué)生切實(shí)體會(huì)到排序思想的重要性以及學(xué)習(xí)該思想的必要性。假如我們能設(shè)計(jì)一個(gè)情境,要對(duì)本次數(shù)學(xué)月考成績(jī)進(jìn)行全年級(jí)排名(1000人左右),提供一個(gè)成績(jī)單給每個(gè)學(xué)生人手一份成績(jī)單,比一比哪個(gè)學(xué)生排得最快。這樣一來(lái),學(xué)生勢(shì)必會(huì)對(duì)排序方法有所思考,總想找出最簡(jiǎn)便快捷的方法。教師稍加點(diǎn)撥,可能各種排序方法學(xué)生就迫不及待地用上了。哪一種更具有優(yōu)勢(shì)教師幾乎不用說(shuō),事實(shí)已經(jīng)開(kāi)口了,最后我們做的只是一些掃尾性的總結(jié)和說(shuō)明工作。
在平時(shí)的教學(xué)中,還有些教師喜歡講些“××加密算法”、“××壓縮算法”等等具有一定深度的知識(shí)來(lái)訓(xùn)練學(xué)生的思維,豐富教學(xué)內(nèi)容。我承認(rèn)這些知識(shí)都是很有價(jià)值的,但不具有普遍性,至少日常的運(yùn)用中不大會(huì)涉及,所以我建議不如把它們刪去。
從某種角度講,要求教授的編程思想有實(shí)際使用價(jià)值,其實(shí)是變學(xué)生的“填鴨式學(xué)習(xí)”為“有需學(xué)習(xí)”,當(dāng)然關(guān)鍵在于用生活中的實(shí)際問(wèn)題去勾起學(xué)生學(xué)習(xí)的欲望,并讓其保持住學(xué)習(xí)的熱情。
四、編程思想的教學(xué)要善于總結(jié)
教師教的目的是為了不教,是為了培養(yǎng)學(xué)生能獨(dú)立自主地去學(xué)習(xí)和探索未知,所以學(xué)法指導(dǎo)十分重要。生活是本豐富的教科書(shū),從中我們遇到的問(wèn)題也必然是形形色色的,課堂不可能包羅萬(wàn)象,前面的路只有在摸索中前進(jìn)。當(dāng)然,摸索不是漫無(wú)目的的,我們是要在總結(jié)已知的前提下,吸取經(jīng)驗(yàn)和教訓(xùn),然后再去摸索。信息技術(shù)學(xué)科的學(xué)習(xí)也是這樣,我們往往要解決的不是單單一個(gè)問(wèn)題,而是要研究一類(lèi)問(wèn)題,要學(xué)生做到舉一反三,所以必須適時(shí)對(duì)教學(xué)進(jìn)行總結(jié)。從生活中來(lái),到生活中去,也就是從實(shí)例中總結(jié)經(jīng)驗(yàn),然后指導(dǎo)實(shí)踐。
程序設(shè)計(jì)課程中為說(shuō)明某種算法可以列舉很多實(shí)際例子,而所謂的總結(jié)其實(shí)最終只需兩句話(huà):(1)到底在什么情況下可以使用這種算法;(2)算法到底怎么做。該環(huán)節(jié)可以很簡(jiǎn)潔,但不可缺省,是整個(gè)課堂教學(xué)的濃縮和精華。總結(jié)所使用的形式可以是啟發(fā)學(xué)生總結(jié),也可以教師自己總結(jié),但我更贊賞前者,那更能培養(yǎng)學(xué)生良好的學(xué)習(xí)習(xí)慣。
雨果曾說(shuō):“哪里有思想,哪里就有威力?!蔽覀儜?yīng)該加強(qiáng)編程思想在程序設(shè)計(jì)課程中的核心地位。跟孩子多談?wù)勊枷耄笥旭砸妗?br/> ?。ㄗ髡邌挝唬航K丹陽(yáng)高級(jí)中學(xué))