摘 要: 本文針對當前軟件工程課程設計教學的現狀和存在不足,從軟件工程課程設計的目標要求、設計內容、設計的具體實施、學生成績評價體系等方面,對軟件工程課程設計教學模式作了系統的探討。
關鍵詞: 軟件工程課程設計 教學現狀 教學模式評價體系
一、引言
軟件工程是計算機科學、信息技術、軟件工程等專業的教學計劃中一門重要專業必修課[1],而軟件工程課程設計是針對軟件工程這門課程展開的一項理論與實踐相結合的重要教學活動;它不同于畢業設計,更不同于簡單的實驗過程。它是軟件工程教學的一個重要實踐環節,為學生綜合能力的運用、技術思維的形成、創造能力的培養搭建了一個平臺,使學生除了掌握軟件工程理論和方法外,還能夠綜合運用已學過的程序設計、數據結構、計算機網絡、管理學和經濟學等課程的技能、工具解決與其相關的理論或實際問題。
在軟件工程課程設計中,很多本學科的學者與施教者總結了不錯的經驗,比如“激勵機制”[2]、面向對象的自主實驗教學[3]、課程相關體系研究[4]及相關的案例法教學實踐設計[5]等,這些方法各有所長。我取其所長,結合親身教學實踐,從課程設計的目標要求,設計內容,設計的具體實施,學生成績評價體系等方面,對軟件工程課程設計教學模式作了系統的探討。
二、軟件工程課程設計的教學現狀
長期以來,很多高校培養的學生存在著“什么都學過,卻什么都不會”的尷尬局面,專業教育、教材與實際應用需求嚴重脫節[6]。傳統的軟件工程課程設計雖然也有設計的要求,但一般只是停留在組織學生編寫軟件項目若干設計文檔這個單一環節上,忽略了對教學方法和內容的更新。目前,大多數院校軟件工程課程設計課程教學中普遍存在的問題有以下幾點。
1.課程設計目標不夠明確,實驗和設計不加區別。把軟件工程實驗和設計的要求同等對待,從而使設計內容偏少,驗證性實驗內容和方法偏多,實驗過程變成了重復的復制和操作的過程,實驗教學效果不理想,達不到培養學生獨立思考和創新能力的目的。
2.課程設計內容比較陳舊,不能與時俱進。很多從事軟件工程課程設計教學的教師本身缺乏項目開發的實戰經驗,對課程設計的內容往往從一些參考書籍的實例中拿過來讓學生去做,有的甚至多年不更新設計內容,這樣很容易給學生抄襲的機會,達不到課程設計的要求;同時,很多學生對設計的內容也不一定感興趣,因此也容易扼殺學生的積極性和創新能力。
3.在項目組劃分確定方面,缺乏對學生專業基礎,性格和技能的分析與匹配,導致沒有凝聚整組成員的合作精神和團隊的開發能力。組長的核心作用很重要,但在具體的設計中,一般就是簡單的按學號自然的分化,或者學生的自由組合分組,前者失去了團隊能力的柔化組合與應用,后者導致少數技能較差的學生不能分到組中去而處于孤軍作戰的局面。
4.教師制定課程設計的指導要求目的不明確、不詳細,監管力度不到位,導致項目開發團隊在執行的過程中出現安排任務不合理,出現某些成員任務過重或者過輕的情況。
5.學生成績的評分結果過于單一,評價體系不夠科學合理。對學生的設計成績的評價往往是指導老師根據學生提交的報告和設計結果來評分,這樣容易忽略對學生綜合能力(包括學生的口頭表達能力,組織能力,團隊協調能力等各方面)的評價。
因此,為了培養高素質的綜合型軟件人才,高等學校探索良好的軟件工程課程設計教學模式就顯得十分必要。
三、軟件工程課程設計教學模式的探討
針對當前多數院校軟件工程課程設計課程教學中普遍存在的一些問題,我根據多年的教學經驗,對該課程的教學模式作了如下探討。
1.指導老師根據軟件工程教學的特點,制定出軟件工程課程設計的目標與通過該課程設計后可取得預期的收獲。下面是我對軟件工程課程設計制定的目標和可能的預期收獲。
(1)通過本課程設計的實踐及其前后的準備與總結,復習、領會、鞏固和運用軟件工程課堂上所學的軟件開發方法和知識,比如,軟件項目的完整設計與開發過程、結構化技術、快速原型法和面向對象方法,等等。
(2)為學生適應畢業后團隊合作開發規模稍大項目和綜合應用本專業所學習的多門課程知識(例如,軟件工程、程序設計語言、操作系統、數據庫、網絡編程等)創造實踐機會。為學生提供主動學習(比如,對Web網頁設計、ASP.NET或ASP交互網頁技術、Java開發環境、網站構架如Struts,Hibernate,Spring,商用數據庫應用、電子商務、客戶機/服務器技術、Visio與Rational Rose,Sybase powerdesigner軟件工具等內容的學習)、積極探索與大膽創新的機會。
(3)使學生通過參加小組團隊的開發實踐,了解項目管理、團隊協作、與客戶交流、文檔編寫、口頭與書面表達的重要性。
(4)使每個學生了解軟件工具與環境對于項目開發的重要性,并且重點深入掌握好一、兩種較新或較流行的軟件工具或計算機應用技術、技能。
(5)通過“稍大的”富有挑戰性的軟件設計項目開發實踐,提高學生的自學能力、書面與口頭表達能力、創造能力和與團隊其他成員交往和協作開發軟件的能力,提高學生今后參與開發稍大規模實際軟件項目和探索未知領域的能力和自信心。
2.課程設計內容選擇應該具有科學性和與時俱進性。課程設計內容選擇十分重要,既要體現時代性,又要體現科學性和難度的適當性,因此要求指導老師對當前軟件開發領域的整個動態有總體掌握。下面是我對當前軟件開發領域進行的大致歸類。
(1)網站開發類:包括休閑娛樂(音樂,影視,聊天,休閑運動,旅游景點等)網站;工商經濟網站(攝影,日用家居,玩具等);文學網站(詩詞/韻文,港臺文學,民間文學,科幻文學等);體育與健身網站(極限運動,球類,健美/健身,運動常識,網球,乒乓球等);衛生與健康網站(醫學理論,醫療器械,保健/養生,論壇等);國家地區網站(北京,上海,廣東,江蘇,天津等);教育培訓網站(小學/中學教育,職業教育,高等教育,教育軟件,培訓機構等);其他等類型網站。
(2)應用軟件類:如信息管理系統,漢字輸入,轉換翻譯,文字處理,壓縮解壓,電子閱讀,文檔管理,字體工具,數據恢復等。
(3)系統軟件類:如系統管理,內存管理,文件管理,系統測試工具等。
(4)游戲娛樂類:如網絡游戲,Flash游戲,牌和棋游戲等。
(5)其他:如安全病毒,桌面工具等。
這樣,課程設計的內容可以根據學生的興趣和愛好從以上幾方面進行選擇,也可以由學生自己選擇設計內容,指導老師把握學生選擇的項目難易程度,同時提出所要達到的要求(包括完成日期,演示時間,學生所要提交的成果,文檔資料,等等)。
3.課程設計項目具體實施
(1)確定開發團隊。指導老師在班長和學習委員的協助下充分了解學生的興趣、愛好、基本技能和未來學生的就業意向,學生在教師的指導下,有選擇性地進行分組,一般3至5人為一組,并選定好組長。
(2)確定開發項目。指導老師給小組成員分配好開發任務,組長寫好開發計劃進程安排并提交指導老師檢查以便及時修進。
(3)中期檢查與指導。指導老師根據各個團隊提交的開發計劃,對各團隊開發項目進程定期進行中期檢查,檢查各團隊的項目進展情況,包括各個小組的開會記錄,所查閱的資料,當前所遇到的困難,協助與指導小組面對困難所要采取的解決方法等。
(4)成果提交與演示。課程設計結束時指導老師要求按時提交項目的相關成果,并組織小組團隊進行演示與簡短的答辯。演示過程要求學生用5—10分鐘時間敘述設計原理、過程、系統運行的情況和體會,敘述完畢后由指導老師或其他小組成員提問,指導老師和小組成員記錄該學生演示情況和回答問題的情況,并以此作為下一階段評定該學生成績的一部分。
4.建立合理,科學公正的評價體系。為了對每個開發團隊中的成員成績有個公正、公平和合理的成績,因此必須建立合理、科學、公正的評價體系,本文建立的評價體系包括:學生提交成果,學生演示與答辯,學生自評與互評,教師評分。學生提交成果根據表1學生所承擔的角色來交付;學生演示與答辯重點體現對系統的原理、過程、結論,以及開發體會進行表述;學生自評和互評體現了學生的自我認同和互相認同感;最后是教師的評分,教師的評定從以下幾方面全面考慮:(1)學習態度是否端正,總體表現;(2)項目組織是否有條理,協作程度;(3)軟件系統文檔資料表達格式是否規范、符合要求,表達是否準確、完整、簡單明了;(4)系統結構是否合理,功能是否正確,人機界面是否友好;除了符合上列基本要求具體評定可以參見下表1。最后學生的總評定成績為:0.4×教師評定分+0.2×學生互評分+0.2×學生演示與答辯評分+0.2×學生自評分。
表1 評定標準
四、結語
軟件工程課程設計是一門理論與實踐相結合的應用性很強課程,我結合自身從事軟件開發的經驗和多年的教學,從以上幾個方面探索了該課程的教學模式,在實踐工作中雖然取得了一定的成效,獲得了學生的認可與好評,但仍處于嘗試和探索階段。在實際指導過程中還存在不少問題,例如:個別學生的積極主動性不夠,存在抄襲設計成果現象,等等。這些都需要繼續努力,尤其是隨著軟件產業的飛速發展,如何培養高素質軟件人才,對教師來說更是一種挑戰。因此,教師應不斷學習新的知識,提升自身的能力,把握學科的最新發展動態,探索新的教學模式,深化實踐教學改革,為我國教育事業作出更大的貢獻。
參考文獻:
[1]張海藩.軟件工程導論(第5版)[M].北京:清華大學出版社,2008:55-73.
[2]張引,楊小虎,陳越.“軟件工程”課程實踐中激勵機制的探索[J].計算機教育,2007,(5):30-32.
[3]江頡,石曉耀.面向對象的軟件工程自主實驗教學改革[J].實驗技術與管理,2007,24(7):112-114.
[4]王薇.軟件工程課程體系研究[J].計算機教育,2007,(8):31-32.
[5]巫華芳.軟件工程教學案例設計初探[J].教育與職業,2007,(11):139-140.
[6]馬燕,張根耀,王文發.軟件工程實驗教學模式改革與實踐研究[J].教育與職業,2006,(36):149-150.
基金項目:華南農業校長基金(2009K203,2008K011)