賀海暉 石林祥
文章編號:1672-5913(2009)10-0037-02
摘要:本文闡述了在“面向對象程序設計”課程教學過程中積累的一些經驗,提出了教學的重點、實驗的安排以及改進的教學方式。
關鍵詞:面向對象程序設計;教學安排;教學方法
中圖分類號:G642
文獻標識碼:B
1課程概述
運用面向對象方法學來分析、設計和實現(xiàn)軟件系統(tǒng)的過程與人們認識客觀世界、解決實際問題的過程比較一致,面向對象的程序具有穩(wěn)定、易理解、易修改和可重用等優(yōu)點,可明顯提高軟件開發(fā)與維護的效率,降低軟件的總成本。近年來,面向對象的技術越來越受到人們的重視,對它的應用和研究遍及計算機軟件和硬件的各個領域,國內高校普遍開設了“面向對象程序設計”之類的課程,并取得了很好的教學效果。上海第二工業(yè)大學計算機與信息學院軟件工程專業(yè)將面向對象程序設計作為該專業(yè)的一門專業(yè)主干課程。該課程的任務是:希望學生理解面向對象程序設計的基本思想;掌握封裝、繼承和多態(tài)等面向對象的基本特性;掌握一門面向對象程序設計語言的功能和應用方法。
近來,我們對這門課程進行了不斷的實踐和探索,涉及到課程的性質、目標、內容和教學方法等方面,下面將會介紹相關的內容。
2課程教學要求
通過多年的教學實踐和參考其他院校的培養(yǎng)計劃,該課程開課學期為第5學期,3學分,48學時(33理論+15實踐)。學習該課程后,學生掌握面向對象程序設計技術的基本原理與設計方法,并充分理解面向對象思想的長處;并掌握一門面向對象程序設計語言,能夠使用面向對象技術來解決實際問題。本課程主要介紹面向對象程序設計的方法和C++語言的基本概念。以C++語言中的面向對象機制為主,從而掌握面向對象程序設計的基本知識和基本技能。
2.1課程內容安排
該課程目前是針對軟件工程本科專業(yè)的學生開設,圍繞著教學的目標,該課程的教學時數(shù)分配如表1所示。
面向對象程序設計是一門承上啟下的課程,該課程的先修課程為“程序設計基礎”,學生已經初步具備了一定的程序設計能力。本課程主要讓學生掌握如何運用面向對象的思想進行問題的分析以及系統(tǒng)的開發(fā)的基本方法。如何對系統(tǒng)的需求進行抽象,如何實現(xiàn)繼承、封裝和多態(tài),如何進行異常處理,如何利用模板提高系統(tǒng)的可重用性和可維護性,如何進行輸入輸出處理。
該課程要求學生掌握面向對象的程序設計方法,是一門與實際結合非常緊密、實用性非常強的課程。因此,教師在教學中與實際應用緊密結合,由淺入深進行系統(tǒng)的介紹。在實際講解中,結合貼切的例子,同時在C++語言的開發(fā)平臺上演示,教學效果會更好。
2.2理論教學內容
課程的內容體系要反映課程性質。面向對象程序設計主要圍繞應用,并將理論與實踐結合起來,首先是介紹面向對象的基本概念以及方法;其次是介紹如何應用C++語言去實現(xiàn)面向對象的概念和方法。理論教學的重點是:(1)面向對象程序設計的基本概念,如抽象、封裝、消息等;(2)類與對象(包括數(shù)據(jù)成員和成員函數(shù));(3)繼承機制;(4)多態(tài)性和虛函數(shù);(5)運算符重載;(6)模板;(7)I/O流類庫;(8)異常處理機制。
加強課堂教學,提高課堂教學質量,注重學生動手能力的培養(yǎng),由原來的以教師為中心轉變成以學生為中心,加強師生間的教學互動。講解過程中,將知識點展開并與實際工程相結合,課堂上老師提出問題后,由學生回答思路,教師現(xiàn)場講解和編寫程序實現(xiàn)功能,并模仿學生容易出現(xiàn)錯誤的場景。雖然學生在前序課程中學習過C++的基本語法,但是沒有涉及到對象和類的編程,需要運用面向對象的思想去編程實現(xiàn)功能,有一定的難度,尤其是需要從面向過程轉變?yōu)槊嫦驅ο蟮?,這種設計思想的轉變,有
一定的困難。對于課程涉及較深的內容,如Windows應用程序開發(fā)時,只給出開發(fā)的基本思路以及相關的參考資料,讓那些有能力和興趣的同學課外進行學習。
2.3實驗教學內容
該課程應該說是一門應用性比較強的課程,因此在課程安排中設置了15學時的實驗,課內實驗內容安排如表2所示。
本課程選用C++語言來進行講授。C++語言是在C語言基礎上擴充了面向對象機制而形成的一種面向對象程序設計語言。在教授C++語言的同時,講授面向對象的程序設計方法。而本課程的實驗,就是讓學生運用課堂上學到的概念、方法來解決實際問題,以進一步鞏固對教材的理解。
實驗目的是使學生熟悉VC++6.0開發(fā)環(huán)境的使用,能用該工具進行C++程序設計、查看源代碼、使用幫助。了解面向對象程序設計思想和面向對象軟件開發(fā)過程。學會用C++語言進行簡單的面向對象程序設計,理解并掌握封裝、繼承、多態(tài)等面向對象程序設計方法。學會C++標準庫函數(shù)的查詢、調用技巧。為今后學習其他面向對象語言和應用開發(fā)打下基礎。
3教學方式
教學方式的改革是為了達到課程目標創(chuàng)造運作條件,理論和實驗教學都要使學生始終處于交流和探究的過程中,不斷激發(fā)學生的認識和思路。為此我們采取理論教學與實驗教學結合,課內討論與課外大作業(yè)結合,課堂教學與網(wǎng)絡支持結合的方式。
3.1基于應用實例的理論教學
“面向對象程序設計”是一門實踐性較強的課程。在講解其理論知識時,我們也注重與應用實例相結合,使一些概念性的理論也盡量通俗易懂。比如:講到類的封裝性,會用ATM機作為例子來打比方,使其易于理解。對于基本的語法和新的知識點也是以應用案例展開來介紹,學生通過案例來加深對基本概念、基本原理的理解,來掌握語法和算法。同時指出該案例還存在或遺留的問題,這些問題的解決需要新的理論、新的方法,為后一個案例引出作鋪墊。以一個比較完整的應用例子貫穿整個教學過程,并層層剖析,不斷補充完善,最終形成一個功能相對完整的面向對象的軟件系統(tǒng),也同時完成了全部教學內容講授。
3.2基于任務的實驗教學
在與課程配套的實驗中,除了部分難度較小的驗證性實驗外,還安排難度較高的設計性和綜合性實驗。在基本概念知識掌握后,更需要提高應用能力。針對學生的實際能力和客觀上存在能力差異,按照實驗教學大綱自編了實驗教材。大多的實驗都按難度分成必做題和選做題兩個部分。所有學生都必須完成必做題。對部分能力較強、學有余力的學生,則進一步要求他們完成難度較大的選做題。部分選做題是以任務的形式給出基本需求,需要學生自己理解和分析。主要是為了提高學生的理解和分析的能力,并提供給學生比較大的發(fā)揮空間。學生可以憑自己的能力,以不同的形式完成任務。
3.3創(chuàng)建網(wǎng)絡學習環(huán)境
為了配合課程教學,我們創(chuàng)建了“面向對象程序設計”課程網(wǎng)站。網(wǎng)站除了教學管理和信息發(fā)布外,主要是作為學生獲取資源、評價和交流的環(huán)境,使學生對該課程能有一個進行公共交流的平臺。網(wǎng)站會提供給一些課程相關的教學資料和相關的鏈接,供學生下載,以便進行課后的復習和自學。提供一個論壇的欄目,專門進行各種主題的討論,可以是教師組織的專題討論,也可以是個別學生對課堂上的問題引發(fā)的討論。在這個討論區(qū)中,教師只起一個組織作用,學生發(fā)揮他們的自主和能動性。
4結束語
“面向對象程序設計”是一門計算機軟件工程專業(yè)的專業(yè)課,也是一門應用性很強的課程,所需知識將會在今后其他后續(xù)課程中得到運用,因此該課程的教學方法也需要在實踐中不斷的改進,才能適應實際的需要和學生的需求。本文中給出的一些方法,也需要根據(jù)具體的學生需要,在教學中及時調整授課的內容和方法,讓更多的學生從中受益。
參考文獻:
[1] 杜獻峰.“數(shù)據(jù)庫原理及應用”課程教學實踐與探索[J]. 計算機教育,2008(6).
[2] 張軍征,于文.“多媒體教學軟件設計與開發(fā)”課程建設的研究與實踐[J]. 電化教育,2007(11).
[3] 陳琳.“數(shù)字影像技術”課程的創(chuàng)設與教學[J]. 電化教育,2006(3).
[4] 馬石安,魏文平. 面向對象程序設計教程(C++語言描述)[M]. 北京:清華大學出版社,2007.