尤志寧
摘要:分析高校中軟件專業(yè)教學(xué)的特點和不足,提出“全員全期項目驅(qū)動”的教學(xué)模式。模式重點在于使項目任務(wù)貫穿學(xué)生整個大學(xué)期間,并提出該模式今后的改進(jìn)建議。
關(guān)鍵詞:項目驅(qū)動;教學(xué)模式;軟件教學(xué)
目前軟件被廣泛應(yīng)用于世界的各個領(lǐng)域,對人們的生活和工作都產(chǎn)生了深遠(yuǎn)的影響。那么學(xué)校如何才能培養(yǎng)出符合社會需求、具有職業(yè)素養(yǎng)和實踐能力的人才呢?尤其是社會需求量不斷上漲及實踐能力要求越來越高的軟件開發(fā)類人才?!叭珕T全期項目驅(qū)動”教學(xué)模式中的“全員”是指全班學(xué)生共同參與,“全期”是指項目任務(wù)貫穿整個大學(xué)期間,“項目驅(qū)動”是指學(xué)生根據(jù)虛擬項目(以下簡稱“項目”)需求加以實踐學(xué)習(xí),由被動地接受知識轉(zhuǎn)變?yōu)橹鲃拥貙で笾R。
1、現(xiàn)代高校軟件教學(xué)特點
1.1 內(nèi)容的拓?fù)湫?/p>
現(xiàn)代高校中軟件教學(xué)的內(nèi)容是有先后順序的,比如在講授計算機網(wǎng)絡(luò)課程之前要先講授計算機原理和操作系統(tǒng)課程;在講授軟件工程課程前要先講授程序設(shè)計語言課程;在講授面向?qū)ο蟪绦蛟O(shè)計語言之前要先講授程序設(shè)計語言課程;另外,還有一些語言類的課程需要在計算機原理課程講完后才能開始授課。教學(xué)內(nèi)容是教學(xué)過程中所傳遞信息的主要部分。計算機教師必須明確所授課程在整個課程體系中的地位和作用,以及該課程的教學(xué)目標(biāo)、知識傳授、技能培養(yǎng)的要求。軟件教學(xué)需要給學(xué)生一個貫穿多門課程的實踐機會?!叭珕T全期項目驅(qū)動”教學(xué)模式正是為學(xué)生提供了這種實踐機會。
1.2 主體的能動性
現(xiàn)代高校軟件教學(xué)的主體是學(xué)生,教學(xué)的目的是培養(yǎng)符合社會發(fā)展的人才。而衡量教育質(zhì)量的標(biāo)準(zhǔn)歸根結(jié)底還是看學(xué)生素質(zhì)是否提高。研究學(xué)生的特點,充分調(diào)動學(xué)生的主觀能動性,是教學(xué)過程成功的關(guān)鍵。軟件教學(xué)需要學(xué)生主動地去實踐學(xué)習(xí),這正是“全員全期項目驅(qū)動”教學(xué)模式所提倡的做法。
1.3 客體的主導(dǎo)性
在現(xiàn)代高校軟件教學(xué)中,學(xué)生的主體作用是重要的,但教師主導(dǎo)作用與學(xué)生主體作用之間的有機結(jié)合顯得更為重要。教師的主導(dǎo)作用是為了更好地發(fā)揮學(xué)生的主體作用。教師必須具有德才兼?zhèn)涞娜烁裼绊懥?,必須對教學(xué)內(nèi)容熟練掌握,對計算機學(xué)科的特點和大學(xué)生的學(xué)習(xí)方式、思維方式都有清楚的把握,必須具有為教育事業(yè)獻(xiàn)身的崇高品質(zhì),必須具有引導(dǎo)學(xué)生自主學(xué)習(xí)的能力。同時,教師必須善于舉一反三,善于觀察,對教學(xué)過程中存在的問題進(jìn)行理性思考,并歸納總結(jié),將其升華為理論,從而指導(dǎo)自己的實踐。在“全員全期項目驅(qū)動”中,導(dǎo)師的作用是非常重要的。
2、現(xiàn)代高校軟件教學(xué)現(xiàn)狀
2.1 教學(xué)形式單一,無法發(fā)揮學(xué)生主觀能動性
現(xiàn)在是一個信息大爆炸的時代,各種新技術(shù)層出不窮,計算機軟件技術(shù)不斷創(chuàng)新。而軟件教學(xué)課程體系的建設(shè)卻缺乏應(yīng)有的時效性,正在講授的一些應(yīng)用課程也早已過時。一些基礎(chǔ)性、理論性的課程可以為學(xué)生以后的發(fā)展打下堅實的基礎(chǔ),是一個計算機系的學(xué)生必須學(xué)習(xí)的課程;但是由于教學(xué)形式單一,學(xué)生普遍不愿學(xué)習(xí)這些基礎(chǔ)課、理論課,或者學(xué)習(xí)興趣不大。
2.2 理論與實踐脫節(jié)。教學(xué)模式無法真正提高學(xué)生的實踐能力
現(xiàn)在的軟件開發(fā)教學(xué)方法存在理論與實踐脫節(jié)的問題。軟件開發(fā)不僅僅是編寫程序,這是現(xiàn)在學(xué)校及企業(yè)都認(rèn)可的事實。在學(xué)校,有不少學(xué)生能編出很漂亮的小程序,但很難稱之為軟件。有些學(xué)生理論知識很扎實,但動手能力欠缺。這里的動手能力不是單指程序編寫能力,而是指綜合開發(fā)能力。理論與實踐脫節(jié)是目前軟件開發(fā)教學(xué)中存在的主要問題。
目前軟件教學(xué)形式大致有3種。第一種是以某種開發(fā)工具(如:PowerBuilder、Visual Studio等)為依托來講授,注重開發(fā)工具和開發(fā)環(huán)境的運用,這種方法看似實踐性強,但在實際教學(xué)中往往變成了開發(fā)工具講授課程(比如教師可能會花大量的時間來講授一些控件的使用等),學(xué)生在完成學(xué)習(xí)后僅對開發(fā)環(huán)境較為熟悉,缺乏對軟件開發(fā)的真正掌握;第二種是以開發(fā)方法、原理為主(如講授軟件工程課程),注重理論和各種開發(fā)規(guī)范,側(cè)重理論教學(xué),直觀性較差,學(xué)生動手能力和軟件開發(fā)能力很難有效應(yīng)用于實際工作中;第一、二種方法通常是以筆試的方式考核,不能真正考查學(xué)生的實際能力,而第三種教學(xué)方式是以課程設(shè)計的形式進(jìn)行的,時間一般安排在每個學(xué)期的最后1~2周內(nèi),讓學(xué)生集中完成本學(xué)期課程教師布置的一個大的項目任務(wù),以對本學(xué)期所學(xué)課程知識進(jìn)行實踐。但實際上,每學(xué)期的最后兩周通常會進(jìn)行期末考試,學(xué)生在考試壓力的情況下不會將主要精力放在課程設(shè)計上。對此,某些學(xué)校的改進(jìn)作法是將期末考試的時間提前,但又造成學(xué)生為了提早回家而草草完成課程設(shè)計任務(wù)的結(jié)果。另外,在1~2周內(nèi)就完成的項目任務(wù),其復(fù)雜性不夠,學(xué)生還是不能將各種知識融會貫通。
3、模式設(shè)計
針對軟件學(xué)科教學(xué)現(xiàn)狀中所出現(xiàn)的教學(xué)形式單一、理論與實踐脫節(jié)等不足之處,筆者提出了“全員全期項目驅(qū)動”的教學(xué)模式,模式內(nèi)容設(shè)計如下。
3.1 選擇合適的項目內(nèi)容
選擇合適的項目內(nèi)容是該模式中非常重要的部分,關(guān)系到是否能夠達(dá)到鍛煉學(xué)生的目的。項目內(nèi)容要保證學(xué)生經(jīng)過努力學(xué)習(xí)后可以完成項目,還要保證題目對學(xué)生具有吸引力。
3.1.1 內(nèi)容設(shè)置原則
教師在設(shè)置項目內(nèi)容時,需要注意下面4個原則:
①項目任務(wù)量足夠大;
②項目涉及知識面足夠?qū)挘?/p>
③結(jié)合課堂教學(xué)的理論知識;
④具有一定的新穎性。
3.1.2 內(nèi)容設(shè)置舉例
案例項目是基于Windows Mobile系統(tǒng)開發(fā)手機應(yīng)用程序軟件,開發(fā)環(huán)境為Visual Studio 2008,編程語言選擇C#程序設(shè)計語言。該軟件系統(tǒng)分為客戶端和服務(wù)器端,通過啟動Web Service服務(wù)實現(xiàn)通訊。其中客戶端為手機端,其功能包括收發(fā)短信和手機端即時通訊。收發(fā)短信包含3方面內(nèi)容:①用戶通過智能方式、短信方式或即時通訊方式實現(xiàn)短信的收發(fā);②用戶可通過連接服務(wù)器下載或上傳經(jīng)典短信;⑧用戶可實現(xiàn)短信的定時發(fā)送。手機端即時通訊包含3方面內(nèi)容:①用戶通過智能方式、短信方式或即時通訊方式實現(xiàn)在線的即時聊天;②用戶間可以實現(xiàn)互相傳輸文件;③用戶可以添加好友進(jìn)行通訊。服務(wù)器端使用SQL Server作為數(shù)據(jù)庫服務(wù)器,其功能包括:經(jīng)典短信庫管理、廣告庫管理、用戶信息管理、系統(tǒng)處理用戶發(fā)送的消息等。
該項目涉及數(shù)據(jù)庫知識、嵌入式開發(fā)知識、網(wǎng)絡(luò)通信知識、Web應(yīng)用程序知識、軟件工程知識,任務(wù)量足夠大,同時題目結(jié)合時下流行的手機編程,具有一定新穎性,學(xué)生實踐起來興趣較大。
3.2 新生全員動員
近年來,大學(xué)生在入學(xué)時呈現(xiàn)計算機水平差距加大的趨勢。城市的學(xué)生、初等教育比較發(fā)達(dá)地區(qū)的學(xué)生,能夠較早地接觸計算機,具備學(xué)習(xí)計算機的物質(zhì)條件,他們的計算機基本知識要多于那些邊遠(yuǎn)或基礎(chǔ)教育不發(fā)達(dá)地區(qū)的學(xué)生。課堂教學(xué)采用統(tǒng)一教學(xué)模式,這就導(dǎo)致有些學(xué)生吃不飽,有些學(xué)生吃不了的局面。
“全員全期項目驅(qū)動”教學(xué)模式在新生一、二年級時就進(jìn)行全員動員,向全班學(xué)生給出項目的大致內(nèi)容和任務(wù),要求學(xué)生分組選擇項目,并選出小組項目負(fù)責(zé)人;要求每個學(xué)生都要有自己負(fù)責(zé)的模塊;要求項目小組每月至少討論一次需求,并在班會上陳述項目進(jìn)展,但對一、二年級學(xué)生要完成什么目標(biāo)不作硬性規(guī)定。這樣做的原因有以下幾點:①新生階段就給出目標(biāo),讓學(xué)生從一開始就有學(xué)習(xí)動力;②通過較長時間的思考,對項目需求的理解可以達(dá)到一定的高度;③小組定期討論有助于提高學(xué)生的項目協(xié)作能力;④定期做項目陳述有助于提高學(xué)生持續(xù)的項目研究動力;⑤對一、二年級學(xué)生要完成的目標(biāo)不作硬性規(guī)定,這就給了抹平新生之間差距的機會,讓基礎(chǔ)差的學(xué)生利用這兩年的學(xué)習(xí)迎頭趕上,小組討論對其成長也有很大幫助;⑥很多專業(yè)課程在一、二年級還沒有開設(shè),因此大部分學(xué)生還不具備完成項目的知識和技能。
3.3 階段設(shè)置
“全員全期項目驅(qū)動”教學(xué)模式可以按階段進(jìn)行實施,且每個階段都與考核評價體系掛鉤。
第一階段:新生入學(xué)階段。教師向新生介紹項目概況,動員新同學(xué)積極參與項目,讓新生了解參與項目對學(xué)習(xí)的重要性,并成立項目小組(通常一個小組包含5個人左右),指定小組負(fù)責(zé)人,讓學(xué)生提前了解項目所需的知識。
第二階段:大學(xué)一、二年級階段。剛?cè)雽W(xué)的新生還沒有全面接觸計算機專業(yè)知識,所以我們無法要求所有小組統(tǒng)一開始項目開發(fā),但不反對興趣較高的小組較早開始項目。這個階段主要要求學(xué)生定期討論需求,制定內(nèi)部培訓(xùn)學(xué)習(xí)計劃,定期在小組內(nèi)部組織培訓(xùn)、學(xué)習(xí)相關(guān)知識。這些知識是關(guān)于完成項目所必需的軟件工程知識、開發(fā)工具知識、網(wǎng)絡(luò)技術(shù)知識及項目專業(yè)領(lǐng)域知識等。導(dǎo)師可以為學(xué)生提供相關(guān)參考書目,必要時為學(xué)生提供相關(guān)培訓(xùn)。定期討論通常是2周一次或1月一次,由小組負(fù)責(zé)人組織,并安排一名小組成員主講。導(dǎo)師可以有選擇地旁聽或參與討論。第二階段的評價標(biāo)準(zhǔn)為:①小組成員討論的參與度;②小組需求整理的完成度;③相關(guān)知識的培訓(xùn)開展程度與掌握程度。
第三階段:在完成或正在進(jìn)行軟件工程授課時,學(xué)生可以正式進(jìn)入項目研發(fā)階段。該階段通常被安排在大學(xué)三、四年級。這時學(xué)生已經(jīng)完成部分計算機專業(yè)課程的學(xué)習(xí),有些專業(yè)課程也即將學(xué)習(xí)。學(xué)生可以將所學(xué)的理論知識聯(lián)系到實際的項目中,通過對項目的研發(fā),將所學(xué)知識串聯(lián)起來。這個階段要完成項目的生命周期模型確定、需求分析、系統(tǒng)設(shè)計、編碼實現(xiàn)和測試。期間學(xué)生要按照軟件工程的方法進(jìn)行項目計劃管理、需求管理、配置管理、項目監(jiān)督與控制、質(zhì)量管理等過程管理。從制定項目計劃開始,到項目測試完成,大部分過程都由學(xué)生自主自治完成。我們要求學(xué)生必須完成各個階段的相關(guān)文檔。里程碑評審由其他小組成員輪流加入。項目小組負(fù)責(zé)人對項目負(fù)責(zé),并組織小組討論和評審,至少每兩周進(jìn)行一次討論。
第四階段:項目驗收及評價階段。每個小組要對自己完成的項目進(jìn)行講解與演示。導(dǎo)師會檢查項目文檔的完成情況,檢查過程管理文檔,并計算出總得分。
3.4 建立多元考核評價體系
評價體系可以為項目提供持續(xù)的推動力。多元考核評價體系改變了過去的單一化形式,納入了平時學(xué)習(xí)、討論發(fā)言、項目設(shè)計成果、答辯表現(xiàn)、創(chuàng)新能力和實踐能力等因素。“全員全期項目驅(qū)動”教學(xué)模式所采用的多元考核評價體系如表1所示。
3.5 設(shè)立項目導(dǎo)師
項目導(dǎo)師最好不要選擇輔導(dǎo)員,可以考慮由班主任擔(dān)任。在筆者的學(xué)校,班主任通常是由專業(yè)任課教師擔(dān)任,而且從新生人校到畢業(yè)期間通常不會變更。這樣班主任對學(xué)生的情況比較了解,能實現(xiàn)“全員全期項目驅(qū)動”教學(xué)模式中“全期”的目的。
4、模式可行性分析
文獻(xiàn)中提到實驗教學(xué)模式的分類有3種:①邊講邊練,邊學(xué)邊做;②先講后練,任務(wù)驅(qū)動;③項目驅(qū)動,全程實踐?!叭珕T全期項目驅(qū)動”教學(xué)模式屬于第三種,一般由教師提出實驗?zāi)繕?biāo),學(xué)生自主支配實驗時間。該模式下所選項目的任務(wù)量應(yīng)該足夠大,所涉及知識面應(yīng)比較寬,屬于綜合性的實驗內(nèi)容。在全程實踐中,教師擔(dān)負(fù)著指導(dǎo)工作,學(xué)生被劃分成項目小組,并安排項目組長,組織項目實施。項目驅(qū)動特征與模式設(shè)計的各個元素之間是存在因果關(guān)系的,如圖1所示。
4.1 導(dǎo)師制的可行性
考慮到項目的復(fù)雜度,如果沒有經(jīng)驗豐富的教師作為指導(dǎo),學(xué)生可能很難高質(zhì)量地完成整個項目。因此導(dǎo)師要選擇有實際項目經(jīng)驗的教師擔(dān)任(如果情況允許,甚至可以聘請校外公司的項目經(jīng)理擔(dān)任)。大部分學(xué)院應(yīng)該都能做到這點,因此導(dǎo)師制是可行的。如果學(xué)校在薪酬或其他方式上能給予獎勵,就會大大地促進(jìn)專業(yè)教師擔(dān)任項目導(dǎo)師的積極性。
4.2 多元考核評價體系和項目小組形式的可行性
多元考核評價體系和項目小組形式,可以兼顧項目的不同階段,給學(xué)生持續(xù)的推動力,同時兼顧小組與個人,做到兼顧公平與效率,不僅發(fā)揮學(xué)生的個體積極主動性,又培養(yǎng)了學(xué)生的團(tuán)隊協(xié)作精神,使學(xué)生盡快地熟悉今后工作中的項目組開發(fā)模式。
4.3 “全期”及階段設(shè)置可行性
“全期”保證了學(xué)生有足夠時間完成整個項目。階段設(shè)置兼顧到每個學(xué)年段學(xué)生的特點,使整個項目實施起來順理成章,同時又保證了項目的復(fù)雜度。
5、模式優(yōu)勢分析
“全員全期項目驅(qū)動”教學(xué)模式具有以下優(yōu)勢:
(1)該模式的最大優(yōu)勢在于“全期”,因為整個項目貫穿大學(xué)四年,使項目的任務(wù)量和復(fù)雜度可以足夠大,較為接近實際項目,能夠讓學(xué)生充分的鍛煉和實踐。
(2)多元考核評價體系有明確的考核評價內(nèi)容,并且更為合理,能夠兼顧公平和效率。從小組和個人兩個方面來考核評價,做到了兼顧個人和集體,既提倡個人努力又強調(diào)小組協(xié)調(diào)。
(3)小組討論形式為學(xué)生研發(fā)實施項目提供交流平臺,考核評價體系的分階段設(shè)置,在四年期間為學(xué)生提供持續(xù)的推動力。
(4)導(dǎo)師制可以有效地解決在實施項目過程中可能會出現(xiàn)的因為技術(shù)難點,導(dǎo)致項目無法推進(jìn)或無法按期完成,最終導(dǎo)致項目不能在四年期間完成的現(xiàn)象;或者在項目實施過程中沒有按照規(guī)范的方法來進(jìn)行研發(fā)的現(xiàn)象。
6、模式實踐
筆者在2006年擔(dān)任學(xué)院軟件06級一個班的班主任,具備了實施“全員全期項目驅(qū)動”教學(xué)模式的條件,也得到了學(xué)院領(lǐng)導(dǎo)的支持,于是就試驗性地開始實踐該教學(xué)模式。因為該模式所需工作量都是筆者業(yè)余時間無償?shù)母冻?,期間的工作量和精力非常巨大。筆者選用3.1.2節(jié)中提到的案例項目,在前期利用班會,與學(xué)生討論項目,主要充當(dāng)顧客的角色;在項目后期,基本上組織學(xué)生每周對項目進(jìn)行一次討論,糾正學(xué)生在項目開發(fā)中的一些錯誤。作為教師來說,所付出的工作量還是比較大的,作為客體的學(xué)生來說,能夠得到的鍛煉也是非常之大,這讓學(xué)生能夠真正地完成一個相對復(fù)雜的項目,且更接近真實項目。很多學(xué)生在畢業(yè)后所從事的工作都跟手機軟件開發(fā)相關(guān)。
7、結(jié)語
總體來說,“全員全期項目驅(qū)動”教學(xué)模式的實踐收到了很好的效果。學(xué)生可以擁有充足的時間和條件去實踐一個接近真實的項目。該模式能夠充分調(diào)動學(xué)生的主觀能動性,使教學(xué)理論和實踐相結(jié)合,提高了學(xué)生的實踐能力。該模式需要注意以下幾點:①負(fù)責(zé)教師需要有實際的項目經(jīng)驗;②負(fù)責(zé)教師需要付出大量的時間和精力;③負(fù)責(zé)教師需要給項目小組提供持續(xù)的關(guān)注和壓力;④所選項目要具有一定的新穎性和復(fù)雜度;⑤要注重項目的文檔工作。
該模式經(jīng)過實踐,證明是可行的,但也有需要改進(jìn)之處。
首先,由于項目的跨度時間較長,學(xué)生一般在開始階段興趣很高,后期都會出現(xiàn)“?!钡默F(xiàn)象。如果該項目實踐作為學(xué)生的必修考核課程,對學(xué)生產(chǎn)生一個實際的壓力,其實踐效果會更好。
其次,項目建議按照CMMI的思想來實施。CMMI的全稱是Capability Maturity ModelIntegration,即軟件能力成熟度模型集成,是由美國國防部與卡內(nèi)基.梅隆大學(xué)和美國國防工業(yè)協(xié)會共同開發(fā)和研制的,目的是幫助軟件企業(yè)對軟件工程過程進(jìn)行管理和改進(jìn),增強開發(fā)與改進(jìn)能力,從而能按時地、不超預(yù)算地開發(fā)出高質(zhì)量的軟件。其所依據(jù)的想法是:只要集中精力、持續(xù)努力地去建立有效的軟件工程過程的基礎(chǔ)結(jié)構(gòu),不斷進(jìn)行管理的實踐和過程的改進(jìn),就可以克服軟件開發(fā)中的困難。如果按照CMMI的思想來實施,學(xué)生實踐項目的質(zhì)量會更高,但對負(fù)責(zé)教師的素質(zhì)和精力是個很大的考驗。