劉衛(wèi)國 施榮華
摘要:本文分析了程序設(shè)計教學(xué)的現(xiàn)狀以及教學(xué)體系,按照以“語言知識—程序設(shè)計能力—應(yīng)用開發(fā)能力”為主線的教學(xué)目標(biāo),對程序設(shè)計課程教學(xué)內(nèi)容組織與教學(xué)模式、程序設(shè)計課程系列教材與教學(xué)資源研究開發(fā)等問題進(jìn)行了探討。
關(guān)鍵詞:程序設(shè)計;課程群建設(shè);應(yīng)用能力;教學(xué)資源
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
“計算機(jī)程序設(shè)計基礎(chǔ)”是大學(xué)計算機(jī)公共課中的核心課程,其內(nèi)容以程序設(shè)計語言的語法知識和程序設(shè)計技術(shù)的基本方法為主,同時包括程序設(shè)計方法學(xué)、數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)等方面的初步內(nèi)容。通過本課程的學(xué)習(xí),使學(xué)生掌握必須的程序設(shè)計基本知識與基本技能,培養(yǎng)學(xué)生的程序設(shè)計能力以及分析問題和解決問題的能力,幫助學(xué)生建立良好的思維模式,把計算機(jī)知識應(yīng)用到不同的實際領(lǐng)域中。
1教學(xué)現(xiàn)狀分析
分析程序設(shè)計課程的教學(xué)現(xiàn)狀,可以發(fā)現(xiàn)存在以下幾個主要問題:
(1) 程序設(shè)計語言的教學(xué)以語法教學(xué)為主線,很多情況下采用了在課堂中講語法、上機(jī)調(diào)程序的教學(xué)模式。課堂舉例往往針對語言的某個概念進(jìn)行簡單編碼,即對實際程序設(shè)計過程進(jìn)行了簡化,忽略了問題分析、算法設(shè)計和程序測試與調(diào)試等重要過程。因此,目前在教學(xué)中普遍存在著一種現(xiàn)象:學(xué)生上課能聽懂,但害怕寫程序,碰到實際問題時無從下手。往往是經(jīng)過一個學(xué)期的學(xué)習(xí),還是不會編寫程序,反映了程序設(shè)計能力的不足。當(dāng)然更談不上實際的應(yīng)用開發(fā)了。
(2) 許多考試的筆試基本上是考語法,為了提高應(yīng)試能力,導(dǎo)致程序設(shè)計的教學(xué)把注意力放到了語法的細(xì)節(jié)上,忽視了學(xué)生的實際程序設(shè)計能力的培養(yǎng),有些教材在編寫體系上也有這個問題。這些都不利于程序設(shè)計能力的培養(yǎng)。
(3) 在程序設(shè)計教材和教學(xué)中少有貫穿軟件工程的思想,難以做到重點介紹解決問題的方法和思路、把重點放在問題分析與算法設(shè)計上。
鑒于上述問題,有必要改革現(xiàn)有程序設(shè)計課程的教學(xué)內(nèi)容和教學(xué)模式,為培養(yǎng)學(xué)生的程序設(shè)計能力、應(yīng)用開發(fā)能力探索出切實可行的思路和辦法。
2程序設(shè)計教學(xué)體系
由于不同學(xué)校、不同專業(yè)對學(xué)生程序設(shè)計能力的要求不盡相同,所以程序設(shè)計課程可以采用不同的教學(xué)語言。從課程內(nèi)容側(cè)重點的不同,一般按下述方法進(jìn)行選取:
(1)C或FORTRAN 90:側(cè)重講解結(jié)構(gòu)化程序設(shè)計方法、數(shù)據(jù)結(jié)構(gòu)與算法、模塊化程序設(shè)計等。
(2)C++、C#或Java:側(cè)重講解面向?qū)ο蟮某绦蛟O(shè)計、應(yīng)用程序接口等。
(3)VC++、VB或VB .Net:側(cè)重講解可視化程序設(shè)計技術(shù)、圖形用戶界面設(shè)計及應(yīng)用程序開發(fā)等。
無論選用哪種語言,都應(yīng)講解程序設(shè)計的基礎(chǔ)知識與基本程序設(shè)計技術(shù)。
從教學(xué)研究和改革角度講,程序設(shè)計課程并不是孤立的“某門”課程,而是一個整體。這個整體既包括單一程序設(shè)計語言的個性,也包括程序設(shè)計方法和語言特征的共性,所以,宜將不同程序設(shè)計語言課程組成課程群進(jìn)行研究,合理地將相關(guān)語言工具統(tǒng)一起來,形成一個相對完善的課程體系。
3以培養(yǎng)應(yīng)用能力為目標(biāo)的程序設(shè)計教學(xué)
要以現(xiàn)代教育理念為指導(dǎo),探索人才培養(yǎng)規(guī)律和知識結(jié)構(gòu)要求,積極開展課程改革創(chuàng)新研究,以夯實基礎(chǔ)、面向應(yīng)用為原則,處理好傳統(tǒng)與現(xiàn)代、理論與實踐、知識與創(chuàng)新等關(guān)系,構(gòu)建符合培養(yǎng)創(chuàng)新型人才要求的程序設(shè)計課程群教學(xué)體系。
從計算機(jī)應(yīng)用軟件人員的基本知識結(jié)構(gòu)要求出發(fā),本文提出程序設(shè)計課程應(yīng)該形成以“語言知識—程序設(shè)計能力—應(yīng)用開發(fā)能力”為主線的教學(xué)目標(biāo),這反映了程序設(shè)計教學(xué)三個不同的目標(biāo)層次,同時探索為實現(xiàn)這一教學(xué)目標(biāo)的教學(xué)模式。
4程序設(shè)計課程教學(xué)內(nèi)容組織與教學(xué)模式
4.1教學(xué)內(nèi)容組織
程序設(shè)計教學(xué)內(nèi)容組織將面臨兩方面的問題。
一方面,由于語言工具發(fā)展很快,可供選擇的技術(shù)方案也很多(例如,.Net框架下的編程工具),課程內(nèi)容既要新,體現(xiàn)技術(shù)發(fā)展的趨勢,又要符合教學(xué)規(guī)律,體現(xiàn)教學(xué)基本要求。
另一方面,從培養(yǎng)學(xué)生程序設(shè)計能力的側(cè)重點不同,程序設(shè)計課程也可分為兩個層次:標(biāo)準(zhǔn)語言級程序設(shè)計和語言工具級程序設(shè)計。標(biāo)準(zhǔn)語言級程序設(shè)計重在語言(如C++、C等)級程序設(shè)計技術(shù)與原理,這里介紹的語言是符合語言標(biāo)準(zhǔn)的、不帶任何“方言”的標(biāo)準(zhǔn)語言,因此通用性強(qiáng),教學(xué)過程中可以選擇不同的工具環(huán)境進(jìn)行上機(jī)實現(xiàn),但在有些應(yīng)用中(例如界面設(shè)計、標(biāo)準(zhǔn)資源的利用等)和實際需要還有距離,應(yīng)用時需要補(bǔ)充環(huán)境工具的相關(guān)內(nèi)容,有些干脆作為第2門課程開設(shè);語言工具級程序設(shè)計重在利用具體的集成開發(fā)工具(如VC++、VB等)開發(fā)應(yīng)用程序,這里雖結(jié)合具體的工具環(huán)境進(jìn)行教學(xué),有時更符合軟件開發(fā)實際需要,但不是按照語言標(biāo)準(zhǔn)介紹一門程序設(shè)計語言。以C++程序設(shè)計教學(xué)為例,C++教學(xué)是講標(biāo)準(zhǔn)的C++,還是講VC++,實際上無論是教材還是實際教學(xué)中,目前兩種模式均存在。本文提出的基本思路是,將兩者結(jié)合起來進(jìn)行考慮,使原來要在2~3門課程中解決的問題放在一門課中來解決,當(dāng)然內(nèi)容的組織和優(yōu)化是需要研究解決的問題。
4.2實驗教學(xué)設(shè)計
程序設(shè)計課程實驗教學(xué)設(shè)計,特別是研究與創(chuàng)新型案例設(shè)計是需要解決的重要問題。在計算機(jī)程序設(shè)計基礎(chǔ)實驗教學(xué)中,構(gòu)建基礎(chǔ)型、綜合設(shè)計型和研究創(chuàng)新型“三層次”實驗教學(xué)體系。在計算機(jī)基礎(chǔ)教學(xué)不斷深化的背景下,要重點開展創(chuàng)新型實驗教學(xué)體系的研究,結(jié)合課程設(shè)計等實踐性教學(xué)環(huán)節(jié),開展創(chuàng)新型實驗選題、案例、指導(dǎo)模式、考核評價等系列研究。
4.3教學(xué)模式研究
程序設(shè)計課程教學(xué)模式研究,包括課堂教學(xué)內(nèi)容的組織與優(yōu)化、實踐教學(xué)以及課程設(shè)計的指導(dǎo)模式、課程考核方式與評價標(biāo)準(zhǔn)等?;镜乃悸酚?課堂教學(xué)講授從分析問題到構(gòu)造算法的方法,上機(jī)著重訓(xùn)練程序調(diào)試的能力(不僅僅是驗證程序),至于語言的語法規(guī)則,則引導(dǎo)學(xué)生通過實踐以在機(jī)器上學(xué)習(xí)為主。
5程序設(shè)計課程系列教材與教學(xué)資源研究開發(fā)
按照“語言知識—程序設(shè)計能力—軟件開發(fā)能力”的目標(biāo)要求建設(shè)“計算機(jī)程序設(shè)計基礎(chǔ)”系列教材?;镜乃悸肥?以基本語言知識和基本的程序設(shè)計方法為基礎(chǔ),即為培養(yǎng)軟件開發(fā)能力奠定基本的程序設(shè)計基礎(chǔ),以提高上機(jī)操作能力、程序設(shè)計與程序調(diào)試能力為核心,以提高軟件開發(fā)應(yīng)用能力為目標(biāo),為學(xué)生提供相應(yīng)的參考教材。
按照“語言基礎(chǔ)—程序設(shè)計—軟件開發(fā)”的層次要求組織開發(fā)案例庫。案例選題有一定應(yīng)用背景,體現(xiàn)實用性,但也要符合基礎(chǔ)學(xué)習(xí)階段的特點,不宜太復(fù)雜;案例實現(xiàn)體現(xiàn)軟件開發(fā)的思想,覆蓋面要廣,有代表性、啟發(fā)性,能起到示范、引導(dǎo)的作用。案例庫可以由網(wǎng)絡(luò)教學(xué)平臺統(tǒng)一管理,方便學(xué)生自主學(xué)習(xí)。
6結(jié)束語
本文提出程序設(shè)計課程以“語言知識—程序設(shè)計能力—應(yīng)用開發(fā)能力”為主線的教學(xué)目標(biāo),這反映了程序設(shè)計教學(xué)中的教學(xué)理念;改革程序設(shè)計課程的教學(xué)模式,并研究具體的實現(xiàn)途徑,力圖解決程序設(shè)計教學(xué)中的一些難點問題,需要不斷地改革、創(chuàng)新和實踐。
參考文獻(xiàn):
[1] 教育部高等學(xué)校非計算機(jī)專業(yè)計算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)分委員會.關(guān)于進(jìn)一步加強(qiáng)高校計算機(jī)基礎(chǔ)教學(xué)的幾點意見[M].北京:高等教育出版社,2004.
[2] 劉衛(wèi)國.當(dāng)前深化計算機(jī)基礎(chǔ)教育改革的幾個問題[J].大學(xué)教育科學(xué),2003(1):49-51.
[3] 侯進(jìn)軍.計算機(jī)高級語言的課程改革的目標(biāo)與方法研究[J].湘潭師范學(xué)院學(xué)報:自然科學(xué)版,2005,27(3):121-123.
[4] 張麗萍,劉東升.程序設(shè)計精品課程建設(shè)的研究與實踐[J].內(nèi)蒙古師范大學(xué)學(xué)報:教育科學(xué)版,2007,20(1):109-111.