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