摘要:針對當前高職《軟件工程》教學中存在的問題,從實用的角度出發,針對教學內容、教學方法和教學評價等方面進行全方位的改革,理論聯系實際,提高學生的學習興趣和動手能力,培養學生的團隊協作能力,增加就業競爭力。
關鍵詞:軟件工程 高職教育 教學改革
0 引言
高職院校的計算機專業的學生畢業后,主要從事軟件開發、維護和銷售,很少一部分從事理論研究工作。而我們在教學過程中往往重視理論而忽略了實踐,學生的實踐缺乏系統的、有指導的專業訓練。這樣的學生到工作崗位以后,用人單位要花一到兩年的時間進行崗前培訓,他們才能適應崗位的要求。這種教育與企業需求脫節,造成了資源的嚴重浪費。在經濟危機條件下,更多的企業不愿意接納應屆畢業生,充當培訓者的角色。目前,缺少適應企業需求,工程能力強的計算機人才。《軟件工程》是高職院校計算機專業中唯一涉及工程規范與管理的專業必修課,它像粘合劑一樣,將人、理論、技能、工具等結合生產出軟件產品[1]。《軟件工程》這門課教學目標是使學生系統掌握軟件工程的基本理論,樹立工程化的思想、標準化意識。但是在以往的教學中存在一些問題,導致教學效果不明顯,直接影響學生的就業競爭力和學生畢業后工作期間軟件開發能力和項目管理能力,所以針對《軟件工程》教學的改革是尤為迫切的。
1 高職教學中的問題
1.1 教學內容陳舊 軟件工程作為一門迅速發展的新興學科,新的技術方法和工具不斷涌現,絕大多數的高職院校計算機專業都開設《軟件工程》為必修課。但是,現有的高職高專的專業教材內容過于老化,主要講解的還是結構化軟件開發方法,缺少較詳實的目前先進的、具體的企業使用的面向對象軟件開發方法的介紹。因此,有必要更新教學內容,并以此為基礎對軟件工程的教學方法進行全面、系統的改革。
1.2 教學方法單一 當前《軟件工程》課程教學主要以教師講授為主,學生的學習積極性和主動性得不到調動,導致知識理解不到位,不能把軟件工程所涉及的前驅課程都聯系起來,所以知識遺忘快。
1.3 理論教學多,實踐教學少 現在教師往往把重點放在講解一些基本概念、方法和原則,而將涉及訓練實踐簡化或省略,背離了軟件工程實踐性和綜合性的特點,學生在學完該門課程之后,往往不能真正的理解比較抽象的軟件工程的基本思想和原理,更不知道如何用軟件工程的方法來開發和維護軟件。
2 改進方法
由于軟件工程綜合性、實踐性強的特點,在加之高職院校培訓的學生要有很強操作能力,所以要求該課程的教學中不但重視關鍵概念、重點難點內容的講解,而且還要適當的加入案例教學,使學生成為教學的主體。在理論教學完成之后,增加課程設計的實踐環節,鍛煉學生的軟件開發能力,從而進一步提高學生分析問題、解決問題的能力,增加學生的團隊協作精神的培養。
2.1 教學內容的豐富 為了讓學生進入工作崗位能很快的適應,所以在教學內容的結構上進行調整,把軟件行業一致認可的、目前比較流行的軟件工程的熱點技術或概念、建模語言和工具引入到課堂教學中,并且作為教學內容的核心。在教學過程中以面向對象方法為基礎,以面向對象的程序設計語言Java或C#作為工具,著重統一建模語言UML及建模工具Rational Rose的講解。
2.2 教師素質的提高 根據軟件工程這門課的特點,要求教師不但要具有一定的理論基礎,而且還要有具體的軟件開發的工作經驗。教師要把軟件工程所涉及的所有前驅課程中的知識點融和在軟件工程教學中,教師還要關注軟件工程業界發展動態,在教學過程中給學生做以適當的介紹。學校一定要適當的給軟件工程老師提供一些到企業學習的機會,這樣課程的內容才會變得鮮活起來,課堂教學才會更貼近學生畢業后的工作環境。
2.3 教學方法的改革
2.3.1 重視基本概念的講解 軟件工程中一些重要概念是很抽象的難于理解的,但這些概念的理解會影響到學生的學習效果。所以教師一定要把基本概念講清講透,讓學生消化理解。教師在授課時還應該補充介紹一些熱點的技術或概念,如XP(極限編程)、RUP(統一軟件開發過程)、CMMI(能力成熟度模型集成)等。讓學生對其有所了解,掌握進一步學習的途徑和方法。
2.3.2 適當的案例教學 通過講授,讓學生系統的掌握整個知識體系。運用適當的案例教學,使學生感覺到軟件工程的實用性所在,從而提高自主擴展知識面和建構自己的新知識的欲望。在學生動手動腦參與案例分析得過程中,加深對所學知識的理解,培養了學生的分析能力。
2.4 認真組織課程設計,培養實際開發能力。課程設計能使學生對整門課程中的方法、技術、工具等有一個系統的梳理,通過理論和實踐的結合,可以增加對理論知識的理解,同時可以掌握項目開發的每個階段中文檔的書寫規范等。在課程設計階段,可以增加學生解決實際問題的能力,還可以培養學生的溝通能力,這在實際的軟件開發中都是至關重要的,因而課程設計是軟件工程教學中不可缺少的一個重要環節。軟件行業分工越來越細、一個團隊內也有各種角色。課程設計階段小組成員分別擔任項目經理、系統分析員、程序員、測試員等角色,在項目的不同階段,學生擔任的角色可以變換[3]。從項目可行性報告開始,進行系統需求分析、設計、實現與測試等各環節,每個階段應遞交相應的軟件開發文檔。各小組之間交叉進行檢查,發現問題和不足,逐步進行改進和完善。在師生之間、同學之間和各組之間進行階段性匯報的同時,會提出一些比較實際的問題,老師可以引導學生逐步尋求問題的解決方案。
2.5 教學評價改革 由于軟件工程是一種實踐性課程。檢驗其教學效果的唯一手段不是學生的卷面成績,而是學生能否在真正的軟件開發活動中貫徹軟件工程概念,正確使用軟件工程方法提高軟件質量。所以在教學評價部分我們把學生的成績分成三個部分,即卷面成績、課程設計小組成績和課程設計個人成績。其中卷面成績重點考核學生對重要的軟件工程概念和軟件開發方法的掌握程度。試卷中題目是由一部分概念選擇題和實例分析題組成,這樣既可以避免學生死記硬背的通過考試,又可以檢驗課堂教學教學的效果。
在課程設計結束時,每個小組提交軟件產品和各階段規范的軟件開發文檔。每個學生提交自己在整個項目開發過程中所完成任務的總結。課程設計答辯中,老師針對每個學生實際負責的工作進行提問,老師根據項目的完成情況和每個學生的工作情況給出課程設計的小組成績和個人成績。之所以把課程設計成績細分為兩部分,是因為這樣評分不但可以增加團隊的凝聚力,還可以防止濫竽充數現象發生。
3 小結
高職軟件工程教學中應該根據當前社企業對人才的需求,靈活的調整教學內容,適當采用案例教學模式,加強課程設計的實際應用效果,在教學過程中注重培養團隊精神和協作能力,增強高職學生的就業競爭力。
參考文獻:
[1]湯庸.結構化與面向對象軟件方法[M].北京:科學出版社.1998.
[2]楊業娟.張帆.淺析案例教學法在高職.軟件工程.課程中的應用[J].科教文匯.2008(01)中旬刊:32.
[3]趙輝,李萬龍,鄭山紅.軟件工程課程教學改革的研究[J].長春工業大學學報:高教研究版.2006.27(4):60.