寧雪靜 沈澤剛
文章編號:1672-5913(2009)02-0108-02
摘要:本文通過對高校高級程序設計語言課程設置的調(diào)查,在分析高級程序設計語言在教學中不足的基礎上,對高級語言課程進行了課程改革和整合,提出了將面向?qū)ο蟪绦蛟O計作為程序設計課程的入門語言。
關鍵詞:高級語言程序設計;面向?qū)ο?;面向過程;課程整合
中圖分類號:G642
文獻標識碼:B
1高級程序設計課程的現(xiàn)狀
程序設計課程作為大學計算機專業(yè)的核心課程,以培養(yǎng)掌握正確的程序設計方法與思想為目的。通過對該課程的學習,學生不僅要掌握高級語言程序設計的知識,更重要的是要掌握在實踐中應用程序設計的思想和方法,進而養(yǎng)成獨立思考的習慣和利用計算機解決實際問題的能力,并為后續(xù)的計算機課程,如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、軟件工程等打下良好的基礎。該課程內(nèi)容變化多、更新速度快,歷經(jīng)Basic、FORTRAN、Pascal、C等語言,最終形成以C++和Java為代表的面向?qū)ο蟮恼Z言,成為程序設計的主流語言。因此,程序設計語言課程的教學、學生掌握程序設計語言的程度將直接影響到計算機在其專業(yè)領域中的應用。通過調(diào)查研究,目前國內(nèi)大部分高校程序設計語言課程設置情況如表1所示。
大部分高校認為C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向?qū)ο蟮恼Z言,從而達到事半功倍的目的。Java語言是一種純面向?qū)ο蟪绦蛟O計語言,為了適應企業(yè)實際工作的需要,很多高校將Java作為選修課開設。
2高級語言程序設計教學中的問題
2.1從學生角度分析
從表1中我們可以看出,每門程序設計課程都包含了數(shù)據(jù)類型、運算符與表達式、語句,其內(nèi)容是基本相同的,而老師在講授這幾門課程的時候都要將這些內(nèi)容進行重復講授,這樣不僅浪費了教學時間,也無法使學生在有限的學時內(nèi)領會該語言的精髓,對程序設計語言的掌握只是蜻蜓點水,沒有一門精通。這樣就會使學生產(chǎn)生厭學情緒。由此可見,目前高校對于程序設計課程的設置不利于學生個性的發(fā)展,也很難培養(yǎng)出知識面廣、動手能力強、綜合素質(zhì)高的專業(yè)學生。
2.2從認知心理學角度分析
建構(gòu)主義認為,教學不能無視學習者的已有知識經(jīng)驗,簡單強硬地從外部對學習者實施知識的“填灌”,而是應當把學習者原有的知識經(jīng)驗作為新知識的生長點,引導學習者從原有的知識經(jīng)驗中,生長新的知識經(jīng)驗。學習者已有的知識經(jīng)驗是學習的充分條件,一些習慣了用結(jié)構(gòu)化方法設計程序、再學習面向?qū)ο蟮膶W生反映他們設計出來的程序總是不像“面向?qū)ο蟮摹?,盡管他們也設法使用了類來組織程序。其原因是已有的經(jīng)驗先入為主,以后在接受新的思想就比較難了,也就是說過去獲得的知識對新知識的學習起阻礙作用,使新知識的學習發(fā)生困難,即負遷移。所以從結(jié)構(gòu)化方法到面向?qū)ο蠓椒ǖ霓D(zhuǎn)變并不像從Basic到Pascal語言、或從Pascal到C語言的轉(zhuǎn)變那樣容易。
2.3從應用角度分析
面向過程程序設計是通過不斷在程序的控制結(jié)構(gòu)中增加細節(jié)來開發(fā)程序,可重用性較差,主要是為大型的工程計算或者為了完成某個任務而求出結(jié)果。而面向?qū)ο缶幊碳夹g降低了軟件開發(fā)的復雜度,能夠開發(fā)出具有高可靠性的、可重用和易維護的軟件,提高軟件開發(fā)的效率,它對信息科學、軟件工程、人工智能、認知科學及系統(tǒng)工程等學科都將產(chǎn)生深遠的影響。
3 課程整合的設想
3.1減少重復的課程內(nèi)容
為了讓學生更好地學習高級語言程序設計課程,各種語言中重復、類似的知識點只需在入門語言中作詳細的講解,在以后的課程中可以略講或者以復習的形式進行,例如在每門程序設計課程中都有控制語句,這些語句的講解可以利用講解程序的形式進行復習,這樣學生會有更多的時間接受新的知識,激發(fā)學生的學習興趣及創(chuàng)新精神。
3.2注重課程內(nèi)容的實用性
目前,國內(nèi)高校傳統(tǒng)課程較多,體現(xiàn)新知識、新內(nèi)容的課程較少。國外高校非常重視知識更新,隨時將新的知識內(nèi)容融入教學之中。我國在這方面明顯滯后,傳統(tǒng)的課程內(nèi)容要繼承,最主要的是發(fā)揚創(chuàng)新。國外高校的課程設置時刻考慮到社會的需求, 進行社會調(diào)查科學預測,確定所開課程。如美國一些高校開設的視像與多媒體、影像處理就是根據(jù)美國好萊塢影視公司對人才的需要而開設的。因而,國內(nèi)高校在高級語言程序設計的課程設置上應注重課程的實用性和先進性,所開的課程應充分的考慮到社會的實際需要。
3.3面向?qū)ο蟪绦蛟O計作為入門語言
建構(gòu)主義認為,在學習過程中,我們很希望把學習某一知識與技能的效果,能夠順利地運用到和這一種知識與技能相類似的其他新知識與技能的領域中,從而產(chǎn)生連貫性的長期效果。先講授面向?qū)ο蟮某绦蛟O計思想,后講授面向過程的方法與技巧,就好像是先見森林,后見樹木。讓學生先學會將人類的自然思維方式用于程序設計,建立系統(tǒng)與全局的觀念。然后,在實踐環(huán)節(jié)和后續(xù)課程中,不斷學習各種算法,訓練編程技巧。因而有必要從一開始就讓學生采用面向?qū)ο笏季S方式去解決實際問題,并讓學生以面向?qū)ο蟮某绦蛟O計語言作為基本工具開展后續(xù)課程的學習。
3.4合理設置程序設計課程
程序設計課程是計算機專業(yè)學生必須掌握的知識和技能,能否較好地使用程序設計課程是將直接影響后續(xù)課程的學習和畢業(yè)后的實際工作能力,這樣就需要對程序設計課程進行合理的設置,經(jīng)過分析研究,合理的課程設置如圖1所示。
C++和Java都是面向?qū)ο笳Z言,C++是一種大型語言,其功能、概念和語法規(guī)定都比較復雜,要深入掌握需要花較多的時間,尤其是要有較豐富的實踐經(jīng)驗。Java則是完全的面向?qū)ο笳Z言,它句法更清晰,規(guī)模更小,更易學,從根本上解決了C++的固有缺陷。所以應將Java作為入門語言。
C++是C語言的超集,用C++編成的主要是軟件專業(yè)人員,學校里計算機專業(yè)的程序設計課程任務是進行程序設計的基本訓練,因此,對于當前的大多數(shù)學生來說,應先掌握好C語言程序設計,有了C語言的基礎再學習C++就不會太難。
4結(jié)束語
程序設計語言課程的教學目的不能只停留在教什么語言,學生會什么語言的層次上,所以對于培養(yǎng)計算機專業(yè)人才的程序設計課程,必須進行科學的課程設置,以適應新世紀人才培養(yǎng)的需要。這樣,計算機科學與技術專業(yè)的學生才能在程序設計語言種類繁多、新語言不斷涌現(xiàn)的情況下,使自己立于不敗之地。
參考文獻
[1] 葉乃文,喻國寶. 面向?qū)ο蟪绦蛟O計[M]. 北京:清華大學出版社,2004.
[2] 殷兆麟. Java語言程序設計[M]. 北京:高等教育出版社,2003.
[3] 李文軍,李師賢,周小聰. C++作為計算機專業(yè)入門語言的實踐與探討[J]. 計算機科學,1999,(4).
[4] 孟威. 關于選擇程序設計語言的一點想法[J]. 計算機教育,2006,(7).
[5] 陳衛(wèi)東,高攀. 計算機高級語言教學的若干問題思考[J]. 福建電腦,2007,(8).
[6] 李秉章,徐亞平,羅燁,黃海軍. 以提高能力為目標進行計算機專業(yè)課程教學[J]. 計算機教育,2006,(12).
[7] 陳曉紅. 面向過程于面向?qū)ο蟆獌煞N程序設計方法比較與思考[J]. 計算機時代,2001,(11).
[8] 李曉輝. 淺析面向過程與面向?qū)ο骩J]. 長春大學報,2004,(4).