[摘 要]針對目前C# 程序設(shè)計(jì)課程教學(xué)中存在的問題,提出了項(xiàng)目教學(xué)法的解決方案,給出了面向?qū)ο蟪绦蛟O(shè)計(jì)課程中實(shí)施項(xiàng)目教學(xué)法的教學(xué)目的、教學(xué)內(nèi)容,設(shè)計(jì)出了項(xiàng)目教學(xué)法的團(tuán)隊(duì)分工體制、項(xiàng)目教學(xué)法的項(xiàng)目進(jìn)度及質(zhì)量控制方法。
[關(guān)鍵詞]項(xiàng)目教學(xué)法 面向?qū)ο蟪绦蛟O(shè)計(jì) C#程序設(shè)計(jì)
[中圖分類號] G642 [文獻(xiàn)標(biāo)識碼] A [文章編號] 2095-3437(2013)01-0091-02
《面向?qū)ο蟪绦蛟O(shè)計(jì)》是大學(xué)計(jì)算機(jī)專業(yè)及計(jì)算機(jī)相關(guān)專業(yè)的一門專業(yè)課程。計(jì)算機(jī)專業(yè)傳統(tǒng)的教學(xué)方式,有其自身的弊端,不能適應(yīng)高校人才培養(yǎng)的目標(biāo),這種弊端具體表現(xiàn)為:學(xué)生被動(dòng)地接受知識,呆板地進(jìn)行模仿,久而久之,學(xué)生的學(xué)習(xí)興趣被磨滅,對待學(xué)習(xí)由最初的主動(dòng)學(xué)習(xí),變?yōu)閰捑雽W(xué)習(xí),從而使其主動(dòng)性和創(chuàng)造性越來越差。“工學(xué)結(jié)合”的人才培養(yǎng)模式、“基于工作過程”的教學(xué)理念等給人才培養(yǎng)的教學(xué)賦予了新的內(nèi)涵與意義。項(xiàng)目教學(xué)法正是這一教學(xué)理念得以實(shí)現(xiàn)的具體方式之一。因此,在《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程的教學(xué)過程中,采取“項(xiàng)目教學(xué)法”,可使教學(xué)達(dá)到更好的效果。本文將以C#程序設(shè)計(jì)為例,對項(xiàng)目教學(xué)法在《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程教學(xué)中的應(yīng)用進(jìn)行研究。
一、相關(guān)概念
(一)面向?qū)ο蟪绦蛟O(shè)計(jì)
面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,OOP)是一種計(jì)算機(jī)編程架構(gòu)。OOP 的一條基本原則是計(jì)算機(jī)程序是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。OOP 達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個(gè)對象都能夠接收信息、處理數(shù)據(jù)和向其他對象發(fā)送信息。面向?qū)ο蟪绦蛟O(shè)計(jì)中的概念主要包括:對象、類、數(shù)據(jù)抽象、繼承、動(dòng)態(tài)綁定、數(shù)據(jù)封裝、多態(tài)性、消息傳遞。通過這些概念面向?qū)ο蟮乃枷氲玫搅司唧w的體現(xiàn)。
面向?qū)ο蟪绦蛟O(shè)計(jì)具有豐富的理論知識,同時(shí)它的實(shí)踐性很強(qiáng),需要大量的實(shí)踐,在真實(shí)的項(xiàng)目中鍛煉,才能不斷地提升編程能力以解決實(shí)際問題,才能活學(xué)活用、理解其精髓。
(二)項(xiàng)目教學(xué)法
項(xiàng)目教學(xué)法是一種典型的以學(xué)生為中心的教學(xué)方法,是學(xué)生在教師的指導(dǎo)下親自處理一個(gè)項(xiàng)目的全過程,在這一過程中學(xué)習(xí)掌握教學(xué)計(jì)劃內(nèi)的教學(xué)內(nèi)容。學(xué)生全部或部分獨(dú)立組織、安排學(xué)習(xí)行為,解決在處理項(xiàng)目中遇到的困難,提高了學(xué)生的興趣,自然能調(diào)動(dòng)學(xué)習(xí)的積極性。
在實(shí)踐性強(qiáng)的課程中,項(xiàng)目教學(xué)法有其獨(dú)特的優(yōu)勢。在項(xiàng)目教學(xué)法的具體實(shí)踐中,教師的作用不再是一部百科全書或一個(gè)供學(xué)生利用的資料庫,而成為一名向?qū)Ш皖檰枴K麕椭鷮W(xué)生在獨(dú)立研究的道路上迅速前進(jìn),引導(dǎo)學(xué)生如何在實(shí)踐中發(fā)現(xiàn)新知識,掌握新內(nèi)容。學(xué)生作為學(xué)習(xí)的主體,通過獨(dú)立完成項(xiàng)目把理論與實(shí)踐有機(jī)地結(jié)合起來,不僅提高了理論水平和實(shí)操技能,而且又在教師有目的地引導(dǎo)下,培養(yǎng)了合作、解決問題等綜合能力。同時(shí),教師在觀察學(xué)生、幫助學(xué)生的過程中,開闊了視野,提高了專業(yè)水平。可以說,項(xiàng)目教學(xué)法是師生共同完成項(xiàng)目,共同取得進(jìn)步的教學(xué)方法。
(三) C#
C#是微軟公司在2000年6月發(fā)布的一種為.NET Framework量身定做新的編程語言, C#擁有C/C++的強(qiáng)大功能以及Visual Basic簡易使用的特性,是第一個(gè)組件導(dǎo)向的程序語言,和C++與Java一樣亦為面向?qū)ο螅∣OP)程序語言。
二、C#程序設(shè)計(jì)課程教學(xué)存在的問題
目前,一些大學(xué)在開設(shè)的面向?qū)ο蟪绦蛟O(shè)計(jì)課程中主要講解的語言有幾種,C#就是其中的一種,其中存在問題如下:
1.從現(xiàn)有C# 程序設(shè)計(jì)教材的內(nèi)容來看,存在著系統(tǒng)性不強(qiáng)、前后邏輯相互脫節(jié),不常用或基本淘汰的內(nèi)容仍然存在等問題; 實(shí)例缺乏實(shí)用性、趣味性、規(guī)范性及標(biāo)準(zhǔn)性; 缺乏面向?qū)ο蟮脑O(shè)計(jì)理念等。
2.從教學(xué)方法來看,采用的是教師教什么學(xué)生學(xué)什么、按部就班地學(xué)習(xí)知識點(diǎn)的傳統(tǒng)灌輸式教學(xué)方法,忽略了學(xué)生的積極性、主動(dòng)性的發(fā)揮,基本沒有團(tuán)隊(duì)合作環(huán)節(jié),對如何利用C# 語言開發(fā)項(xiàng)目及學(xué)生職業(yè)素質(zhì)的培養(yǎng)做得還不夠。
3.從課程體系來看,缺乏與時(shí)俱進(jìn)的前瞻性; 缺乏運(yùn)用面向?qū)ο笾R設(shè)計(jì)、解決實(shí)際問題的能力培養(yǎng)。
三、項(xiàng)目教學(xué)法在C#程序設(shè)計(jì)教學(xué)中的應(yīng)用
(一)項(xiàng)目教學(xué)法的教學(xué)目的
1.掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)和方法。
2.學(xué)習(xí)用C#設(shè)計(jì)程序解決實(shí)際問題。
3.初步了解.Net平臺環(huán)境和工具。
4.提高調(diào)試程序和使用開發(fā)工具的能力。
5.培養(yǎng)學(xué)生的團(tuán)隊(duì)精神并清楚實(shí)際項(xiàng)目的整個(gè)開發(fā)流程。
6.總體目標(biāo):為從事軟件研制開發(fā)打下基礎(chǔ),將來能勝任軟件公司的開發(fā)工作。
(二)項(xiàng)目教學(xué)法的內(nèi)容
項(xiàng)目要根據(jù)課程教學(xué)目的、課程的實(shí)際教學(xué)內(nèi)容,結(jié)合學(xué)生的實(shí)際情況,設(shè)計(jì)出難易度適中并和學(xué)生的學(xué)習(xí)生活等相關(guān)有實(shí)際意義的項(xiàng)目題目。在項(xiàng)目實(shí)施過程中指導(dǎo)學(xué)生,給出完成項(xiàng)目所需參考資料、注意事項(xiàng)及規(guī)范及標(biāo)準(zhǔn)等; 講解實(shí)際項(xiàng)目中遇到的問題、失敗的案例及經(jīng)驗(yàn)教訓(xùn); 理解項(xiàng)目成功取決于每個(gè)成員的不斷努力,提倡團(tuán)隊(duì)合作精神。具體內(nèi)容如下:
1.總體定義項(xiàng)目所要解決的問題,包括了解用戶的需求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會因素等3個(gè)方面研究并論證本軟件項(xiàng)目的可行性,編寫可行性研究報(bào)告,探討解決問題的方案,并對可供使用的資源(如計(jì)算機(jī)硬件、系統(tǒng)軟件、人力等)成本,可取得的效益和開發(fā)進(jìn)度做出估計(jì)。制訂完成開發(fā)任務(wù)的實(shí)施計(jì)劃。
2.做出軟件項(xiàng)目的需求分析,其中要給出數(shù)據(jù)字典,流程圖等。根據(jù)需求說明書的要求,設(shè)計(jì)建立相應(yīng)的軟件系統(tǒng)體系結(jié)構(gòu),并將整個(gè)系統(tǒng)分解成若干個(gè)子系統(tǒng)或模塊,定義子系統(tǒng)或模塊間的接口關(guān)系,對各子系統(tǒng)進(jìn)行具體設(shè)計(jì),編寫軟件概要設(shè)計(jì)說明書和詳細(xì)設(shè)計(jì)說明書,數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說明書,制定軟件測試計(jì)劃。
3.進(jìn)行軟件設(shè)計(jì)。軟件設(shè)計(jì)的主要任務(wù)就是將軟件分解成模塊,模塊指的是能實(shí)現(xiàn)某個(gè)功能的數(shù)據(jù)和程序說明、可執(zhí)行程序的程序單元。可以是一個(gè)函數(shù)、過程、子程序、一段帶有程序說明的獨(dú)立的程序和數(shù)據(jù),也可以是可組合、可分解和可更換的功能單元。第二步進(jìn)行模塊設(shè)計(jì),即結(jié)構(gòu)設(shè)計(jì),其主要目標(biāo)就是給出軟件的模塊結(jié)構(gòu),用軟件結(jié)構(gòu)圖表示。
4.構(gòu)建軟件運(yùn)行環(huán)境,包括軟件和硬件兩方面。
5.完成軟件編碼和單元測試的任務(wù)。
6.進(jìn)行項(xiàng)目開發(fā)的成本核算,作為項(xiàng)目教學(xué)法的總體經(jīng)濟(jì)指標(biāo),即教與學(xué)的綜合結(jié)果評價(jià)。
(三)項(xiàng)目教學(xué)法的團(tuán)隊(duì)分工
1.確定項(xiàng)目的主負(fù)責(zé)人,即任課教師。
2.確定項(xiàng)目各小組的組長,組長需要具有良好的協(xié)調(diào)溝通能力,老師的指導(dǎo)下制定本小組的項(xiàng)目開發(fā)計(jì)劃,并分配任務(wù),監(jiān)督實(shí)施項(xiàng)目開發(fā)。
3.確定項(xiàng)目各分工小組的成員角色,如程序員、測試員等,每小組3到5人左右。成員搭配合理、能力強(qiáng)弱互補(bǔ),具體任務(wù)要落實(shí)到每位成員。
(四)項(xiàng)目教學(xué)法的進(jìn)度及質(zhì)量控制
1.任課教師檢查并指導(dǎo)作業(yè)日報(bào)格式及內(nèi)容的正確性。
2.項(xiàng)目開發(fā)的進(jìn)度管理。各組長檢查并控制本小組項(xiàng)目開發(fā)進(jìn)度,每日或每周舉行研討例會;任課教師檢查與控制各小組的項(xiàng)目開發(fā)進(jìn)度,舉行中期檢查及后期驗(yàn)收。
3.項(xiàng)目開發(fā)的質(zhì)量管理。主講教師、各組長檢查小組成員的項(xiàng)目設(shè)計(jì)書、程序代碼的規(guī)范性與標(biāo)準(zhǔn)性。
四、結(jié)論
項(xiàng)目教學(xué)法具有傳統(tǒng)教育不具備的優(yōu)勢,它最顯著的特點(diǎn)是“以項(xiàng)目為主線、教師為主導(dǎo)、學(xué)生為主體”,改變了以往“教師純講,學(xué)生純聽” 的被動(dòng)教學(xué)模式,創(chuàng)造了學(xué)生主動(dòng)參與、自主協(xié)作、探索創(chuàng)新的新型教學(xué)模式。項(xiàng)目教學(xué)法能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,鍛煉了學(xué)生的實(shí)踐動(dòng)手能力、團(tuán)隊(duì)協(xié)作能力以及發(fā)現(xiàn)、分析、解決問題的能力; 另一方面也拓展了教師自己的相關(guān)專業(yè)技能與教學(xué)方法,調(diào)動(dòng)教師開展教學(xué)創(chuàng)新研究的積極性。把項(xiàng)目教學(xué)法運(yùn)用到C#程序設(shè)計(jì)這樣的實(shí)踐性強(qiáng)的計(jì)算機(jī)課程的教學(xué)中,通過團(tuán)隊(duì)合作解決實(shí)際問題、按期保質(zhì)保量地完成項(xiàng)目開發(fā),使學(xué)生既掌握了相關(guān)專業(yè)的理論知識、也熟悉了面向?qū)ο驝# 程序設(shè)計(jì)的開發(fā)過程,同時(shí)加快了C# 程序設(shè)計(jì)課程體系、教學(xué)內(nèi)容及教學(xué)模式等方面的改革,轉(zhuǎn)變了教育理念,從而提高了高校的教學(xué)水平和教學(xué)質(zhì)量,更好地實(shí)現(xiàn)為社會培養(yǎng)高級軟件開發(fā)人才的目的。
[ 參 考 文 獻(xiàn) ]
[1] 呂真,張浩.面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)初探[J].電腦知識與技術(shù),2011,7(3):603-604.
[2] 沈蘊(yùn)梅.《C# 程序設(shè)計(jì)》教學(xué)改革之初探[J].科技信息,2009,(33).
[3] 朱劍鋒,王冬,熊志斌,尹成國.項(xiàng)目教學(xué)法在Java 程序設(shè)計(jì)課程教學(xué)中的應(yīng)用[J]. 瓊州學(xué)院學(xué)報(bào),2011,18(2):82-84.
[4] 劉婷, 胡玉娟.項(xiàng)目教學(xué)法在計(jì)算機(jī)教學(xué)中的應(yīng)用研究[J].長春教育學(xué)院學(xué)報(bào),2011,27(2) :125-126.
[5] 雷詩梅.基于項(xiàng)目教學(xué)法的教學(xué)實(shí)踐與思考[J].新鄉(xiāng)學(xué)院學(xué)報(bào)(社會科學(xué)版),2011,25(1):196-198.
[責(zé)任編輯:陳 兵]