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