楊 榮,鄧樹文,王電化
(湖北科技學(xué)院 計算機科學(xué)與技術(shù)學(xué)院,湖北 咸寧 437100 )
軟件工程經(jīng)歷了過去20年的爆炸式增長發(fā)展,如今的軟件公司比以往任何時候都多。據(jù)《財富》(Fortune)數(shù)據(jù)顯示,在2019 年,全球Top 15科技公司的總利潤達(dá)到了創(chuàng)紀(jì)錄的 1.67 萬億美元,比 2018 年增長了 2%。隨著人工智能的大力發(fā)展,從小孩玩具到家電產(chǎn)品,從民用產(chǎn)品到軍工設(shè)備等,如今的產(chǎn)品都引入了更多的軟件組件。可以說,未來是軟件的天下。作為世界上最大的代碼托管提供商——GitHub,它的數(shù)據(jù)也很好地反映了軟件發(fā)展的總趨勢。在2019 年,有1 000 萬新開發(fā)者入駐了GitHub,而且他們?yōu)閬碜允澜绺鞯氐?4 400 多萬個倉庫作出了貢獻(xiàn)。如今,越來越多的公司將軟件組件引入到他們的流程中,GitHub數(shù)據(jù)也反映了在全球財富 50 強企業(yè)中,有超過70% 的企業(yè)為開源做出了貢獻(xiàn)。
如今,我們國內(nèi)的軟件產(chǎn)業(yè)大多以中小企業(yè)為主,幾乎沒有什么海外業(yè)務(wù),品牌效應(yīng)不強。與Microsoft、Oracle等跨國公司相比,國內(nèi)很多企業(yè)軟件收入較低。在全球軟件產(chǎn)業(yè)鏈的大環(huán)境下,我國軟件產(chǎn)業(yè)基本處于中下游環(huán)節(jié),不僅缺乏較強的創(chuàng)新性,也缺乏核心技術(shù)。同時,國內(nèi)也緊缺高端復(fù)合型的軟件人才,高質(zhì)量軟件人才的匱乏已經(jīng)成為制約中國軟件產(chǎn)業(yè)發(fā)展的最主要瓶頸[1]。軟件產(chǎn)業(yè)是一個新興產(chǎn)業(yè),也是一個最具廣闊前景的綠色環(huán)保產(chǎn)業(yè),對我國的產(chǎn)業(yè)結(jié)構(gòu)調(diào)整有深遠(yuǎn)的影響。
所有這些都說明我們必須要重視軟件人才的培養(yǎng),要跟上時代的步伐。只有培養(yǎng)軟件人才,我們才能擺脫目前的困境。而要培養(yǎng)高質(zhì)量的軟件人才,我們必須高度重視“軟件工程”的教學(xué)。對計算機科學(xué)與技術(shù)和軟件工程專業(yè)的學(xué)生來說,“軟件工程”是一門重要的專業(yè)課,既講授一些理論知識,也注重學(xué)生實際動手能力訓(xùn)練。然而,目前的軟件工程教學(xué)面臨著前所未有的危機,存在很多亟待解決的問題,比如培養(yǎng)的學(xué)生大多數(shù)不能滿足業(yè)界需求,教學(xué)內(nèi)容枯燥乏味等等。因此,我們必須轉(zhuǎn)變教育觀念,并探索“軟件工程”課程新的教學(xué)模式[2-6]。
通過對國內(nèi)一些高校的軟件工程課程教學(xué)進(jìn)行調(diào)查分析,并結(jié)合我校軟件工程課程教學(xué)存在的一些主要問題,分析得出目前軟件工程課程教學(xué)存在的主要問題如下。
1.培養(yǎng)目標(biāo)單一化
目前有很多高等院校都開設(shè)了軟件工程專業(yè),而且軟件工程學(xué)科也上升到國家一級學(xué)科的層次。然而,很多院校主要是培養(yǎng)研究型的學(xué)生,培養(yǎng)目標(biāo)單一化,沒有很強的專業(yè)特色。這種培養(yǎng)模式,導(dǎo)致了地方經(jīng)濟(jì)在建設(shè)發(fā)展的時候,可能找不到相適應(yīng)的軟件人才。
2.師資隊伍不完善
據(jù)目前的教學(xué)情況來看,在很多院校,尤其是在一些地方院校,擔(dān)任軟件工程課程教學(xué)的很多老師都幾乎沒有軟件工程專業(yè)背景,有的可能自己都沒學(xué)過軟件工程,但是為了軟件工程課程的教學(xué)任務(wù),只能邊學(xué)邊進(jìn)行教學(xué)。有的學(xué)校可能具有軟件工程專業(yè)背景的老師,但是人數(shù)較少,根本承擔(dān)不了所有的軟件工程課程教學(xué)任務(wù)。
3.實踐教學(xué)質(zhì)量不高
很多老師在處理軟件工程課程教學(xué)時,都是重理論教學(xué),而對實踐教學(xué)環(huán)節(jié)重視程度不夠,給學(xué)生布置幾個任務(wù)并要求提交實驗報告。但由于實驗學(xué)時較少,也不存在一套完整的實驗訓(xùn)練案例,學(xué)生在實踐階段收獲可能不理想,沒有達(dá)到預(yù)期的效果。對于課本上的一些理論知識,很多老師都講得很透徹,但缺乏很好的實踐訓(xùn)練,學(xué)生可能對一些關(guān)鍵理論知識掌握不好,而且理解不夠深入,從而在以后的工程實踐中也不能很好地進(jìn)行應(yīng)用。
4.培養(yǎng)方案缺乏定期更新
現(xiàn)在很多院校的軟件工程專業(yè)培養(yǎng)方案,相關(guān)課程體系設(shè)置,以及教學(xué)質(zhì)量考核標(biāo)準(zhǔn)沒有定期進(jìn)行更新,而且有時候延續(xù)到幾屆學(xué)生。然而,IT 技術(shù)日新月異,陳舊不變的培養(yǎng)方案不能跟上技術(shù)的步伐,這樣培養(yǎng)的學(xué)生不能滿足社會經(jīng)濟(jì)建設(shè)的需要。
為了解決上面所述的軟件工程人才培養(yǎng)面臨的新挑戰(zhàn),我們在軟件工程課程教學(xué)中進(jìn)行了一系列摸索實踐,詳細(xì)內(nèi)容見第三節(jié)。通過這些教學(xué)實踐,本節(jié)我們歸納出7點教學(xué)改革措施。這些教學(xué)技術(shù)和手段能從多方面促進(jìn)軟件工程課程教學(xué)質(zhì)量提升,能從不同角度提高軟件人才培養(yǎng)的效率。圖1為本文提出的多角度軟件工程人才培養(yǎng)系統(tǒng)圖,即我們將在這一節(jié)從7個方向進(jìn)行軟件人才培養(yǎng)改革創(chuàng)新。

