摘要:通過分析軟件行業(yè)對軟件人才實踐能力的新要求,提出軟件工程課程以學生為主體的教學改進方案。該方案提升學生的學習興趣,提高課內(nèi)實踐的教學質(zhì)量,增強學生對軟件工程專業(yè)知識的實際運用能力。
關(guān)鍵詞:軟件工程;教學研究;學生為主體
軟件工程是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學科。它涉及工程概論、項目管理、程序設(shè)計語言、面向?qū)ο蟮男枨?、?shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設(shè)計模式等,是一門綜合性很強的軟件課程,在計算機教學體系中占有十分重要的地位[1]。上世紀90年代以來,計算機科學蓬勃發(fā)展的同時,我國計算機軟件行業(yè)也進入了快速發(fā)展時期。軟件行業(yè)呼喚計算機教學方面的改革,希望走出校門時,新一代軟件人才能在更好掌握軟件工程理論知識的同時擁有一定的實踐經(jīng)驗。這就對軟件工程這門計算機專業(yè)核心課程提出了更高的要求。目前,軟件工程課程的教學改革已經(jīng)在各高校開展多年,其中引入案例教學,解決理論與實際應(yīng)用銜接的問題[2];以及引入項目式實踐教學,提高學生動手能力和感性認識等[3],都是比較有效的教學方式。但對于如何以學生為主體,提高學生自主學習軟件工程的教學方式,目前還沒有系統(tǒng)的經(jīng)驗總結(jié)。本文從軟件工程教學存在的問題開始,介紹在五邑大學計算機學院開展的以學生為主體的軟件工程教學,討論提高軟件工程課程教學質(zhì)量的途徑和方法。
1軟件工程教學的困難
要提高軟件工程課程的教學質(zhì)量,還存在一定困難。
從軟件工程的學科發(fā)展上看,軟件工程的學術(shù)研究和教學過程本身有著不同的動作機制,學術(shù)界的最新成果和正在進行的軟件設(shè)計很難直接相互滲透。另外一方面,從學生的認識結(jié)構(gòu)看,在軟件工程的教材中添加大篇幅的工程經(jīng)驗,雖然可以一定程度地解決學生缺乏實踐經(jīng)驗的問題,但這些內(nèi)容并不能完全構(gòu)成學生對軟件工程的認知結(jié)構(gòu)。教材和課程大綱中的學術(shù)成果和經(jīng)驗理論,是知識的結(jié)果,不是知識的形成過程。經(jīng)典理論不能代替學生從動手實踐中獲得自我認知的能力。軟件工程教學不能離開實際的體驗,否則就容易造成類似人文學科中學術(shù)成果和經(jīng)典閱讀脫節(jié)的情況[4]。
因此,在傳統(tǒng)的軟件工程課程中,由于課堂教學方式具有局限性,學生學會了軟件工程的原理和方法,但不會在實踐中運用所學知識解決實際問題。引入項目式教學后,課本當中的例子多數(shù)是為概念和原理而設(shè)立的,無法在規(guī)模和復(fù)雜程度上與真正的軟件開發(fā)項目相提并論。這就導(dǎo)致學生缺乏對軟件工程實踐過程的感性認識,學完課程后仍不知道應(yīng)如何著手一個軟件項目的開發(fā)[5]。而實踐又是掌握工程科學的最佳方式。對于不斷發(fā)展的軟件理論,其中的知識與經(jīng)驗只能通過實踐者自己親身執(zhí)行后,才能被理解和掌握。
為了提高軟件工程課程的教學質(zhì)量,從根本上提高學生的學習興趣,五邑大學計算機學院在近年的軟件工程教學中,強調(diào)以學生為主體,實施學生自主體驗的教學改革。目的就是提高學生對軟件工程經(jīng)典理論的感性認識,不讓項目式的實踐教學流于形式,使學生在完成軟件工程的學習后,能適應(yīng)軟件行業(yè)的工程化需求。
2以學生為主體的自主體驗式教學設(shè)計
為了體現(xiàn)學生自主體驗的過程,我們在軟件工程的課程教學大綱中提出了以學生為主體的教學方案,其目的是使學生能主動投入到軟件工程的學習中,使教學內(nèi)容能與學習體驗更緊密地結(jié)合。同時,在實踐教學中,軟件工程的教學設(shè)有學生自選項目的實踐環(huán)節(jié)。新的教學設(shè)計,關(guān)鍵就在于引導(dǎo)學生自主參與項目式教學。
為了強調(diào)學生自主體驗,該課內(nèi)實踐的選題范圍要求來源于五邑大學校內(nèi)的具體軟件需求,并將軟件開發(fā)的工作量控制在一定的范圍之內(nèi),使項目實踐內(nèi)容能覆蓋整個軟件生命周期。最后,參考國家軟件開發(fā)的標準文檔要求,要求學生在各階段完成后提交階段性書面總結(jié)。具體地,以學生為主體的教學改革主要包括以下5個方面。
2.1提出注重互動的理論教學
互動式的理論教學首先要求教師要少講,把學習的機會留給學生。理論的學習和掌握依然是項目式教學的基礎(chǔ),這些經(jīng)典公式和行業(yè)標準通常是學生最不容易用心學習的部分,而引入互動式的課堂理論教學可以較好地解決這一問題。傳統(tǒng)的軟件工程教學大綱存在項目實踐方面內(nèi)容的缺失,而補充了項目式教學后的軟件工程,往往更像是一種“基于項目活動的研究性學習”,這就使教師更注重項目經(jīng)驗的傳授。其實,“最好的教學是對話式的教學”,教師應(yīng)該從自身開始改變觀念,不再一成不變地重復(fù)教學。學生通過與教師的對話式交流,可以在互動中解決項目中的實際問題,完成教學大綱中要求的理論學習部分。
2.2要求學生完成真實可見的軟件項目
在課內(nèi)實踐中,教師要求學生完成一個來自校內(nèi)的實際軟件需求,這個軟件的需求通常是學生可以在日常生活中直接感受到的,這樣可以提高軟件開發(fā)中需求調(diào)研的真實性,更有利于增強學生的自主體驗。在以往的教學中,我們沒有提出這樣的選題范圍要求,而學生一開始對軟件開發(fā)的理解又有限,因此選題往往是教師熟悉的領(lǐng)域,或是學生從網(wǎng)絡(luò)上找到的參考題目。結(jié)果是部分學生在實踐中積極性不高,還出現(xiàn)有學生照搬參考書和網(wǎng)絡(luò)上已有案例的情況。新的實踐選題范圍要求必須來源于校內(nèi)實際需求,這可以更方便教師控制實踐項目選題與某些參考書中案例之間的重復(fù)度,也加強了學生調(diào)研工作的真實性。
2.3在理論與實踐教學中開展深入的專題討論
專題討論的前提是學生的課外學習和總結(jié),討論時的主體應(yīng)該是學生而不是教師。長期以來,在軟件工程的理論與實踐教學中,基本是教師單向傳授,教師講學生聽,教師布置課題學生完成,學生離開了教師就不知道干什么,不利于提高學生的綜合素質(zhì)。因此,在軟件工程教學時,教師必須要少講,目的是要把實踐過程留給學生去體驗。軟件的開發(fā)過程并不是一成不變的,每次軟件開發(fā)都是對軟件工程系統(tǒng)框架進行的一次創(chuàng)造性實踐,真實的開發(fā)過程往往不都能完全遵循教科書中建議的軟件開發(fā)流程。因此,在學生的課內(nèi)實踐中,教師首先讓學生通讀教材和講義,然后鼓勵學生根據(jù)課程學習的要求去尋找來自生活中的實踐項目,也就是自己找到想解決什么問題,并進一步閱讀課本和參考資料,在教師、學生之間開展專題討論,用問答和辯論的方式完成理論學習和項目體驗。另外,專題討論的題目并不需要預(yù)先定好,而是應(yīng)該在項目實踐的進程中挖掘出有討論必要的題目,同時鼓勵學生在討論前進行充分準備,查閱相關(guān)的期刊和論文,并在討論后進行總結(jié)。
2.4注重項目實踐中對軟件項目管理的體驗
軟件工程是一門鍛煉學生綜合能力的課程,工程實踐性非常強,而工程總離不開項目管理。學生一開始知道課程中包含項目實踐后,往往最先關(guān)心應(yīng)該在軟件開發(fā)中使用什么技術(shù)和工具。但軟件工程的實踐教學并不應(yīng)把實踐側(cè)重于軟件開發(fā)技術(shù)的應(yīng)用,更不應(yīng)指定實踐項目使用的開發(fā)技術(shù)。指定開發(fā)語言和開發(fā)工具容易使學生混淆軟件工程課內(nèi)項目的實踐方式和其他專業(yè)課,如數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫、操作系統(tǒng)和Web體系結(jié)構(gòu)的課內(nèi)項目實踐。軟件工程教學的目標應(yīng)是在講授軟件工程經(jīng)典理論和工程經(jīng)驗的同時,讓學生體驗軟件項目的開發(fā)過程,提高對軟件項目的整體把握能力,增強軟件項目管理理念。因此,教師應(yīng)當引導(dǎo)學生把注意力集中在軟件工程的知識框架和對軟件過程的實踐上,并在實踐環(huán)節(jié)適當增加如成本控制、進度管理、風險分析以及人員管理等有關(guān)軟件項目管理的體驗。
2.5靈活的成績評價方式
學生完成軟件項目的分析、設(shè)計、編程和測試后,可以在課程答辯中展示已掌握的知識和在項目中實現(xiàn)的能力鍛煉。在課程答辯中,學生可以發(fā)現(xiàn)其他項目小組的優(yōu)缺點,教師也可以在答辯過程中提出項目實踐中的不足之處,幫忙學生找出差距,彌補不足[6]。
3教學效果
五邑大學計算機學院在施行新的旨在激發(fā)學生自主體驗的教學方法后,學生普遍反映在學習軟件工程更有興趣的同時獲得了更多的實踐經(jīng)驗。新的選題范圍使學生不出校園即可以做軟件項目的需求調(diào)研,大大提高了學生參與實踐的積極性,也激發(fā)了學生軟件開發(fā)創(chuàng)作的熱情。選題范圍的縮小反而使課內(nèi)項目選題的多樣性得以實現(xiàn),涌現(xiàn)出一批來自學生視角的新課題,如AP07064班的選題《宿舍網(wǎng)上自主充電系統(tǒng)》,以及AP07102班的選題《學生飲水管理系統(tǒng)》,都有一定的實際應(yīng)用價值,也獲得了校內(nèi)有關(guān)部門的關(guān)注??陀^上,學生在軟件工程課程中的成績穩(wěn)步提升的同時,對教學的評價也不斷提高,2009-2010學年軟件工程的課程評價超過了9.2分,滿分為10分。
4結(jié)語
目前,軟件行業(yè)正在飛速的發(fā)展過程中,軟件工程教育的理念、教學形式也處于發(fā)展階段。學生為主體的教學形式作為一種嘗試,運用于軟件工程的課內(nèi)實踐環(huán)節(jié)中,取得了一定的教學效果。如何立足于我國軟件行業(yè)的現(xiàn)狀、特點,采取相應(yīng)的教學手法,提高軟件工程的學生學習體驗,提高教學質(zhì)量,值得我們不斷探討和研究。
參考文獻:
[1]