寧雪靜 沈澤剛
文章編號:1672-5913(2009)02-0108-02
摘要:本文通過對高校高級程序設計語言課程設置的調查,在分析高級程序設計語言在教學中不足的基礎上,對高級語言課程進行了課程改革和整合,提出了將面向對象程序設計作為程序設計課程的入門語言。
關鍵詞:高級語言程序設計;面向對象;面向過程;課程整合
中圖分類號:G642
文獻標識碼:B
1高級程序設計課程的現狀
程序設計課程作為大學計算機專業的核心課程,以培養掌握正確的程序設計方法與思想為目的。通過對該課程的學習,學生不僅要掌握高級語言程序設計的知識,更重要的是要掌握在實踐中應用程序設計的思想和方法,進而養成獨立思考的習慣和利用計算機解決實際問題的能力,并為后續的計算機課程,如數據結構、操作系統、軟件工程等打下良好的基礎。該課程內容變化多、更新速度快,歷經Basic、FORTRAN、Pascal、C等語言,最終形成以C++和Java為代表的面向對象的語言,成為程序設計的主流語言。因此,程序設計語言課程的教學、學生掌握程序設計語言的程度將直接影響到計算機在其專業領域中的應用。通過調查研究,目前國內大部分高校程序設計語言課程設置情況如表1所示。

大部分高校認為C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。Java語言是一種純面向對象程序設計語言,為了適應企業實際工作的需要,很多高校將Java作為選修課開設。
2高級語言程序設計教學中的問題
2.1從學生角度分析
從表1中我們可以看出,每門程序設計課程都包含了數據類型、運算符與表達式、語句,其內容是基本相同的,而老師在講授這幾門課程的時候都要將這些內容進行重復講授,這樣不僅浪費了教學時間,也無法使學生在有限的學時內領會該語言的精髓,對程序設計語言的掌握只是蜻蜓點水,沒有一門精通。這樣就會使學生產生厭學情緒。由此可見,目前高校對于程序設計課程的設置不利于學生個性的發展,也很難培養出知識面廣、動手能力強、綜合素質高的專業學生。
2.2從認知心理學角度分析
建構主義認為,教學不能無視學習者的已有知識經驗,簡單強硬地從外部對學習者實施知識的“填灌”,而是應當把學習者原有的知識經驗作為新知識的生長點,引導學習者從原有的知識經驗中,生長新的知識經驗。學習者已有的知識經驗是學習的充分條件,一些習慣了用結構化方法設計程序、再學習面向對象的學生反映他們設計出來的程序總是不像“面向對象的”,盡管他們也設法使用了類來組織程序。其原因是已有的經驗先入為主,以后在接受新的思想就比較難了,也就是說過去獲得的知識對新知識的學習起阻礙作用,使新知識的學習發生困難,即負遷移。所以從結構化方法到面向對象方法的轉變并不像從Basic到Pascal語言、或從Pascal到C語言的轉變那樣容易。
2.3從應用角度分析
面向過程程序設計是通過不斷在程序的控制結構中增加細節來開發程序,可重用性較差,主要是為大型的工程計算或者為了完成某個任務而求出結果。而面向對象編程技術降低了軟件開發的復雜度,能夠開發出具有高可靠性的、可重用和易維護的軟件,提高軟件開發的效率,它對信息科學、軟件工程、人工智能、認知科學及系統工程等學科都將產生深遠的影響。
3 課程整合的設想
3.1減少重復的課程內容
為了讓學生更好地學習高級語言程序設計課程,各種語言中重復、類似的知識點只需在入門語言中作詳細的講解,在以后的課程中可以略講或者以復習的形式進行,例如在每門程序設計課程中都有控制語句,這些語句的講解可以利用講解程序的形式進行復習,這樣學生會有更多的時間接受新的知識,激發學生的學習興趣及創新精神。
3.2注重課程內容的實用性
目前,國內高校傳統課程較多,體現新知識、新內容的課程較少。國外高校非常重視知識更新,隨時將新的知識內容融入教學之中。我國在這方面明顯滯后,傳統的課程內容要繼承,最主要的是發揚創新。國外高校的課程設置時刻考慮到社會的需求, 進行社會調查科學預測,確定所開課程。如美國一些高校開設的視像與多媒體、影像處理就是根據美國好萊塢影視公司對人才的需要而開設的。因而,國內高校在高級語言程序設計的課程設置上應注重課程的實用性和先進性,所開的課程應充分的考慮到社會的實際需要。
3.3面向對象程序設計作為入門語言
建構主義認為,在學習過程中,我們很希望把學習某一知識與技能的效果,能夠順利地運用到和這一種知識與技能相類似的其他新知識與技能的領域中,從而產生連貫性的長期效果。先講授面向對象的程序設計思想,后講授面向過程的方法與技巧,就好像是先見森林,后見樹木。讓學生先學會將人類的自然思維方式用于程序設計,建立系統與全局的觀念。然后,在實踐環節和后續課程中,不斷學習各種算法,訓練編程技巧。因而有必要從一開始就讓學生采用面向對象思維方式去解決實際問題,并讓學生以面向對象的程序設計語言作為基本工具開展后續課程的學習。
3.4合理設置程序設計課程
程序設計課程是計算機專業學生必須掌握的知識和技能,能否較好地使用程序設計課程是將直接影響后續課程的學習和畢業后的實際工作能力,這樣就需要對程序設計課程進行合理的設置,經過分析研究,合理的課程設置如圖1所示。

C++和Java都是面向對象語言,C++是一種大型語言,其功能、概念和語法規定都比較復雜,要深入掌握需要花較多的時間,尤其是要有較豐富的實踐經驗。Java則是完全的面向對象語言,它句法更清晰,規模更小,更易學,從根本上解決了C++的固有缺陷。所以應將Java作為入門語言。
C++是C語言的超集,用C++編成的主要是軟件專業人員,學校里計算機專業的程序設計課程任務是進行程序設計的基本訓練,因此,對于當前的大多數學生來說,應先掌握好C語言程序設計,有了C語言的基礎再學習C++就不會太難。
4結束語
程序設計語言課程的教學目的不能只停留在教什么語言,學生會什么語言的層次上,所以對于培養計算機專業人才的程序設計課程,必須進行科學的課程設置,以適應新世紀人才培養的需要。這樣,計算機科學與技術專業的學生才能在程序設計語言種類繁多、新語言不斷涌現的情況下,使自己立于不敗之地。
參考文獻
[1] 葉乃文,喻國寶. 面向對象程序設計[M]. 北京:清華大學出版社,2004.
[2] 殷兆麟. Java語言程序設計[M]. 北京:高等教育出版社,2003.
[3] 李文軍,李師賢,周小聰. C++作為計算機專業入門語言的實踐與探討[J]. 計算機科學,1999,(4).
[4] 孟威. 關于選擇程序設計語言的一點想法[J]. 計算機教育,2006,(7).
[5] 陳衛東,高攀. 計算機高級語言教學的若干問題思考[J]. 福建電腦,2007,(8).
[6] 李秉章,徐亞平,羅燁,黃海軍. 以提高能力為目標進行計算機專業課程教學[J]. 計算機教育,2006,(12).
[7] 陳曉紅. 面向過程于面向對象—兩種程序設計方法比較與思考[J]. 計算機時代,2001,(11).
[8] 李曉輝. 淺析面向過程與面向對象[J]. 長春大學報,2004,(4).