圖1 軟件工程多角度人才培養(yǎng)系統(tǒng)圖
1.定期更新和優(yōu)化培養(yǎng)方案
面向特定專業(yè)和面向特定課程的培養(yǎng)方案是我們進(jìn)行人才培養(yǎng)的總綱,也是我們進(jìn)行人才培養(yǎng)的指導(dǎo)方針。當(dāng)然,一個成功的培養(yǎng)方案必須要充分結(jié)合國家的總體指導(dǎo)思想,必須要密切聯(lián)系社會的需求,當(dāng)然也要從學(xué)生的角度進(jìn)行考慮和分析。每個院校都有自己的辦學(xué)方針,因此,我們在制定培養(yǎng)方案時,要很好地對本校的辦學(xué)定位進(jìn)行把握。對于像我們學(xué)校這樣的地方院校,還要考慮到地方經(jīng)濟(jì)發(fā)展的實際需求,為地方經(jīng)濟(jì)發(fā)展培養(yǎng)具有特色的軟件相關(guān)人才。IT 技術(shù)更新?lián)Q代很快,不管是編程工具和技術(shù),還是現(xiàn)實的應(yīng)用實際需求,可能都在不斷變化。因此,我們的培養(yǎng)方案應(yīng)該也是實時動態(tài)更新的,必須要不斷地進(jìn)行完善和補充。通過我們的培養(yǎng)方案訓(xùn)練出來的學(xué)生,能夠很好地融入社會工作環(huán)境,他們隨時都可以很好地解決面向特定應(yīng)用領(lǐng)域的軟件需求。總之,經(jīng)過制定良好的培養(yǎng)方案,能夠培養(yǎng)出知識面寬廣、能力層次豐富和有良好職業(yè)道德素養(yǎng)的優(yōu)秀軟件人才。
2.加強師資隊伍能力提升
要想提高軟件工程教學(xué)質(zhì)量,擁有一支良好的師資隊伍至關(guān)重要。有些院校是后來才申請軟件工程專業(yè),或者開設(shè)軟件工程課程較晚,軟件工程教師團(tuán)隊可能面臨力量薄弱的尷尬情況。師資力量是教學(xué)質(zhì)量保障的基礎(chǔ),必須努力提高教學(xué)團(tuán)隊的整體素質(zhì)。很多院校采取“送出去”和“請進(jìn)來”模式效果很好,單位每年可以選派幾名軟件工程教學(xué)團(tuán)隊教師到軟件企業(yè)學(xué)習(xí)鍛煉,豐富他們的知識結(jié)構(gòu),提升他們的工程實踐能力。同時,單位可以外聘一些實踐經(jīng)驗豐富的企業(yè)人員作為實訓(xùn)指導(dǎo)老師,從而增強整個軟件工程教學(xué)團(tuán)隊的師資力量。
3.以項目案例模板進(jìn)行實驗教學(xué)
計算機專業(yè)的很多課程,既有理論學(xué)時,又有實驗學(xué)時。其中,實驗教學(xué)也非常重要。通過實驗,能夠檢測學(xué)生對理論知識的掌握程度,同時也能加深對理論知識的理解,提高動手能力,使知識真正變成實用的工具[7,8]。由于實驗學(xué)時相對于理論學(xué)時較少,很多老師經(jīng)常是給學(xué)生布置一些實驗任務(wù),并規(guī)定學(xué)生在實驗課堂上完成,有時候還要求學(xué)生在期末統(tǒng)一提交實驗報告。然而,最后效果不是很好。有的學(xué)生在規(guī)定的兩節(jié)實驗課中可能做不出來,有的根本不會做,最后可能抄襲點別人的結(jié)果完成實驗報告。為了改變此種情況,我們采取了以項目案例為模板進(jìn)行實驗教學(xué)的方式。具體做法為:軟件工程教學(xué)團(tuán)隊一起挑選幾個具有代表性的、經(jīng)典的軟件系統(tǒng)(或者開源的軟件系統(tǒng)),并把這幾個系統(tǒng)作為樣板打包發(fā)給學(xué)生,讓學(xué)生下去了消化吸收,學(xué)生具體可以分兩步來進(jìn)行學(xué)習(xí),第一步先看樣板系統(tǒng)的源代碼,可以相互討論交流,并把業(yè)務(wù)流程和實現(xiàn)細(xì)節(jié)搞清楚;第二步自己動手嘗試從頭開始編寫代碼,看能否依葫蘆畫瓢自己動手做出來。通過幾屆學(xué)生的嘗試,我們最后得出此方法可行并且有效,學(xué)生有具體的事可做,擺脫了過去完全不知道如何動手的尷尬境地。而且,學(xué)生也有很大的積極性,因為有成熟的系統(tǒng)可以參考,又可以線下交流,學(xué)生學(xué)習(xí)干勁十足,而且隨著不斷學(xué)習(xí),慢慢也有了信心。
4.基于情景模式進(jìn)行理論教學(xué)
很多學(xué)生在聽軟件工程理論課的時候,都感覺有點枯燥乏味,都認(rèn)為該課程是一門偏理論的專業(yè)課。其實,很多軟件工程教材在講解一些理論和方法的時候,確實容易讓人覺得有點枯燥,雖然它是一門和工程實踐結(jié)合非常緊密的課程。因此,要想提高學(xué)生學(xué)習(xí)的積極性,首先就要吸引他們的興趣,讓他們喜歡上軟件工程理論課。在教學(xué)嘗試中,我們提出一種以情景模式為主線的理論教學(xué)方法。
如圖2所示,通過沉淀積累,我們收集了一些有業(yè)務(wù)代表性的項目系統(tǒng),教師可以根據(jù)自己的授課需要,可以從這些項目庫中抽取出適合自己的項目或片段進(jìn)行講解。而且,在軟件工程課程的不同教學(xué)階段中,即在講解“軟件分析”“軟件設(shè)計”“軟件編程”“軟件測試”“軟件集成”和“軟件發(fā)布”的各個階段中,我們都會以精選的項目案例為例子,講解該項目案例在上面各個階段所采用的方法和實現(xiàn)細(xì)節(jié)。具體來說,教師在進(jìn)行理論教學(xué)時,圍繞樣板項目規(guī)劃教學(xué)情景,并把學(xué)生融入到情景中,讓他們扮演不同角色,從而讓學(xué)生體驗并熟悉真正的項目開發(fā)流程。基于情景模式的理論教學(xué)方法,首先讓軟件工程課程具有很大的趣味性,同時也大大提高了學(xué)生對軟件工程課程的學(xué)習(xí)熱情,使他們對軟件工程課程的學(xué)習(xí)從被動變成了主動。

