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