陳立巖
[摘要]從軟件工程教育的教學實際出發,探索人才培養創新教學方法,以提高教學質量。結合黑龍江大學計算機學院的實際情況,提出教學創新實踐改革的新思路。通過一系列措施的實行,提高了學生面向工程的分析設計、實際動手和溝通等方面的能力,幫助學生更快地適應社會需求。
[關鍵詞]軟件工程創新教學項目驅動
[中圖分類號]G642[文獻標識碼]A[文章編號]2095-3437(2014)11-0158-02軟件工程是研究如何將工程方法應用于軟件開發、運行和維護過程中的,通過講述軟件的工程化開發方法和相關的軟件開發工具、開發過程、開發規范,使學生了解軟件工程的本質,掌握常用的軟件開發方法,并且能夠有意識地將軟件工程原理運用于實際的軟件開發和維護過程中,提高學生的專業素質。但在實際的學習中,學生常常感到本課程理論性太強,不能將理論很好地運用到實際的項目中,造成理論與應用脫節;[2]而軟件工程專業的落腳點是“工程”,也就是要學習工程化的思想和方法,掌握工程應用能力,然后解決實際問題,因此要想真正實現軟件工程專業的培養目標,必須加強課程建設中的實踐環節。
目前的軟件工程課程,如程序設計語言、數據結構與算法、操作系統、數據庫等計算機專業課程,這些能力的培養很容易在實踐教學過程中被剝裂開來,讓學生感覺不到實際的應用價值。因此在實踐教學過程中,如何把專業知識融入工程項目中十分關鍵。[1]
大多數軟件工程教材都是輕實踐重理論,這些教材往往都是開發經驗非常豐富的專家總結出的開發軟件的解決方案,教材里是提煉出的理論精華,而學生沒有經歷實踐過程,對這些難懂的理論知識不解。學生沒有那么多實踐的機會,體會軟件工程理論有困難,這是正常的,而他不理解也就無法提高學習興趣。如果我們想辦法把這些知識融入實踐性較強的計算機語言課的學習中,讓學生看到從代碼編寫中出現的難解的問題是如何通過設計原則和設計模式處理方法得以解決,就會讓學生感到好理解,有實際的應用效果。這樣,將軟件工程課程的一部分學習安排到語言課程中,能讓那些抽象的理論變成指導開發的有力手段,當學生再學習軟件工程導論等課程時,就變得容易理解,而且也并不會反感。另外,為了突出軟件工程的設計、開發思想,講語言課時,也可以在實驗操作環節上增加相應的實驗考核內容,使學生在學習計算機專業課程的初期就具備了軟件工程理論知識,這樣既學習了相應的軟件工程知識,而且也讓這種學習變得容易理解和具有實效性,使學生們在一開始學習時就已建立起穩固的軟件工程理念,讓他們體驗軟件工程方法與技術在系統開發中的關鍵作用,幫助他們以工程化方法構建小規模系統的知識能力。
以工程項目的整個生命周期作為一個載體,讓學生從實踐出發,主動將它與課程中的工程理論之間建立聯系,使學生從全局角度深入把握項目的完整流程,培養學生運用多方面的知識和技能解決問題的能力。
一、以培養工程能力為核心的實踐教學課程設計
采用循序漸進的教學手段,在構建實踐中,從小規模系統向中規模系統逐步演進,在實踐中學習并將知識運用融會貫通,完成三部曲。首先,將軟件工程思想滲透到Java語言的學習中,讓學生先在編程中體會軟件工程知識給學生帶來的好處,這些內容可以在上Java語言課中安排。并且重視動手能力的培養,除了平時的實驗課程外,學生在將近學期末要分組做綜合實驗,實驗題目由老師指導選題,從一些在軟件公司聘請富有經驗的開發人員,讓他們參與整個綜合實驗的指導工作,讓學生在大二時就已經開始把所學到的知識與實際的軟件項目接軌。通過這樣的培養,學生收獲很大。
在語言課之后,學生開始軟件工程開發基礎課程學習,以經典的軟件工程方法與技術為主線,教師選擇一些實際的案例,選擇的項目以中小規模為主,將學生分成若干小組,圍繞事例按照瀑布模型展開,使學生在做項目中學會溝通和自主學習。還可以在課程中安排讀書工程,要求讀3本以上的書,記入讀書工程學分,同時進行工程實踐類課程的學習,可以按如下步驟展開:首先,通過教師選擇一些實際的案例,將學生分成若干小組,每組不同成員擔任不同的角色。待小組成員確定案例后,模擬實際開發環境,運用所學的理論知識展開分析和討論。討論結束后,各小組派出一個代表在全班同學面前匯報研究成果,老師再給予補充,這樣可以激發學生的學習興趣,培養他們分析問題能力和溝通、協作能力。
之后,安排團隊與軟件開發實踐課,拓展學生項目管理實踐、團隊管理與交流實踐。在項目實施過程中,由一位老師擔任項目總監,在分配一定的成本、進度的前提下,學生要開發出具有一定質量屬性的軟件產品。另外,學院安排一個由老師組成的實踐團隊,分工并指導軟件開發的各階段,讓每個老師所擅長的方面充分體現,并在項目開發最后,由老師和部分同學給每個小組打分,計入軟件工程實踐課的總分中。這些工作我們將在下學期實施。
二、考核制度改革
為激發和培養學生創新意識,發揮考試的激勵作用,積極推進考試形式、考試內容、考核方式等方面的改革。[3]為推進素質教育,改革考試形式可采取閉卷考試、開卷考試、提交論文、提交軟件作品等多種考試形式;為了加強實踐能力的考核,促進學生創造力和個性特長的發展,考試命題可采取靈活多樣的方式,可參考每年的軟件分析師、設計師水平考試的相關題目,也可以加入適當的英文考試題,這樣給學生更大的思維空間,促進能力的發揮;考核方式將日常評價、階段評價和期末評價有機結合起來,如日常實驗考核、提交文檔及期末卷面考試結合在一起。
三、創新方式歸納
(一)挖掘課堂效率,加強課外實訓
創新教學過程不再僅局限于課堂,要求學生在掌握教師授課的知識之余,通過積極參與課外實踐活動,將所學的知識運用到實際的開發項目中??梢越M織多種形式的創新實踐小組,通過自愿報名加考核的方式篩選出有興趣和有一定基礎的學生參與進來,為他們安排固定的實驗室,所要完成的項目是由學生自己申報并爭取通過審批。在實踐活動中,由專門的老師指導,但很多知識是靠學生課后閱讀相關的書籍、資料去了解。為激勵學生的實踐活動,對每支學生團隊進行中期和最后兩次評價,并選出好的隊伍參加學校及省里組織的各種競賽活動,使學生更有動力,明確自己的發展目標和方向。自從創新實驗室創建以來,學生參加各類大賽陸續傳來佳績,在全國ACM大賽、全國挑戰杯大賽上均取得好成績,其中全國ACM大賽獲得一次亞洲區銅獎和多次全國一、二等獎。
(二)強化校企合作IT實訓,構建多維的實踐教學體系
為了加強應用型、復合型人才的培養,提高學生的就業和創新實踐能力,軟件學院不斷探索,逐漸形成和完善出一套“多維分流”的人才培養模式,加強校企合作,把企業的資源引入高校。由一些有實力的軟件公司派出一線工程師和核心研發人員到學校做培訓,他們帶來真實的項目,并組織大三學生,有計劃地免費進行一個假期或更長時間的培訓,然后公司選擇有培養潛力的學生,在畢業前的最后一個學期到公司實習,當然是采取自愿的方式和公司簽訂合同。這樣,既解決了學生就業難的問題,也能解決學生沒有實踐機會,不能適應外面的工作需要的問題。經過一段時間的培訓,學生普遍反映進步很大,并且還找到了理想的工作。
(三)提升項目式創作
組織效益比較好的公司,帶來自己公司的項目,并從公司派來有開發經驗的人員到現場指導,學院低年級的學生可以自愿報名,以小組的形式組織開發項目的實施,每周開1-2次會,針對具體的問題,展開討論并加以指導。經過了一年的項目開發,已經小有成績,這些小組的成員都能一直堅持下來,說明這種形式的項目開發給學生帶來了真正的實惠。
四、創新實踐教學成果
從2008年起,我學院每年就業率逐年提高,到2012年止,就業率高達92%,已是全校各學院中就業率最高的學院,而且,從用人單位反饋的消息來看,對我們學生的評價也很高,普遍反映學生知識面寬、動手能力強。
五、總結
面對就業的壓力與社會對人才的不同需求,我們除了要抓好課堂上的學習,培養學生的扎實基本功和學習興趣外,更重要的是讓他們走出課堂,加強課外實踐和自主學習的能力,以提升自己面向工程的實際動手能力,進一步提高分析、解決問題的能力和與人溝通能力。這些正是作為軟件工程專業的學生所難能可貴的知識積累。
[參考文獻]
[1]陽王東,吳宏斌,祝青.以工程項目為主線的軟件工程專業課程設計的實踐教學[J].計算機教育,2012(12).
[2]劉強,陳越,駱斌等.“軟件工程”課程教學實施方案[J].中國大學教學,2011(2).
[3]金英,王楠,楊豐.優化課程體系改革教學內容和方法培養創新型人才[J].黑龍江教育,2008(1,2).
[4]裴小兵.基于軟件開發團隊的軟件工程教學實踐研究[J].計算機教育,2008(2).
[5]東霞.計算機創新教學模式的探討[J].信息與電腦(理論版),2011(1).
[責任編輯:鐘嵐]