鄭繼剛
(保山學(xué)院 數(shù)學(xué)系,云南 保山 678000)
在我國(guó)現(xiàn)行的教育體制下,師范院校作為中小學(xué)師資供給和培養(yǎng)的主要基地,是培養(yǎng)德智體全面發(fā)展的教育工作者的搖籃。隨著計(jì)算機(jī)的普及,那種只靠一塊黑板、一支筆、一張掛圖、一本書的傳統(tǒng)教學(xué)模式正在改變,計(jì)算機(jī)輔助教學(xué)(Computer Assistant Instruction,簡(jiǎn)稱CAI)將成為中小學(xué)各學(xué)科教學(xué)的一種強(qiáng)有力工具,需要中小學(xué)教師參與CAI的研究和實(shí)踐工作。師范院校的學(xué)生只有充分掌握程序設(shè)計(jì)理論,才能在將來(lái)的工作中勝任CAI的研究、開發(fā)與應(yīng)用[1]。
目前許多師范院校不僅在計(jì)算機(jī)專業(yè)開設(shè)了程序設(shè)計(jì)語(yǔ)言課程,而且在非計(jì)算機(jī)專業(yè)也開設(shè)了該門課程。全國(guó)計(jì)算機(jī)等級(jí)考試(NCRE)、全國(guó)計(jì)算機(jī)應(yīng)用技術(shù)證書考試(NIT)和全國(guó)各地區(qū)組織的大學(xué)生計(jì)算機(jī)等級(jí)考試都將程序設(shè)計(jì)語(yǔ)言列入了考試范圍。因此,如何搞好師范院校程序設(shè)計(jì)語(yǔ)言課程的教學(xué),成為各專業(yè)建設(shè)討論的熱點(diǎn)。
正如自然語(yǔ)言是人類社會(huì)交流的工具一樣,計(jì)算機(jī)語(yǔ)言也是應(yīng)用者和計(jì)算機(jī)之間進(jìn)行交流的一種工具。全國(guó)大學(xué)生數(shù)學(xué)建模比賽、電子設(shè)計(jì)比賽、“挑戰(zhàn)杯”全國(guó)大學(xué)生課外學(xué)術(shù)科技作品競(jìng)賽等都需要一批既懂專業(yè)知識(shí)又懂程序設(shè)計(jì)語(yǔ)言的學(xué)生去參與和實(shí)踐。而對(duì)于常用的CAI軟件,其管理和維護(hù)也需要使用者掌握程序設(shè)計(jì)語(yǔ)言。目前,雖然軟硬件技術(shù)平臺(tái)在飛速發(fā)展,但還沒有一個(gè)不使用程序設(shè)計(jì)語(yǔ)言就能進(jìn)行CAI軟件開發(fā)的環(huán)境,要使學(xué)生一畢業(yè)就可以進(jìn)行軟件開發(fā)工作,就需要較深入地掌握先進(jìn)的可視化開發(fā)工具,如Visual C++、Java Builder、VisualBasic、PowerBuilder、Delphi等,但是目前的課程設(shè)置,還不能較好地滿足社會(huì)對(duì)畢業(yè)生的要求。
對(duì)于學(xué)生的個(gè)人發(fā)展來(lái)說(shuō),程序設(shè)計(jì)語(yǔ)言課教學(xué)對(duì)學(xué)生綜合素質(zhì)和能力的培養(yǎng)也起著重要的作用。針對(duì)學(xué)生的素質(zhì)教育,程序編寫過程的思路、方法和訓(xùn)練是非常重要的。就像幾何學(xué),將來(lái)工作中很少用得著,但學(xué)生必須要學(xué)習(xí)其相關(guān)的原理并掌握一些必要的解題思路和方法。這是因?yàn)?幾何學(xué)是我們掌握和學(xué)習(xí)其他學(xué)科的基礎(chǔ),它的許多原理和思維方式都是我們經(jīng)常用到的,更重要的是在使用原理的過程中對(duì)思維能力的訓(xùn)練。程序設(shè)計(jì)語(yǔ)言也是相同的道理,它凝聚了很多現(xiàn)代的思維方式和思維觀念,學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言有助于開發(fā)智力、提高學(xué)生的思維能力和綜和應(yīng)用能力,因此,師范院校開設(shè)程序設(shè)計(jì)語(yǔ)言課程具有十分重要的意義。
程序設(shè)計(jì)語(yǔ)言種類眾多,目前流行的有結(jié)構(gòu)化設(shè)計(jì)語(yǔ)言有PASCAL、C語(yǔ)言、面向?qū)ο笤O(shè)計(jì)語(yǔ)言C++、C#、Java,可視化程序設(shè)計(jì)語(yǔ)言VB、VC、VFP、PB、DelPhi等[2]。計(jì)算機(jī)技術(shù)的發(fā)展,不同種類的問題宜采用不同的工具解決,比如數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì),采用PowerBuilder開發(fā)設(shè)計(jì)可節(jié)省大量開發(fā)時(shí)間;而基于B/S模式的動(dòng)態(tài)網(wǎng)頁(yè)應(yīng)用程序設(shè)計(jì),又宜采用ASP技術(shù)或JSP技術(shù)。至于選用哪種語(yǔ)言進(jìn)行教學(xué),要考慮到計(jì)算機(jī)只是一種工具,在程序設(shè)計(jì)語(yǔ)言課的教學(xué)中要以應(yīng)用為目的和出發(fā)點(diǎn),結(jié)合各專業(yè)課程的需要和讓學(xué)生掌握實(shí)用編程技術(shù)的目的進(jìn)行選擇[3]。同時(shí),在教學(xué)過程中應(yīng)注意讓學(xué)生建立“算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語(yǔ)言工具和環(huán)境=程序”的程序設(shè)計(jì)思想。
教材是知識(shí)的載體,也是教學(xué)的主要依據(jù)。目前,一些師范院校使用的程序設(shè)計(jì)語(yǔ)言教材版本較陳舊,有些章節(jié)雖然經(jīng)過幾次修訂,但主要教學(xué)內(nèi)容、教材編排仍顯得相對(duì)落后,基本沒有跳出傳統(tǒng)程序設(shè)計(jì)語(yǔ)言的框架;以培養(yǎng)學(xué)生抽象思維和邏輯推理能力為目標(biāo),重點(diǎn)強(qiáng)調(diào)其科學(xué)性、系統(tǒng)性、嚴(yán)密性,而淡化了對(duì)學(xué)生在實(shí)際軟件開發(fā)中使用頻率高、易出錯(cuò)的各知識(shí)點(diǎn)的重點(diǎn)訓(xùn)練。因此,在教學(xué)過程中必須對(duì)授課內(nèi)容做出適當(dāng)?shù)恼{(diào)整,如刪減一些初學(xué)者理解起來(lái)有難度的內(nèi)容,增加在實(shí)際軟件開發(fā)中經(jīng)常使用的結(jié)構(gòu)體、回調(diào)函數(shù)和內(nèi)存管理等內(nèi)容,從而培養(yǎng)學(xué)生解決實(shí)際問題的技術(shù)應(yīng)用能力和創(chuàng)新能力。
作為教學(xué)語(yǔ)言,應(yīng)選擇通用語(yǔ)言。通用語(yǔ)言的語(yǔ)法定義明確,簡(jiǎn)單易學(xué),表現(xiàn)力強(qiáng),能夠體現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格,同時(shí)擁有一般程序設(shè)計(jì)語(yǔ)言的數(shù)據(jù)結(jié)構(gòu),有較好的編譯系統(tǒng)和調(diào)試工具,并具有一定的實(shí)用性,同時(shí)兼顧中小學(xué)教育需要。目前,中學(xué)信息技術(shù)課開設(shè)了BASIC語(yǔ)言,奧林匹克競(jìng)賽則選用PASCAL或C語(yǔ)言。雖然程序設(shè)計(jì)語(yǔ)言有很多種,但C語(yǔ)言引領(lǐng)了主要的發(fā)展方向,而且C語(yǔ)言功能豐富、表達(dá)能力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好,既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多優(yōu)點(diǎn)。
程序設(shè)計(jì)語(yǔ)言課程設(shè)置應(yīng)貫徹少而精、不斷線的原則,師范院??梢蚤_設(shè)以下程序設(shè)計(jì)語(yǔ)言課程:①第三學(xué)期開設(shè)C語(yǔ)言,總共72學(xué)時(shí)(其中理論54學(xué)時(shí),實(shí)驗(yàn)18學(xué)時(shí)),側(cè)重講解結(jié)構(gòu)化程序設(shè)計(jì)方法、數(shù)據(jù)結(jié)構(gòu)與算法、模塊化程序設(shè)計(jì)以及程序的測(cè)試與調(diào)試技能等;②第四學(xué)期開設(shè)VB,總共72學(xué)時(shí)(其中理論54學(xué)時(shí),實(shí)驗(yàn)18學(xué)時(shí)),側(cè)重講解可視化編程技術(shù)、可視化編程環(huán)境的使用等;③第五學(xué)期選修C++或Java,總共72學(xué)時(shí)(其中理論54學(xué)時(shí),實(shí)驗(yàn)18學(xué)時(shí)),側(cè)重講解面向?qū)ο笤O(shè)計(jì)方法、類及其對(duì)象等。
教師深入分析教學(xué)大綱,在全面了解學(xué)生的程序設(shè)計(jì)基礎(chǔ)知識(shí)狀況的前提下,根據(jù)大綱制定好教學(xué)計(jì)劃。在制定計(jì)劃的過程中要針對(duì)學(xué)生的專業(yè)知識(shí)基礎(chǔ),將教材中涉及的學(xué)生未掌握的基礎(chǔ)知識(shí)類例題進(jìn)行更換,避免因?qū)I(yè)知識(shí)方面的問題形成教學(xué)障礙。在教學(xué)中選擇的例題應(yīng)符合專業(yè)基礎(chǔ)和專業(yè)興趣,盡量避開使學(xué)生感到枯燥無(wú)味的題目??偠灾?對(duì)不同專業(yè)的學(xué)生的教學(xué)方法原則上是一致的,但對(duì)具體內(nèi)容需要作相應(yīng)的處理,以求良好的教學(xué)效果。
程序設(shè)計(jì)語(yǔ)言內(nèi)容繁多,在有限的課時(shí)內(nèi)不可能也不必要面面俱到,所以必須突出重點(diǎn),突出實(shí)用性。教學(xué)的關(guān)鍵在于教會(huì)學(xué)生正確運(yùn)用程序設(shè)計(jì)語(yǔ)言編寫程序,一些細(xì)節(jié)、具體規(guī)則和更深層次的知識(shí)可以讓學(xué)生在以后的應(yīng)用中查閱有關(guān)書籍。程序設(shè)計(jì)語(yǔ)言課程的難點(diǎn)在于算法的設(shè)計(jì),算法設(shè)計(jì)需要分析、演繹、綜合等抽象思維能力,可在教學(xué)中通過分析、歸納出各種算法的思想和步驟。如在講解循環(huán)、數(shù)組時(shí),重點(diǎn)講清楚素?cái)?shù)問題、求和、查找、數(shù)據(jù)統(tǒng)計(jì)、排序算法等。
實(shí)驗(yàn)的過程應(yīng)以學(xué)生為主,充分發(fā)揮他們的主觀能動(dòng)性。程序設(shè)計(jì)語(yǔ)言課程的實(shí)驗(yàn)中,一部分是驗(yàn)證教材的知識(shí)點(diǎn),這對(duì)知識(shí)的理解、掌握與鞏固是必要的。在此基礎(chǔ)上,教師可設(shè)計(jì)屬于應(yīng)用型的實(shí)驗(yàn)內(nèi)容,以培養(yǎng)學(xué)生解決實(shí)際問題的能力。教師除了對(duì)所有學(xué)生進(jìn)行統(tǒng)一的要求之外,還應(yīng)做到因材施教,對(duì)學(xué)習(xí)水平較高的學(xué)生,進(jìn)行個(gè)別輔導(dǎo),以激發(fā)其創(chuàng)造性。另外,在教學(xué)時(shí)可利用現(xiàn)代化的教學(xué)手段,如使用投影儀等多媒體設(shè)備、CAI課件等,從傳統(tǒng)的上機(jī)實(shí)驗(yàn)教學(xué)逐漸過渡到多媒體教學(xué),以提高教學(xué)效果。
在程序設(shè)計(jì)課程中,首先要強(qiáng)調(diào)基本算法在程序設(shè)計(jì)中的核心地位。教學(xué)如果沒有站在如何運(yùn)用程序設(shè)計(jì)語(yǔ)言解決實(shí)際問題的角度,就沒法很好的講解如何分析問題和解決問題,結(jié)果將導(dǎo)致學(xué)生程序設(shè)計(jì)能力、上機(jī)解題能力訓(xùn)練不夠,更談不上引導(dǎo)學(xué)生進(jìn)行課題研究和科研探索。因此,在開始學(xué)習(xí)時(shí)就要努力培養(yǎng)學(xué)生掌握解決實(shí)際問題的程序設(shè)計(jì)思想、養(yǎng)成良好的程序設(shè)計(jì)習(xí)慣。這要求教學(xué)的重點(diǎn)必須放在解題思路、算法設(shè)計(jì)和編程構(gòu)思的培養(yǎng)上,使學(xué)生形成一個(gè)良好的程序設(shè)計(jì)思維基礎(chǔ)。
學(xué)習(xí)的目的在于應(yīng)用,如果所學(xué)的內(nèi)容不能得到應(yīng)用,那么努力學(xué)習(xí)就沒有多大意義。在教學(xué)中應(yīng)以現(xiàn)實(shí)生活中或工作中所碰到的問題為例,這樣不但能提高學(xué)生學(xué)習(xí)的興趣,而且還能培養(yǎng)學(xué)生處理實(shí)際問題的能力、鞏固所學(xué)的知識(shí),更清楚和形象地了解學(xué)科間的橫向聯(lián)系[4]。如在數(shù)組應(yīng)用中舉例根據(jù)考生的成績(jī),取考生信息的問題。通過這個(gè)例題使學(xué)生掌握數(shù)組的使用方法,弄清楚計(jì)算機(jī)處理問題的過程,從而學(xué)會(huì)利用二維數(shù)組處理矩陣之間的運(yùn)算、矩陣求轉(zhuǎn)置、解線性方程組等問題[5]。通過舉例,提高了學(xué)生的學(xué)習(xí)興趣,也充分顯示了程序設(shè)計(jì)語(yǔ)言與其他學(xué)科的聯(lián)系。
利用聯(lián)機(jī)多媒體投影教室是目前較廣泛采用的多媒體教學(xué)手段,它可以實(shí)時(shí)將各種教學(xué)文稿、圖像、聲音、動(dòng)畫等多媒體信息反映給學(xué)生,使學(xué)生發(fā)揮多方面的想象力。對(duì)于操作性較強(qiáng)的課程內(nèi)容,容易達(dá)到較好的講授效果。由于程序設(shè)計(jì)語(yǔ)言是邏輯性、藝術(shù)性很強(qiáng)的一門課,要深入淺出,并不斷保持學(xué)生的學(xué)習(xí)興趣,單純的教學(xué)文稿聯(lián)機(jī)投影和實(shí)時(shí)聯(lián)機(jī)調(diào)試程序往往會(huì)限制教師引導(dǎo)作用的發(fā)揮。這就要求教師要結(jié)合自己的教學(xué)經(jīng)驗(yàn),對(duì)課程內(nèi)容進(jìn)行選取、編排、抽象、建立演示模型,把設(shè)計(jì)好的腳本運(yùn)用生動(dòng)、實(shí)用的CAI教學(xué)課件表現(xiàn)出來(lái)。例如,對(duì)于過程調(diào)用、遞歸等問題,采用漢塔問題演示能生動(dòng)地反映遞歸效果;對(duì)于冒泡排序算法則用動(dòng)畫過程進(jìn)行演示。這些有趣的問題和生動(dòng)的演示能激發(fā)學(xué)生的學(xué)習(xí)熱情,加深他們的認(rèn)識(shí)和理解。
綜上所述,我們討論了程序設(shè)計(jì)語(yǔ)言課程的設(shè)置與教學(xué)方法,以此引導(dǎo)這門課程更好地為教學(xué)服務(wù)。隨著信息化進(jìn)程的不斷加速,教學(xué)軟硬件的不斷升級(jí),程序設(shè)計(jì)語(yǔ)言課程越來(lái)越受到重視。通過改革教學(xué)方法,更新教學(xué)內(nèi)容,采用現(xiàn)代化教學(xué)手段,使程序設(shè)計(jì)語(yǔ)言課程的教學(xué)躍上一個(gè)新臺(tái)階,從而取得良好的教學(xué)效果和社會(huì)效果。
[參考文獻(xiàn)]
[1] 林穎賢.高師數(shù)學(xué)教育專業(yè)程序設(shè)計(jì)語(yǔ)言教學(xué)探討[J].集美大學(xué)學(xué)報(bào),2001(4):65-68.
[2] 錢能.C++程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,1999.
[3] 孔垂柳,田地.基于程序設(shè)計(jì)思想的C語(yǔ)言教學(xué)方案[J].吉林大學(xué)學(xué)報(bào),2005(8):5-6.
[4] 張錦祥.高級(jí)程序設(shè)計(jì)語(yǔ)言課程教學(xué)改革與實(shí)踐[J].浙江教育學(xué)院學(xué)報(bào),2007(4):71-76.
[5] 譚浩強(qiáng).C程序設(shè)計(jì)[M].3版.北京:清華大學(xué)出版社,2005:138-140.