圖2 基于情景模式理論教學(xué)下的角色扮演
在基于情景模式的教學(xué)過程中,每個學(xué)生都屬于一個項目團(tuán)隊,一個團(tuán)隊一般由3-5人組成。學(xué)生可以自由組隊,最后沒有組隊的同學(xué)將統(tǒng)一進(jìn)行安排分組。一個團(tuán)隊將選一名同學(xué)擔(dān)任項目經(jīng)理,還有一名同學(xué)擔(dān)任項目組長,剩下的同學(xué)將是程序員身份。項目團(tuán)隊一起嘗試設(shè)計并開發(fā)出一個完整的中小規(guī)模軟件系統(tǒng)。通過項目團(tuán)隊訓(xùn)練,不僅可以培養(yǎng)學(xué)生如何進(jìn)行團(tuán)隊協(xié)作的能力,而且在團(tuán)隊項目開發(fā)過程中,還能訓(xùn)練學(xué)生如何發(fā)現(xiàn)問題、分析問題和解決問題。
5.聘請企業(yè)技術(shù)人員指導(dǎo)軟件工程實訓(xùn)
學(xué)生在學(xué)校以項目團(tuán)隊參與軟件系統(tǒng)開發(fā),能夠使他們熟悉軟件的開發(fā)流程,為學(xué)生畢業(yè)就業(yè)積累一定的基礎(chǔ)。然而,學(xué)校里的訓(xùn)練與現(xiàn)實中軟件企業(yè)里的工作環(huán)境和文化還是有很大的差距[9,10]。為了彌補這個差距,我們會抽出一定課時作為軟件工程實訓(xùn)課,在軟件工程課程期末結(jié)束時,在連續(xù)兩周的周末(周六和周日),聘請企業(yè)技術(shù)骨干為學(xué)生做集中培訓(xùn)。企業(yè)指導(dǎo)老師以軟件企業(yè)的角度出發(fā),訓(xùn)練學(xué)生在公司環(huán)境下如何進(jìn)行軟件系統(tǒng)開發(fā),讓他們了解并慢慢熟悉軟件企業(yè)那套軟件開發(fā)流程。我們通過連續(xù)幾屆學(xué)生的嘗試,學(xué)生反映良好且收獲較大。通過此教學(xué)改革實踐,使我們培養(yǎng)的學(xué)生更接地氣,使他們進(jìn)入公司后能夠很快就上手。
6.鼓勵學(xué)生申請專利或軟件著作權(quán)等成果
我們在講授軟件工程課程的時候,嘗試鼓勵學(xué)生大膽地去申請軟件發(fā)明專利或軟件著作權(quán)等成果。有的學(xué)生動手能力很強,在下面能獨立做出一個完整系統(tǒng),但是可能因為沒有申請專利或軟件著作權(quán)的經(jīng)驗,所以開始不敢邁出這一步。其實學(xué)生也非常愿意去申請,獲批一項專利或軟著等成果,不僅可以給學(xué)生評優(yōu)評先加分,而且對學(xué)生就業(yè)也能帶來一定的優(yōu)勢。通過鼓勵并進(jìn)行適當(dāng)指導(dǎo),每學(xué)期軟件工程課程結(jié)束時,都會有多名學(xué)生獲批軟件著作權(quán)等成果,這不僅大大激勵了學(xué)生的學(xué)習(xí)熱情,學(xué)習(xí)更有干勁,而且對后續(xù)學(xué)生也是一種激勵,能夠鼓舞大家積極編程。在每學(xué)期軟件工程課程的第一節(jié)課,我們在講解該課程導(dǎo)論的時候,就會告訴學(xué)生多動手鍛煉,有機會一定要把自己的成果申請專利或軟著,并把申請專利或軟著的一整套模板提前發(fā)給感興趣的學(xué)生。
7.基于軟件工程課程知識背景講解畢業(yè)論文寫作規(guī)范
成功撰寫畢業(yè)論文并順利參加畢業(yè)答辯,對學(xué)生非常重要。很多學(xué)生在大四做畢業(yè)設(shè)計的時候無從下手,最后寫出來的畢業(yè)論文質(zhì)量非常差,遠(yuǎn)達(dá)不到合格要求。有的同學(xué)可能對畢業(yè)論文整體框架不清楚,不知道如何組織畢業(yè)論文的內(nèi)容。為了改變這種狀況,我們在講解軟件工程課程的時候,具體涉及到每一章內(nèi)容,我們會告訴學(xué)生此章內(nèi)容的方法與原理應(yīng)該放在畢業(yè)論文的哪一部分,應(yīng)該如何寫在自己論文中,如何把方法和原理應(yīng)用到自己設(shè)計的系統(tǒng)中,并在論文中進(jìn)行很好的體現(xiàn)。
通過幾個學(xué)期的教學(xué)嘗試,我們總結(jié)得出此種教學(xué)安排很受學(xué)生歡迎,學(xué)生也愿意聽,而且大多數(shù)都聽得很認(rèn)真,畢竟畢業(yè)的時候就要派上用場,每個同學(xué)都要過畢業(yè)論文這一關(guān)。上過軟件工程課程的學(xué)生,大四畢業(yè)所做的畢業(yè)論文確實質(zhì)量有大大提高,整本論文比較完整規(guī)范。
為了提高軟件工程課程的教學(xué)質(zhì)量,我們在教學(xué)過程中進(jìn)行了多角度摸索實踐。例如,在2019秋季學(xué)期,我在17級物聯(lián)網(wǎng)班上講授“軟件工程”課程時,大膽做了一些教學(xué)改革,學(xué)生反應(yīng)良好并且收獲較大。所有改革措施都是以第二節(jié)提出的方法建議為依據(jù)。整個課程總共48學(xué)時,其中理論32學(xué)時,實驗16學(xué)時。理論課每個星期講授一次,而實驗課我們是從第9周開始(通過前面8周的學(xué)習(xí),學(xué)生對該課程有了一定的基礎(chǔ),能夠進(jìn)行動手實驗)。實驗課總共8次,前面7次都會有具體的實驗任務(wù)安排,而第8次用來舉行項目比拼活動。
在上課的第一周,我們就按學(xué)號順序把全班分成了7個小組,每個小組大概8人左右。除了在教室的理論教學(xué)以外,其他所有教學(xué)活動包括實驗、作業(yè)課程設(shè)計,以及項目比拼都以小組為單位進(jìn)行。每個小組內(nèi)部選舉產(chǎn)生一個組長和一個副組長。組長和副組長對整個小組進(jìn)行全權(quán)負(fù)責(zé),包括對每個小組成員分配任務(wù),對任務(wù)進(jìn)展情況進(jìn)行監(jiān)督和掌控,以及和其他小組之間進(jìn)行聯(lián)系溝通,小組內(nèi)部管理模式借鑒軟件公司內(nèi)部管理方法。每個小組也可以制定自己的管理細(xì)則,用來對本小組進(jìn)行管理和激勵,從而提高本小組的競爭力。
對于實驗課,我們在實驗課開課之前(第9周之前)會把所有的實驗任務(wù)進(jìn)行下發(fā),其中包括大比武的題目,要求每個小組做出一個完整系統(tǒng)。在每次實驗課之前,在課下以小組為單位,組長組織大家進(jìn)行討論,確定實驗的思路和具體實現(xiàn)方案。而在實驗課堂上,則每個同學(xué)都以個體為單位進(jìn)行實現(xiàn)。經(jīng)過了線下的討論學(xué)習(xí),基本上每個同學(xué)都會掌握實驗的具體操作方法,至少有一定的實驗思路,解決了以前有些基礎(chǔ)差的同學(xué)動不了手的窘境。關(guān)于每個實驗任務(wù),在每次對應(yīng)實驗課的最后10-15分鐘,都會有一個小組選一個代表上去進(jìn)行講解(7個實驗,每個實驗對應(yīng)1個小組,即對應(yīng)的小組負(fù)責(zé)對該實驗進(jìn)行講解)。該代表首先會介紹本小組對實驗任務(wù)所采取的解決方案,介紹所遇到的技術(shù)難點和解決方法,并把實現(xiàn)代碼運行一遍,對代碼中的核心模塊一一做快速介紹。其他小組的同學(xué)如果有疑問,可以向代表進(jìn)行提問,如果代表不能對問題進(jìn)行解答,則負(fù)責(zé)小組的其他同學(xué)都可以進(jìn)行回答。而在實驗課的最后一次課,即第8次實驗課,也是在教學(xué)的最后一周,每個小組都會派代表展示本小組所完成的系統(tǒng)(即大比武系統(tǒng))。代表一般為本小組的組長,代表會對本小組設(shè)計的系統(tǒng)做一個從功能、特色到核心功能模塊的快速介紹,并進(jìn)行效果展示。在展示完系統(tǒng)后,全班同學(xué)對該系統(tǒng)設(shè)計進(jìn)行打分。冠軍小組的每個團(tuán)隊成員將在實驗成績上獲得加分獎勵。因此,每個小組都憋足了勁,都力爭把系統(tǒng)做得完美,團(tuán)隊成員分工合作,都為本小組出謀劃策,這樣每個人都得到了鍛煉。通過這種實驗教學(xué)的嘗試,最后期末學(xué)生都反映良好,大多數(shù)都掌握了實驗的設(shè)計操作方法,動手能力得到了大大提高。
論文寫作也是大家比較關(guān)注的話題,畢竟一晃就輪到自己進(jìn)入大四并要準(zhǔn)備撰寫畢業(yè)論文。為了提高他們畢業(yè)時畢業(yè)論文的寫作質(zhì)量,解決他們的實際需求,我從以往畢業(yè)學(xué)生中精選了一本畢業(yè)論文,以該論文作為講解樣本。隨著我們理論教學(xué)的推進(jìn),當(dāng)講到具體章節(jié)時,比如講到“系統(tǒng)分析”的時候,我們在講完主要內(nèi)容以后,接著以樣本論文為模板,介紹如何在畢業(yè)論文中撰寫“項目可行性分析”“用戶需求分析”和“系統(tǒng)功能模塊”等內(nèi)容。在講到“軟件設(shè)計”章節(jié)時,我們會抽一點時間在課堂上介紹如何在畢業(yè)論文中撰寫“系統(tǒng)總體設(shè)計”“系統(tǒng)功能設(shè)計”和“數(shù)據(jù)庫設(shè)計”。通過論文寫作規(guī)范講解,大家基本上都掌握了畢業(yè)論文寫作的套路,都熟悉了一本合格畢業(yè)論文所擁有的基本框架。
另外,樣板系統(tǒng)對學(xué)生訓(xùn)練也具有非常大的意義,能夠起到快速提高學(xué)生動手能力的作用。針對軟件工程教學(xué),我們挑選了“湖北科技學(xué)院資產(chǎn)管理系統(tǒng)”(以前實現(xiàn)的系統(tǒng))為教學(xué)案例系統(tǒng)。在該班的整個軟件工程教學(xué)過程中,我們都以該系統(tǒng)為例子進(jìn)行講解,介紹該系統(tǒng)如何從需求分析到系統(tǒng)設(shè)計、數(shù)據(jù)庫設(shè)計、代碼實現(xiàn)和測試等內(nèi)容。介紹該系統(tǒng)的兩大功能模塊,即“資產(chǎn)入庫”和“資產(chǎn)出庫”的設(shè)計方法,并把它們的核心業(yè)務(wù)邏輯做了詳細(xì)解釋。有了該實例系統(tǒng),學(xué)生對軟件工程課程不再覺得枯燥乏味,反而都有很大的學(xué)習(xí)熱情,因為有實際系統(tǒng)可以參考借鑒。而且整個樣板系統(tǒng)的源代碼都是打包發(fā)給學(xué)生了,這樣學(xué)生課后隨時都可以學(xué)習(xí),不懂的地方大家可以課下相互討論。從而教學(xué)質(zhì)量得到了大大提高,最重要的是學(xué)生的動手能力有很大的提高。以前從來不動手的同學(xué),通過一學(xué)期的學(xué)習(xí),也慢慢可以編碼了。
最后,我們的教學(xué)周在第16周結(jié)束,而在第17周和18周的星期六和星期天,學(xué)院專門聘請了外面企業(yè)技術(shù)人員對該班進(jìn)行培訓(xùn)。在這兩周的周末,企業(yè)技術(shù)骨干從軟件企業(yè)的角度對學(xué)生進(jìn)行訓(xùn)練。當(dāng)軟件公司接到一個項目,他們是如何展開內(nèi)部工作的,如何進(jìn)行任務(wù)分配,如何對項目進(jìn)展進(jìn)行跟蹤管理,這些對學(xué)生來說都比較陌生。因此,通過兩周的集訓(xùn),不僅進(jìn)一步提高了學(xué)生的動手能力,而且學(xué)生對軟件公司的運作有了一定的了解,這樣使他們更接地氣,畢業(yè)工作后能夠快速融入公司環(huán)境,即有一個非常短的過渡期。
總之,我們在17級物聯(lián)網(wǎng)班上的軟件工程教學(xué)實踐是成功的,學(xué)生的能力得到了提高。而且,通過此教學(xué)實踐,也驗證了我們在第二節(jié)提出的方法舉措的可行性和有效性。我們將在以后的軟件工程教學(xué)中大力推廣并不斷改進(jìn)優(yōu)化。
如今,軟件發(fā)展如盛壯之時的騏驥,一日而馳千里。而且,軟件正在不斷地融入到生活中的各行各業(yè)。可以說,我們居住的生活環(huán)境越來越智能,但同時,我們也越來越離不開軟件。因此,如何培養(yǎng)合格的軟件人才,對國家以及對整個社會的發(fā)展都起著舉足輕重的作用。當(dāng)然,對學(xué)生而言,學(xué)習(xí)好編程技巧并掌握軟件工程技能,在未來也會有巨大的回報,能夠?qū)崿F(xiàn)自己的價值。但是,目前國內(nèi)軟件人才發(fā)展遇到了新瓶頸,國內(nèi)軟件工程教育面臨很多新挑戰(zhàn)。為了解決當(dāng)前困境,本文提出一種多角度軟件工程課程教學(xué)方法。
在今后的軟件工程課程教學(xué)中,我們將繼續(xù)探討其他方法,比如探討如何把軟件工程人才培養(yǎng)和學(xué)生分散企業(yè)實習(xí)很好地結(jié)合起來,努力推動軟件人才培養(yǎng)上升到一個新高度。