陳立巖 楊豐 譚龍
摘 要:以培養(yǎng)軟件工程師為目標,構(gòu)建工程應用型人才培養(yǎng)體系,闡述了學生工程實踐能力培養(yǎng)的實施方案,其中包括構(gòu)建科學的課程體系、科學的教學團隊、科學的組織教學、采用專業(yè)導師制、有效的評價體系等一系列教學改革,以期培養(yǎng)出現(xiàn)代企業(yè)需求的人才。
關鍵詞:軟件工程師;培養(yǎng)體系;應用型人才
中圖分類號:G642.0 文獻標識碼:A 文章編號:1002-4107(2018)04-0011-02
近年來,我國互聯(lián)網(wǎng)發(fā)展很快,尤其進入“互聯(lián)網(wǎng)+”時代后,亟須大量高素質(zhì)的從事軟件開發(fā)與維護的專業(yè)人才。目前,相關從業(yè)人員400多萬,每年還在以80萬人的需求遞增。雖然中國高等教育蓬勃發(fā)展培養(yǎng)了大量IT相關的專業(yè)畢業(yè)生,但這些畢業(yè)生大多實踐經(jīng)驗不足,不適應企業(yè)的工作,從而產(chǎn)生高校培養(yǎng)技術(shù)滯后與企業(yè)先進的技術(shù)需求相矛盾,導致這種矛盾的原因:一方面是大多數(shù)高校仍按照傳統(tǒng)的教學計劃設計課程,所講授的內(nèi)容跟不上軟件技術(shù)的發(fā)展,知識與軟件開發(fā)實踐脫節(jié)、實踐環(huán)節(jié)組織薄弱等。另一方面,學生缺乏社會活動體驗和軟件實際開發(fā)經(jīng)驗,很難理解軟件工程課程中的概念、原理。他們普遍感到該課程的學習枯燥無味,課程結(jié)束后通常感覺沒學到東西。因此,如何設計先進的教學內(nèi)容、合理組織實踐教學,構(gòu)建更合理的軟件工程教學框架,是軟件工程教學改革的重點[1-2]。
軟件工程專業(yè)的特點是實踐性突出、應用性強,以培養(yǎng)“系統(tǒng)分析與設計工程師、軟件開發(fā)類工程師、系統(tǒng)測試和軟件維護員”等人才為目標,課程群設置為“基礎教育”“專業(yè)基礎”“校內(nèi)基地實訓”和“校外實習”等[3]。抓好基礎是關鍵,為加強學生動手能力,黑龍江大學軟件學院在教改中增加了軟件工程實踐類課程,在課程中增加教師的配備,指導學生上機,學生學懂了做會了,就會有成就感,從而產(chǎn)生興趣。
目前,很多高校軟件工程教育者、學術(shù)界研究者及軟件產(chǎn)業(yè)界的工程技術(shù)人員從不同角度對課程設計和教學實施進行了積極思考和探索,并取得了一定的進展,例如,在教育部高等學校計算機科學與技術(shù)教學指導委員會主導下,清華大學、浙江大學、南京大學等國內(nèi)名校計算機部門的專家組成課題組,共同研究提出了軟件工程課程教學實施方案的總體框架,分別從課程實驗與綜合實訓兩個方面設計實踐教學方案,并推廣學習南京大學的教學經(jīng)驗。近年來,筆者在教學中,根據(jù)學生的特點,開展了一系列教學探索。
一、教學中存在的問題
(一)軟件工程教育師資力量不足
目前,很多國內(nèi)高校中承擔軟件工程類課程的教師普遍為年輕教師,他們大多數(shù)經(jīng)歷了計算機專業(yè)從本科→碩士→博士的過程,這部分教師一直從事理論研究工作,缺少軟件開發(fā)的經(jīng)驗,造成教師上課偏重于理論知識和方法的教授,缺少與產(chǎn)業(yè)界密切聯(lián)系的實例,對于同樣沒有實踐經(jīng)歷的學生來說,這就使得軟件工程課程聽起來晦澀難懂,空洞乏味。
師資力量不足的另一個表現(xiàn)就是大班授課。除了實驗班、特長班以外,多數(shù)學校由于師資緊張,也由于學校經(jīng)費有限,均實行大班授課,例如,由2~3個自然班組成一個教學班,配備一個主講教師。教師沒有更多精力帶領學生開展有針對性的實踐訓練和指導,傾向于課堂理論教學,客觀上削弱了學生軟件工程學習體驗和學習積極性,很難取得好的教學效果。
(二)軟件工程實踐教學環(huán)節(jié)有待提高
現(xiàn)有的軟件工程實踐教學素材多數(shù)是任課教師自己設計,或者從互聯(lián)網(wǎng)下載,通常缺乏系統(tǒng)設計,或分析設計材料不夠貼近學生,或者各種素材之間聯(lián)系比較松散,使得教師和學生們在軟件工程實踐環(huán)節(jié)沒有明確統(tǒng)一的指導框架,不利于學生實踐環(huán)節(jié)的培養(yǎng)。
在軟件工程教學安排中,軟件工程課程有課程實驗,但這僅是結(jié)合學習的內(nèi)容寫文檔,沒有真正地完成一個項目,學生實踐機會不是很多,更沒有綜合性的實踐活動,這樣導致學生可能到大四畢業(yè)設計前都沒有接觸過完整的項目,使得學生畢業(yè)設計完成起來很有困難。
二、軟件工程教育的幾點對策
(一)構(gòu)建科學的課程體系
在2014版的教學計劃中,黑龍江大學軟件學院對軟件工程相關課程做了重大調(diào)整,將大二原來的兩門課(軟件工程概論和uml與面向?qū)ο蠓治龊驮O計)變成一門課,之后又增加一門課程——軟件工程綜合設計,增加了實踐環(huán)節(jié)以提高學生的項目開發(fā)能力,并且在大三開設的軟件系統(tǒng)分析與設計課程之后又增加了軟件工程綜合實踐。這兩門課都是在實驗室進行的上機課,不但要求學生對項目有分析設計的能力,而且也要完成編碼,這樣就彌補了大二、大三沒有實踐類課程的不足,學生能夠主動運用計算機語言和學過的其他知識比如數(shù)據(jù)庫、計算機網(wǎng)絡等完成一個相對完整的小項目。學生不僅有成就感,而且對今后的畢業(yè)設計及工作帶來很大幫助。
(二)構(gòu)建科學的教學團隊
整個軟件工程學科建設已形成了基本成熟的教學梯隊,包括軟件工程概論、軟件系統(tǒng)分析與設計,軟件測試、軟件工程管理,由于軟件發(fā)展的需要,教師也需要不斷學習,以黑龍江大學為例,我們在實踐中摸索出一種團隊教學模式。定期組織軟件工程教學研討會,按照所講授的課程分成4個教學小組,團隊集體備課,定期商討每門課選定的知識點以及講授順序,這樣,既能將軟件工程理論全程覆蓋,又避免了課程之間的重復講授,并且在研討會上我們互相學習,共同商量制定各種教學材料。尤其是教學樣例和實驗講義部分,我們摸索出一種符合社會需求,適合學生接受程度的教學模式。
(三)科學地組織教學
欲修的課程較多強調(diào)編程,較少關注設計,導致一種慣性思維——跳過設計直接編程。比如,C++、java語言,授課時更多的是講解如何編寫一個類型、類間的繼承、重寫、多態(tài)等編寫規(guī)則及各種不同異常、多線程等在程序上的運用,而較少用標準制圖的方式描述類型的設計以及類型間的邏輯關聯(lián)。所以在軟件工程課堂教學中,增加貼近學生生活的案例,通過制圖過程,學生對一個項目有完整的認識,增加他們開發(fā)的信心,通過練習題的形式,要求學生重繪指定的圖紙,以加深記憶。另外,也通過一定的討論,重新審視整個圖紙的邏輯關系,加深記憶。
畢竟紙上談兵,不會給學生一種成就感,所以在軟件工程的上機實踐環(huán)節(jié),分組選題,完成所選題目的分析設計以及編碼過程,這樣就促使學生主動學習,參照已有的案例畫需求設計階段的相關圖形,在學生認真分析和設計過程中再進行編碼,這減少了編碼的返工次數(shù),提高成功率。在實踐環(huán)節(jié),為了更好地發(fā)揮指導作用,加大教師的投入顯得特別重要,按照每組2人,每11~12個組分配一個教師,這樣教師能了解每個學生的情況,而且也避免了因大班授課指導不過來的問題,事實也證明,在指導學生完成大實驗上,教師起到很大的作用。
(四)采用專業(yè)導師制
為了加強對軟件工程專業(yè)學生的專業(yè)學習和項目研發(fā)的指導,提高學生的工程實踐能力,根據(jù)學生的數(shù)量,教師可將學生分為每20名學生為一組,選派一名導師負責學生在校全過程的指導,聘請有良好職業(yè)道德,工作責任心強,并作為主要負責人參與過至少一項省級以上的科研項目,最好有帶學生參加軟件開發(fā)類競賽經(jīng)歷的教師擔任專業(yè)導師。
專業(yè)導師針對新生,指導其掌握大學的學習規(guī)律和學習方法,端正學習態(tài)度,樹立良好的學風,了解學生的學習情況并對專業(yè)學習和動手能力培養(yǎng)進行指導;針對高年級的學生,原則上要求學生進入導師的研發(fā)團隊,參與導師的項目研發(fā)或各類競賽項目。導師經(jīng)常性地到創(chuàng)新實踐基地指導學生,培養(yǎng)學生的工程實踐能力、團隊合作意識和敬業(yè)精神;加強就業(yè)指導,協(xié)助學生完成職業(yè)設計和職業(yè)規(guī)劃,充分利用現(xiàn)有資源,向用人單位推薦畢業(yè)生[4]。
(五)有效的評價體系
對于軟件工程這種技術(shù)性較強課程的考核主要分為學生評價與教師評價兩個方面。學生分成若干項目組,在教師指導下進行項目的構(gòu)思和設計,然后由各組獨立進行項目的研發(fā)和實現(xiàn),最后是教師評價。教師評價主要通過軟件分析、設計報告,軟件產(chǎn)品演示、程序思路的講解等,該環(huán)節(jié)打分占80%,學生采用互評打分,項目結(jié)束時,各組由教師抽簽決定選一個學生用PPT對項目的整個過程進行講解,分享觀點和心得,其他各組給分,占總分的20%,為避免部分學生在團隊內(nèi)部混學分的現(xiàn)象,教師要標記各組中表現(xiàn)較差的學生,并且在最后打分時是由教師給分,其他學生將兩次分數(shù)的總和作為該組成績,團隊成員討論,按照每個成員的貢獻大小排出次序,這組最高分的學生成績是這組的打分成績,其他學生成績依次降低,分差不低于3分,這樣好學生就不會聚堆,好學生為體現(xiàn)他們的個人能力,就要帶頭選題成組,促進了學生們學習的積極性。以項目為基礎對學生進行專業(yè)實踐能力和實際開發(fā)能力的培養(yǎng),讓學生參與到實際軟件項目的制作開發(fā)中,這樣才能使學生畢業(yè)后進入企業(yè)很快成為合格的專業(yè)技術(shù)人才。
黑龍江大學軟件學院經(jīng)過兩年的教學改革,專業(yè)培養(yǎng)目標和畢業(yè)定位漸趨于合理,工程型師資隊伍的力量顯著增強,校內(nèi)外實踐環(huán)節(jié)也有明顯的改善,學生的學習興趣和求知欲望普遍高漲,學生的動手能力增強。軟件工程專業(yè)已成為學校理科就業(yè)率最高的專業(yè)之一,近幾年畢業(yè)生的就業(yè)率在85%以上,畢業(yè)生的就業(yè)質(zhì)量越來越高。
參考文獻:
[1]楊愛民,鄧芳,高飛. 軟件工程專業(yè)人才培養(yǎng)模式的研究與探討[J].計算機教育,2016,(3).
[2]樸勇,周勇,陳鑫等. 軟件工程教學中關于抽象思維和形象思維能力培養(yǎng)的思考[J].計算機教育,2015,(17).
[3]陳智勇,文益民,鄧珍榮等.以培養(yǎng)軟件工程師為目標的計算機科學與技術(shù)本科人才培養(yǎng)體系[J].計算機教育,2015,(9).
[4]張德江. 應用型人才培養(yǎng)的定位問題及模式探析[J].中國高等教育,2011,(18).