時間:2023-03-02 15:02:37
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了七篇軟件工程專業論文范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
我國的計算機軟件專業教育在國際化、標準化方面已經大大落后于先進的國家。首先是英語教育水平不高。在軟件產業,英語毫無疑問是第一語言。愛爾蘭、印度之所以成為軟件出口大國,與這些國家擁有大批英語軟件人才密切相關。我國軟件專業的碩士乃至博士英語聽、說、寫的能力障礙成為國際化的一道坎。練好英語也成為我國軟件人才流向外企或國外的主要目標之一。其次,我國許多高校教材平均每5 年才更新一次, 大大落后于國際軟件業的發展。這也是大學生畢業后難以勝任軟件企業要求的主要原因。
與之相比,印度APTECH 的教材每年更新一次。
二、國內外市場對軟件人才的需求
我國和印度同為發展中國家, 但印度已成為除美國外的第二大軟件出口國。盡管我國的軟件市場一直保持快速增長,但軟件總體發展水平仍處于初級階段, 這使我國的軟件產業將有進一步快速發展的空間,軟件工程也會得到更多的重視和扶持。
國內市場每年對軟件人才的需求高達80 萬,而各高校計算機專業畢業生中的軟件工程人才還很缺乏, 高素質的軟件工程人才尤為短缺。畢業生主要在軟件公司、企事業單位、高校、研究所、國防等部門從事軟件設計、開發、應用與研究工作;另外也可攻讀本學科或相關高新技術學科、交叉學科的碩士學位。推薦閱讀:
因此,面對如此高的市場需求,我們開放教育要彌補普通高校的培養人才空缺, 為在職在崗的相關人才提供就業發展的學習機會。推薦閱讀:談機電一體化裝置及控制系統的設計論文
三、依靠電大三網優勢,發揮成人自身特點,創建自有教學模式筆者認為在教學模式上應該從以下幾個方面入手:
1、教師隊伍的知識更新專業教師隊伍知識更新是至關重要的, 教師是學生學習的引導者,是教學環節的核心力量,因此要想把一個專業建設完善,首先要從教師的知識結構,知識層次入手。 軟件工程的特點決定了其基本理論和方法一般需要較長的從業經歷或經驗, 所以中青年教師常常是這方面的專家; 而程序設計技術和軟件開發工具往往是年輕人的專利,相關課程的教學最好由年輕教師擔任。在每個年齡段還應該分出教師的層次。
2、教學方案的更新我們應該按照學科特點和學生自身特點,制定實踐性強,可操作性強的教學大綱和教學方案。避免流于形式的純理論教學,教學安排上應該圍繞數據庫知識、軟件工程知識和程序設計知識設計。
近年來,軟件行業進入第二春,供需兩旺。據調查,以北京為例,軟件工程師每年需求50000人左右。據IT英才網數據顯示:北京IT職場每月需求達3380個。 [1]但是,軟件行業市場的供需出現了錯位,一方面,IT企業對軟件工程專業的人才需求旺盛,另一方面,軟件工程專業的畢業生就業質量卻不高。究其原因,是我們培養的人才不能滿足企業對軟件工程人才要求。
軟件工程專業是國家教育部在2002年新增的專業。該專業以計算機技術為主的專業,實踐性很強,專業的實踐教學體系是培養學生實踐能力、計算機工程能力、創新能力的重要途徑。我們應該充分了解市場和企業的需求,制訂和實施切實可行的實踐教學體系。[2]
曲靖師范學院軟件工程專業從2008年開辦至今,已經培養5屆學生,一直以來,我們不斷豐富和完善該專業的實踐教學體系,形成了相對完備、效果好的實踐教學體系。
2 實驗室建設是硬件基礎
實驗室是開展實踐教學的硬件保障,實驗室建設的好壞,直接關乎實踐教學體系執行的成敗。一直以來,我們非常重視軟件工程專業的實驗室建設。實驗建設能充分滿足軟件工程專業實踐教學體系的硬件要求。實驗設備采購的指導思想是實驗設備要先進、實用,充分滿足學生的學習和教師的實踐教學需要。
該專業已經建成硬件實驗室有2個,分別是“計算機組成原理實驗室”、“計算機組裝與維護實驗室”;通信與網絡實驗室有2個,分別是“計算機通信實驗室”、“計算機網絡實驗室”;軟件類的實驗室有3個,分別是“軟件開發與測試實驗室”、“數據庫實驗室”、“信息技術創新實驗室”。同時,為適應當今云計算的研究需要,我們投資200多萬建立了云計算平臺。
以上實驗室的更新及新建,能充分滿足師生完成實踐教學的需要。
3 軟件工程專業技能訓練是實踐教學體系的抓手
在學生大學期間,為了在不同學期適時提高學生的綜合實踐能力,我們結合“軟件工程專業人才培養方案”的要求,開展了貫穿大學4年的專業技能訓練。我們把專業技能訓練當作實踐教學體系的抓手,專業技能訓練根據訓練大綱,著力提升學生應具備的專業素養和能力。
我院的專業技能訓練主要包括兩個級別,一級是課程設計訓練,本訓練以課程為依托,制定課程級別的訓練大綱;二級是綜合設計訓練,主要訓練學生的軟件論文項目的開發能力,要求學生能靈活應用所掌握的知識和技能,完成一個綜合性、設計性的軟件項目。下面分別對這兩級訓練作詳細介紹。
3.1 課程設計訓練
“課程設計”是一個多義詞詞條。它可以指“為掌握某一課程內容所進行的設計”[3]。課程設計是課程實驗的高級環節,課程實驗是提升學生立體實踐能力的根本,課程實驗分為驗證性實驗、綜合性實驗和課程設計實驗,我們在傳統驗證性實驗的基礎上開展課程設計實驗,提升學生的課程綜合實踐能力。
以《Java程序設計》課程設計為例,課程設計的目的:利用Java語言的語法特性,結合數據結構算法、網絡知識、文件處理和數據庫等知識完成綜合題目的設計和代碼實現,并培養鍛煉分析程序、撰寫報告等能力。
軟件工程專業的已經開出課程設計的課程有4門,分別是:OFFICE辦公軟件、計算機組裝與維護、C語言程序設計、JAVA程序設計。我們針對這些課程,在編寫實驗大綱時,要求包含課程設計,設計方案要經過專業系的審核和教授委員的審定。最后,以審定通過的課程設計為依托,為后續綜合實踐能力的提升打下堅實的基礎。
3.2 綜合設計訓練
綜合設計訓練的目的是鍛煉學生綜合所學知識,設計和開發一個小項目的能力。這些項目有“JAVA程序設計”、“商業數據庫開發”、“J2EE企業應用”、“JAVA Web開發”等,這些小項目的訓練要基于幾門課的知識和技能,如“JAVA Web開發”就需要學生綜合數據庫、軟件工程、JAVA程序設計語言等知識與技能。
綜合設計訓練要與畢業設計區別開來,此訓練的主要目的是讓學生體驗和掌握項目開發流程,同時鍛煉綜合應用所學課程來完成一個具體的小項目。
3.3 軟件工程專業技能訓練安排
]
為鼓勵學生多渠道獲得技能分,我們規定,學生參加通過全國軟件資格(水平)考試(中級),可以獲得2學分,參加通過軟件資格(水平)考試(高級),可以獲得3學分。
4 畢業設計是實踐教學體系總結性的實踐環節
畢業設計是教學過程的最后階段采用的一種總結性的實踐教學環節。通過畢業設計,學生可以綜合應用所學的各種理論知識和技能,進行全面、系統、嚴格的計算機技術及軟件工程能力的練習。[4]畢業論文(設計)是實踐教學體系的技能整合,我院對畢業論文(設計)作重大改革,著力打造學生綜合實踐能力。
參加畢業論文(設計)的學生分兩部分,一部分在公司實習,同時要在公司完成畢業論文(設計)工作,余下的學生在曲靖師院完成畢業論文工作,為提高畢業論文(設計)的質量,經向教務處請示,允許我院結合專業實踐性強的實際,改革本專業畢業論文(設計)工作。改革思路包括三點,一是我院學生的畢業論文(設計)以畢業設計為主,弱化對學生文本的要求,強化對實踐動作能力的提升和檢查,二是做好規范管理工作,制定相關文件,如:“信息工程學院畢業論文(設計)工作規定”、 “信息工程學院畢業設計開發文檔的撰寫與打印規范” 、“信息工程學院畢業設計開發文檔”等。
5 校企合作助力實踐教學體系
為提升學生的實習效果和就業質量。我們自2012年開始,與四川華迪信息技術有限公司開展畢業實習的合作,該公司是一家集軟件外包、信息服務、學生專業技能培訓為一體的公司,在以上業務深耕12年,在全國小有名氣。我們的學生參加校企合作實習有兩種類型,一是為期三個月的專業實習,二是為期四個月的就業培訓。三個月的專業實習分為Java開發方向和計算機網絡方向,Java開發實訓的重點是提升學生的軟件開發實踐能力和水平,計算機網絡方向的實訓重點是提升學生的網絡規劃、設計、實施、部署的能力。
從2013年開始,軟件工程專業的學生幾乎都參加校了企業合作的實習,取得了良好效果,學生的專業實踐能力提升了,就業質量明顯提高,很多學生就在四川成都就業、創業。
6 結語
本文結合長期的思考和實踐,不同的實踐環節有機整合,大大提高了學生的職業能力和素質。軟件工程專業的實踐教學體系的構建和實踐是一個系統的、長期的過程,還需要我們不斷地探索,進一步提高人才培養質量。
參考文獻:
一、引言
軟件工程是一門交叉性的工程學科,它將計算機科學、數學、工程學和管理學等基本原理應用于軟件的開發與維護中,研究重點是大型軟件系統的分析與評價、規格說明、設計和演化,同時也涉及管理、質量、創新、標準、個人技能、團隊協作和專業實踐等方面的內容。然而,軟件工程開展近30年后,人們才對軟件工程核心的知識體系達成共識。在國際上,ieee-cs和acm聯合組建的軟件工程協調委員會(swecc)了軟件工程知識體系和推薦實踐swebok2004[1],為軟件工程職業實踐建立了合適的準則和規范集,以作為產業決策、職業認證、課程教育的依據?;趕webok,swecc進一步定義了其中可以納入教育程序的知識體系,包括本科生軟件工程教育計劃se2004中的seek、研究生軟件工程教育計劃gswe2009[2]中的cbok、軟件工程職業道德規范和職業實踐。
我國2002年啟動了軟件工程碩士培養程序。借助于計算機科學技術、數學、管理科學與工程諸多學科,軟件工程已由計算機科學與技術專業下的一個學科方向,發展為一個獨立的新興交叉一級學科。但由于我國傳統的高等教育注重科學研究能力培養,工程化人才教育開展時間較短,培養體系尚在不斷改革完善,因此在很多院校中軟件工程學科還沒有脫離計算機科學與技術的范圍,所培養的軟件工程人才與工業界的要求尚有一定距離,整個碩士培養過程中,課程體系的設置是影響研究生業務能力和素質的重要因素,因此以企業需求為導向,以軟件工程知識體系為核心,以訓練實踐能力的為目標的層次化軟件工程課程體系改革對促進高等教育面向社會需求培養人才,全面提高工程教育人才培養質量具有十分重要的示范和引導作用。特別是在碩士生的培養上,對課程學習與學位論文的要本文由收集整理求一般是同等并重,合理的課程體系是高等院校保證培養目標和形成辦學特色的重要手段。軟件工程碩士的定位和其他學生不同,這為我們的課程設置、建設與管理提出了新的挑戰。
通過對國內眾多高校的軟件工程專業培養方案和課程設置進行分析,將其分為以下四種主要類型[3]:
(1)完全獨立型:將軟件工程徹底從計算機科學與技術專業分離出來,作為獨立的一級學科,課程設置上綜合計算機、數學、管理科學與工程等學科,偏重于數學基礎,但實踐能力較缺乏。
(2)以計算機科學與技術主體課程為基礎,以軟件工程理論課程為核心,加強實踐教學型。以計算機科學與技術的課程體系為主體,教學中突出軟件工程的知識體系,加強實踐教學,根據企業需求或者人才市場需要,按照工程思想進行實踐教學,同時校企結合,試圖在實踐中摸索和學習軟件工程的工程理念,但在進行實踐之前的軟件工程理論基礎不牢固。
(3)實踐加強型的計算機科學與技術課程體系,在這個模式下,課程體系基本和計算機科學與技術相同,只是加強了實踐環節,學生在學習和就業方面沒有脫離計算機科學與技術專業,工作中所學的工程理念需要自己去學習。
(4)其他類型,鼓勵學生參加各種軟件大賽,推薦學生參加各種證書的考試,獲取各種軟件企業證書。這種類型中,學生所學內容較多,但是正是為了考試而學習,基礎不扎實,同時真正的工程實踐能力不夠。
因此我們認為,目前的軟件工程還沒有脫離計算機科學與技術的范圍,無論是從傳統計算機科學與技術專業與軟件工程專業的區別,還是本科生與研究生的區別來看,針對軟件工程碩士的課程體系建設和教學改革研究都是十分有必要的,同時也是迫切的。
二、生源基礎分析
gswe2009對給出了軟件工程碩士的三種主要生源:
(1)在職程序員,由于沒有受到過正規研究生教育,有些企業的在職人員對理論知識匱乏,因此具有系統學習的愿望;
(2)其他領域的專業人員,由于軟件工程職業的興起,以及目前人才市場對該專業的需求,使得其他領域的專業人員想要加入軟件工程的隊伍;
(3)沒有工作經驗的本科畢業生,在當前就業壓力下,許多本科畢業生畢業后選擇繼續深造。
在我國,軟件工程碩士研究生多是沒有工作經驗的本科畢業生,正式由于這些大學本科畢業生的基礎專業各不相同,使得軟件工程碩士研究生的課程設置更加復雜和重要。
三、知識體系分析
2004年8月,有全世界五百多位專家教授推出的軟件工程知識體(swebok)和軟件工程教育知識體(seek)兩個文件的最終版本,包含了軟件工程核心類的知識領域、基礎類或前導類的知識領域以及其他相關領域的知識。2009年, gswe2009中的教育知識體系cbok主要來源于swebok,同時也參考了seek2004、incose2003和haskins2007。與swebok2010同步,gswe2009包含了一個新的知識領域ka(職業實踐)和四個關于教育的ka(工程經濟學基礎、計算基礎、數學基礎和工程基礎),同時兩個在swebok中沒有出現的ka(系統工程基礎和職業操守指導)被加入了cbok。此外,cbok還調整了一些知識單元和知識點[4]。gswe2009由準備知識、核心知識、大學特有知識、選擇性知識和頂點經驗所構成。其中的大學特有知識有學生的入學基礎決定,在整個碩士研究生的培養過程中,主要為學生設置學習專業核心知識之前的準備知識以及在學生職業實踐課程中所需要的選擇性知識,而頂點經驗需要學生在學習專業核心知識和進行職業實踐的過程中積累,因此,課程設置中準備知識和專業核心知識的設置以及學習方式尤為重要。
四、課程設置分析
通過對軟件工程知識體系進行分析,軟件工程碩士研究生應具備的主要能力有:基礎開發技能、團隊合作技能、發現并解決問題技能、系統建模技能、文檔撰寫技能。我們將碩士研究生的培養階段分為:理論知識學習、職業實踐、論文撰寫三個階段。在前兩個階段中,我們給出了三單元課程、兩步實踐的方式,三單元課程分別是:必選課單元、必修課單元、自選課單元,兩步實踐有:模擬職業實踐、實際職業實踐。傳統的理論學習和職業實踐通常是完全分開的兩個階段,但在軟件工程這個特殊的學科,我們將理論學習和職業實踐結合起來,在進入理論學習第二單元的同時進入模擬職業實踐階段。理論學習三個單元具體設置如下:
(1)必選課:選擇工程經濟學基礎(例如知識產權與法律、企業管理與文化、領導學、信息經濟學 、市場營銷學等)、計算基礎(例如算法設計與分析、高級軟件工程、高級數據庫、高級操作系統、高級網絡技術)、數學基礎(離散數學 、組合數學、 工程數學、數值分析)等準備知識中的專業主干課程按學科分類作為新生入學的必選課,取代以往將某些固定課程作為所有學生的基礎課的方式,方便根據學生大學所學專業來選擇自己所欠缺的準備知識進行學習,是知識的儲備階段,在本單元根據學生所選課程的成績作為給定學分的依據。
(2)必修課:將軟件工程基礎中的核心知識(例如軟件體系結構、軟件項目管理、軟件質量保證與軟件測試技術、軟件系統建模原理和方法、基于cmm 的軟件過程改進、軟件開發方法、軟件需求工程)作為所有學生的必修課,培養學生能夠系統全面地了解軟件工程的概念,旨在學生具有扎實的軟件工程及相關專業基礎理論,熟練掌握軟件工程知識和技能,并且具備作為軟件工程師從事工程實踐所需的專業能力。在學知識的同時,適當加入模擬職業實踐的訓練,根據學生的學習方向,將學生進行分組,進行模擬題目的訓練,題目可以是各類大賽的題目、教師的科研課題以及學生自己選題,這是學生職業實踐的第一步,培養學生基礎開發技能、團隊合作技能、系統建模以及獨立創新技能,之所以稱之為模擬職業實踐,是因為這一步的實踐題目并不是真正的軟件工程課題,而是采用軟件工程思想的實際課題,為下一步學生進入企業進行第二步的實際職業實踐奠定基礎,在本單元根據學生的課堂表現以及最后考核給出一部分成績,另一部分成績給出的依據是學生實踐課題的完成情況以及在小組中的貢獻程度,培養學生動手實踐的同時,也提高了學生認識自我、團結合作的能力。
(3)自選課:學生根據自己對軟件工程的理解以及通過對上一個單元所做題目的分析,選擇自己所需要補充的基礎專業知識,自行選擇和學習,培養學生發現并解決問題以及自覺學習的能力。在這一單元中,導師根據學生所選專業知識的準確性以及學習之后對該軟件工程專業的認識給出學生的成績。
傳統的課程設置一般都是先學習再實踐,或者是邊學習邊實踐的過程,前者學生在學習理論的同時沒有實踐練習,導致學生理論與實踐結合得不好,后者在學習的過程中進行實踐,鍛煉了動手能力,但是學生往往不知所以然,只是按照老師的講解去實踐,對理論的指導作用理解不夠,而我們通過上面學習-實踐-學習的過程,學生不但對軟件工程相關知識有所掌握,也具備了一定的實踐能力,同時也培養了學生具有不斷補充知識、總結自己、提高自己的意識和能力,在實踐中體會到理論知識的作用,從而能夠主動學習。在這個過程中,學生在學習軟件工程核心知識的同時進入了職業實踐的第一步模擬職業實踐,將理論和實踐很好地融合在一起,使理論的學習過程不再枯燥。
在職業實踐的第二步實際職業實踐中,學生自己從課堂走出去,到實習基地、用人單位或者是校企合作的相關公司企業進行真正的軟件工程實踐,學習良好的職業道德,正規的軟件工程管理方式,同時在實踐中學習和總結自己的研究生學習過程,進入第三階段論文撰寫,這就避免了以往碩士研究生寫論文閉門造車的現象,為論文提供了更好的實踐依據,提高了碩士論文的質量,這一步通過從實踐中回到學習上來培養學生的總結、概括、撰寫文檔的能力。
數字媒體方向課程體系的建設以創新性復合型人才培養為基本指導思想,重視實踐課程的開設,使學生所學習掌握的方法具有充分的實效性,真正做到學有所用,以適應未來的工作崗位,成為本行業和企業所歡迎的有用人才。課程體系分為軟件工程專業核心課程模塊、數字媒體方向核心課程模塊、專業實訓、畢業實習和畢業設計(論文)等模塊。
1.1核心課程
軟件工程專業數字媒體技術方以軟件工程專業為主線構成專業基礎和專業主干課程。其中,計算機與軟件基礎課程有:計算機導論、程序設計入門、面向對象程序設計、數據結構與算法、Java程序設計、計算機組成原理、數據庫原理、計算機網絡、操作系統、編譯原理、信息安全技術、計算機體系結構以及J2EE與中間件技術;軟件工程專業課程有:軟件工程導論、軟件測試技術、需求分析與UML設計、軟件項目管理與過程控制;數字媒體技術專業課程有:數字媒體技術導論、計算機圖形學、數字圖像處理、網絡流媒體技術、用戶界面設計、視頻音頻制作與處理、數字影視特技應用、高級游戲特性與游戲引擎、人機交互技術、虛擬現實技術與應用、高級腳本與插件技術等。對于實踐性較強的課程開始單獨的實驗課程和配套的課程設計。
1.2特色課程
計算機網絡游戲由計算機技術、藝術設計學和計算機動畫以及計算機圖形圖像技術高度交叉結合,目的是培養具有扎實的游戲編程功底和良好的邏輯思維習慣,具備較強的審美能力和一定的藝術素養,熟悉游戲產品開發流程,具有一定的策劃能力,能在游戲公司、門戶網站、手機運營企業、動畫公司等單位從事游戲設計、游戲開發、游戲制作、游戲策劃、游戲運營等方面工作的富于競爭力與創新精神的高級復合型人才。計算機游戲程序設計。課程目標:本課程主要學習普及游戲開發理念,培養游戲開發氛圍,挑選有潛力的學生組成開發團隊;傳授游戲開發中的程序設計要素,特別是游戲引擎開發的基本知識。通過本課程的學習,學生能夠掌握游戲開發的基本理念,熟悉游戲開發的基本技巧和流程,并具備從事游戲程序設計工作的基本技能。虛擬現實與數字娛樂。課程目標:本課程主要介紹虛擬現實的基本概念及其系統組成、相關的軟件技術及虛擬現實的應用,并介紹了當前數字娛樂的現狀,發展和一些關鍵技術。內容包括:虛擬現實的定義、特性和組成,虛擬世界的創建和管理,虛擬現實中的視覺計算,虛擬現實中的交互技術,虛擬現實中的聲覺計算,增強現實,分布式虛擬現實,虛擬現實應用,與虛擬現實相關的數字娛樂技術。
2實踐教學體系
培養符合時代需要的創新性人才,就要強化實驗教學的開放性和多層次化?;趧撔滦栽瓌t和以生為本原則,結合培養目標和自身教學特點,數字媒體技術方向實踐教學體系分為課程實驗,專業實訓、畢業實習和畢業設計三個方面,各實踐環節之問相互協調、相互銜接、循序漸進。
2.1課程實驗
依照實踐能力培養循序漸進的原則,根據實現數字媒體技術專業基本能力培養的系列課程,并按照系列課程的復雜度和規模設計實踐環節,開展了多層次課程實驗教學,根據學生的需要和實踐能力培養的漸進規則,將實驗課安排大學四年的各個環節。多層次實驗教學是指在實驗大綱與目標的規范基礎上,將實驗項目設計成基礎型、綜合設計型、研究創新型不同層次的實驗。同一學生從基礎規范一綜合設計一研究創新這樣難度遞增的實驗項目中逐漸進行訓練,實現系統培養學生綜合實踐能力。課程實驗主要包括:手繪訓練、視頻特技與非線性編輯、多媒體網頁設計、移動娛樂軟件開發、網絡娛樂軟件開發、界面設計課程設計、虛擬現實開發課程設計等。
2.2專業實訓
專業實訓作為知識、能力、綜合素質教育的結合點,成為數字媒體技術專業實踐教學的重點之一。專業實訓是對課堂教學具有延伸作用,是學生培訓職業能力、熟悉職業環境、了解實際知識的重要渠道。通過專業實訓,學生不僅可以把所學轉化為所用,還能使學生在學習操作過程中通過不斷調整自己的知識結構來慢慢適應相應職業崗位,鍛煉職業的能力,為實習以及今后走向社會積累經驗、打下基礎。我校軟件工程專業是校級專業綜合改革試點專業,以爭建微軟IT學院、HP軟件學院為契機,與知名IT企業開展深度合作,聯合培養具有國際視野的軟件開發、軟件測試和服務外包人才。與中軟國際、Tarena(達內)科技等十多家IT企業聯合建立了實習實訓基地、就業基地。
2.3畢業實習和畢業設計
畢業實習是學生將前期學習到的知識運用到生產實踐中,真正了解、感受未來的工作,鍛煉自己各方面的綜合能力。真正實現與行業需求的專業實踐能力對接。能勝任相應崗位的工作,從而積累工作經驗,為就業做準備。為了增強學生和指導老師對畢業設計(論文)及畢業實習的重視,提高畢業設計(論文)的質量和提高學生在畢業設計(論文)及畢業實習實踐環節獲得的實踐能力,也為緩解畢業設計時間(論文)不足,筆者將畢業實習與畢業設計(論文)有機結合,實行“畢業實習+畢業設計”相結合的模式,學生畢業設計的內容來自于畢業實習,并且畢業設計的內容要將畢業實習的內容進行一定的升華,除體現學生四年來所學知識綜合之外,還要體現出學生的創新能力與科研能力,達到培養創新型、復合型人才的標準。
3結束語
關鍵詞:工業化教育;軟件工程教育;軟件工程專業課程體系;逐步工業化教育模式
0、引言
為滿足21世紀國家工業化發展需求,教育部啟動了“卓越工程師培養計劃”,旨在鼓勵各大高校推進教育體制改革。針對國家新的發展戰略,結合“國際化,工業化,高質量,高速度”辦學理念,哈爾濱工業大學國家示范性軟件學院(HIT-NPSS)提出了一套軟件工程專業逐步工業化的教學改革模式。
在過去的10年中,HIT-NPSS對現有教學模式進行深入分析,結合IT企業實際需求和反饋,借鑒歐美國家的教育制度,逐步建立并完善了一套面向工業化的軟件工程專業本科生培養模式。這種新的培養模式成功縮小了畢業生能力與企業期望之間的差距,成為哈爾濱工業大學教育體制改革的成功案例之一。
1、工業化課程體系模型
HIT-NPSS本科生課程體系的設置不僅注重學生課堂知識的獲取,還以培養學生工業化技能(包括動手能力、交流和表達能力,以及自學能力等)為基本目標。對于軟件工程專業的本科生,掌握專業基礎知識固然重要,但在當今的工業化環境下,能否在實踐中靈活運用這些知識才是衡量學生素質的首要標準。為此,HIT-NPSS本著為學生成長服務的宗旨,基于IT企業人才需求,充分吸納優秀的IT企業文化,立足學院的國際化辦學環境,提出了一套以學生為主體,教學與工業實踐緊密結合的面向工業化的本科生課程體系模型,如圖1所示。
該課程體系模型的核心包括3大知識領域:計算機技術、軟件工程以及IT策略與管理;4大應用領域:網絡通信與信息安全、服務科學與企業信息化、多媒體與信息處理以及嵌入式系統與軟件。
2、逐步工業化的教學方法
HIT-NPSS的本科課程共分為4個學年、8個學期。學生前3個學年在校內學習理論課程和實踐課程,第4學年到IT公司進行工業實習,不同學年的課程具有不同的針對性。
2.1 理論課程設置
第1學年以基礎課程為主,包括基礎理論類課程、專業基礎知識類課程以及基本編程技術類課程。為了強化學生的動手能力,我們還增設了C++程序設計以及程序設計實踐2門課程。特別是,HIT-NPSS本科生第1學年還開設了IT職業道德、交流技巧以及IT企業管理3門管理類課程,重點培養學生的團結協作能力等職業素養?;谝陨险n程設置,學生在完成第1學年的學習任務后,能夠扎實掌握計算機基礎知識,養成良好的編程習慣,提高交流和表達能力。
第2學年以計算機軟件系統類課程為重點。通過數據結構與算法、操作系統、數據庫系統以及計算機網絡等課程幫助學生打下良好的計算機軟件系統理論基礎;通過軟件工程課程幫助學生加深對軟件開發生命周期的理解;通過面向對象技術與UML、Java編程技術以及軟件開發實踐等課程提高學生的軟件開發能力和實踐技能。此外,為了增強學生對現實IT工業領域的了解,該學年還開設市場營銷學、合同法以及財務管理3門管理類課程,這也是HIT-NPSS課程體系的特別之處。
第3學年是學生在校內學習的最后一年,完成第3學年的課程學習后,所有學生將到IT企業進行為期一年的工業實習。第3學年的課程主要為了培養學生解決問題的能力和計算機技術應用能力。開設的課程包括編譯原理、多核程序設計、面向服務的計算技術、用戶界面設計、算法設計與分析以及軟件測試與質量保證等。由于軟件工程領域覆蓋面較廣,按照個性化的教育理念,HIT-NPSS軟件工程本科專業下設網絡通信與信息安全、服務科學與企業信息化、多媒體與信息處理以及嵌入式系統與軟件4個專業方向,各方向按照培養學生相關專業技術和實踐能力的目標分別設置不同的專業課程。在此基礎上,本學年還開設了軟件開發過程管理、項目管理、商務談判及知識產權法4門課程,以培養學生的專業素養,為第4年的工業實習打下良好的基礎。
2.2 逐步工業化實踐環節
為逐步實現工業化教育目標,HIT-NPSS在每學年理論課程的基礎上,分別設置了以下實踐內容:
(1)大學生創新項目。大學生創新項目以“興趣驅動、自主實驗、重在過程”為原則,在第l學期課程結束后,要求學生以項目組形式自主完成軟件研發課題。對于課題的選擇,學院并沒有統一規定,學生可以按照各自興趣選題并分組。為了鼓勵和支持學生的創新研究,學院將為各組安排一名指導教師,對軟件開發的全過程進行監督和指導。學生利用課余時間完成創新項目,在第1學年結束前學院將對各組的創新項目進行評審,對前10名予以獎勵。經過幾年的實踐,大學生創新項目已經成為HIT-NPSS一大文化特色。
(2)短期企業實訓。企業實訓是HIT-NPSS課程體系的一個重要組成部分。在第2學年的第2學期,學生將被分配到指定的企業基地進行為期4周的學習和訓練。整個實訓過程以實際項目開發為主導,中間穿插工具類、職業規劃類等培訓課程,學生在IT企業環境中參與企業項目開發,體驗從需求分析、系統設計、編碼實現、測試及交付使用的軟件開發全過程。短期企業實訓為學生提供了接觸企業實際項目、發現自身興趣和不足的良好機會。
(3)軟件工程實踐。軟件工程實踐在第3學年的第2學期進行,是逐步工業化教育的第3步,要求學生以分組的形式在2周時間內完成一個軟件系統的開發。與短期企業實訓相比,軟件工程實踐過程中學生要獨立完成軟件開發生命周期的各個階段。通過軟件工程實踐,學生的編程能力、解決問題能力、一般平臺應用能力、流行工具軟件的使用能力以及項目管理能力將得到全面提升,這也為第4學年的工業實踐打下良好基礎。
2.3 企業實習
軟件工程專業本科生第4學年將在IT企業實習中,完成具有一定技術難度和較大工作量的技術方案設計和軟件開發等工作,并在此基礎上完成(撰寫)本科畢業論文。通過工業實習,學生的軟件開發能力、工程實踐能力以及自學能力都將得到大幅度提高,完成學生到企業員工的軟件產業人才的逐步轉變。
(1)雙導師機制。HIT-NPSS要求所有的學生必須在IT企業進行至少一年的工業實習。為了保證課堂學習向工業實踐的平穩過渡,學院不僅要幫助學生選擇合適的實習基地,還要幫助學生確定指導教師。為此,HIT-NPSS提出了雙導師機制,即學生在校內和校外(實習基地)各選擇一名指導教師,校外導師主要負責指導學生軟件項目開發,校內導師主要負責指導學生畢業論文撰寫。HIT-NPSS要求軟件工程專業本科生的畢業論文要基于其工業實習期間直接參與的軟件工程項目,雙導師機制不僅能夠幫助學生填補不同領域的知識空白,還能夠有效建立起大學和IT企業的溝通橋梁,保證學生工業實踐和畢業論文的順利進行。
(2)實習監管方法。在雙導師機制的基礎上,HIT-NPSS通過開題檢查、中期檢查以及結題驗收對學生的整個實習過程進行監管。在工業實習的前3個月內,學生必須在校內導師和校外導師的共同指導下完成論文開題報告,即確定論文題目、主要內容以及關鍵技術等。在工業實習3個月后,學院將到實習基地對學生的選題情況進行檢查,爭取盡早發現存在的問題并對學生進行有效指導。中期檢查將在選題后的3個月內進行,檢查過程與開題檢查相似,目的是檢查學生的工作進展是否符合開題報告中的日程安排,幫助學生解決實習中的問題與困難。此外,中期檢查也是學院與實習企業交流學生實習表現、調整未來實習派遣計劃的重要手段。結題驗收是學生工業實習結束前的最后一次檢查,一般在實習基地進行,在學生展示自己的工作內容后,由企業顧問和校方專家共同評估其實習情況。
截至2013年,HIT-NPSS已有2937名學生在200家IT企業完成了工業實習。
2.4 校企合作模式
為充分發揮企業在工業化人才培養過程中的作用,HIT-NPSS采用多種模式加強校企合作。主要合作模式包括以下幾種:
(1)校企合作高峰會。校企合作高峰會以不同的主題每年舉辦一次,是高校和企業高層以及產業高級人員共商共計的重要平臺,有效促進了校企之間的溝通與合作,對全面實施卓越工程師培養計劃起到了巨大推動作用。截至2013年,HIT-NPSS已成功舉辦了多屆校企合作高峰會,累計邀請過220余家企業參會,并與中興通訊股份有限公司、金山軟件有限公司、浪潮集團等50多家知名企業保持著長期合作關系。
(2)校內工業實踐基地。在廣泛開展校外工業實習的同時,HIT-NPSS也與哈爾濱本地軟件公司合作,在校內建立工業實習環境,提高學生的軟件開發能力。學生可在校內工業實習基地進入企業的項目組,參與具體項目的開發。目前,哈工大首創科技股份有限公司、哈工大慧通新意信息技術有限公司、黑龍江省計算機網絡與軟件評測中心等公司已進駐校內實習基地。
(3)聯合實驗室。聯合實驗室是校企合作的另一種模式,主要用于教學和軟件開發實踐,由軟件學院負責提供場地和設備,由企業提供開發平臺和各種工具軟件,并由企業定期為軟件學院的師生開設專題講座,進行相關指導。目前,HIT-NPSS已與浪潮通用軟件公司、金山軟件股份公司和英特爾亞太研發有限公司共同建立了聯合實驗室。聯合實驗室的建立,為軟件學院建立科學的課程體系和工業化實踐教學管理方法,實現工業化軟件人才的培養創造了良好條件。
(4)學生俱樂部。學生俱樂部是由軟件學院和軟件公司共同支持的實踐類學生社團組織。學生俱樂部依托實際項目、模擬企業真實經營環境,有效培養學生的IT實踐經驗和創新能力,同時加強校企技術交流。目前HIT-NPSS已組建起亦飛、零度、騰訊等7個學生俱樂部。其中,亦飛俱樂部由阿里巴巴集團支持在2003年創建;零度俱樂部由金山軟件股份公司支持在2004年創建;騰訊俱樂部由騰訊科技有限公司支持于2005年創建。
(5)企業家論壇。HIT-NPSS于2003年發起了企業家論壇活動,主要形式是邀請國內外著名企業家到校進行講座或演講。論壇的宗旨是讓學生了解行業動態、把握領先技術、了解企業發展歷程,以實現活躍校園氣氛、開拓學生視野、樹立企業形象的最終目標,同時促進企業與哈工大軟件學院的相互了解與廣泛合作。到目前為止,HIT-NPSS已經邀請了30余名知名企業家作為演講嘉賓。
(6)青年校友論壇。青年校友論壇是HIT-NPSS品牌活動企業家論壇的進一步延伸。青年校友論壇的演講嘉賓主要是軟件學院的畢業生,在企業工作2年以上。青年校友論壇是在校學生與學長們交流的平臺,大家一同分享上學的心得、實習的體會、工作后的經歷。青年校友論壇的創辦宗旨是進一步落實學院的工業化教育模式,深化學院工業化辦學理念。到目前為止,已邀請過10余名畢業生重返母校作為論壇嘉賓,青年校友論壇成為HIT-NPSS工業化教育模式中不可或缺的一部分。
3、學生就業情況
在工業實習期間,很多學生便已決定畢業后加盟實習公司或合作企業。工業實習機制不僅為學生創造了良好的就業環境,同時實現了高校和企業的雙贏。一方面,高校能夠與一流工業實踐基地保持長期穩定的合作關系,以便為學生提供更好的實習機會;另一方面實習生可以成為實習公司的潛在員工,這不僅解決了企業的招聘難題,也大大縮短了企業新員工培訓時間。經過9年的實踐,哈工大軟件學院已與一批知名企業建立了良好的長期合作關系,成為我國高校工業化實踐的成功案例之一。
根據統計,外資企業、國內500強企業、科研院所以及IT企業是哈爾濱工業大學學生就業的主要去向,每年到這些單位就業的學生約占畢業學生的90%以上。外資企業主要包括IBM、微軟、AUTODESK、NEC、東芝、三星、摩根士丹利以及Oracle等企業;國內500強企業主要包括中國移動、中國聯通、航天科工集團、工商銀行、華為、聯想、神州數碼等國內知名企業;科研院所主要包括各大部委和全軍所屬各研究單位、中科院、中國航天機電集團公司、中國電子科技集團公司所屬的科研單位、全國各高校;國內知名IT企業主要包括百度、騰訊、金山、用友、盛大、阿里巴巴和搜狐等著名IT企業。超過50%的畢業生由其實習公司或合作企業錄用。
關鍵詞:講一 練二 考三 素質教育 創新人才
1“講一、練二、考三”的意義
知識經濟時代呼喚教育培養創新人才,業已取得了廣泛共識。基于這種共識,把素質教育放在首位,以素質教育為中心,更新教育觀念,進行教學改革,才能適應新世紀社會發展的需要。因此,樹立“以學生為主體、以教師為主導、以訓練為主線、以思維為核心、以能力為目標、以育人為目的”的現代教育觀,在教學內容、教學方法等方面強調改革、創新與發展,逐步從根本上改變“單純傳授知識”的傳統教學方式,大力提倡“講一、練二、考三”,使學生由依賴性學習轉向自主性學習,尊重學生的選擇與參與,從而能夠更有效地發揮學生的學習主動性,使其掌握知識、提高能力、內化素質,確保他們的全面發展。
2“講一、練二、考三”的適用范圍
根據知識的復雜性,斯皮羅等人將知識劃分為良構領域(well-structured domain)的知識和非良構領域(ill-structured domain)的知識。所謂良構領域的知識,是指有關某一主題的事實、概念、規則和原理,它們之間是以一定的層次結構組織在一起的。非良構領域的知識則是將良構領域的知識應用于具體問題情景時而產生的,即有關概念應用的知識。在所有領域中,只要將知識運用到具體情景中去,都有大量的非良構的特征。
從目前的教學現狀來看,屬于基本概念、定義和事實等的良構知識,比較適合于“教”,而屬于開放性的、發散性的、較高層次的認知學習或情感類學習等的非良構知識,則比較適合于“學”。
筆者認為,當今“講一、練二、考三”的實施,更適用于屬于開放性的、發散性的、較高層次的認知學習或情感類學習等的非良構課程的教學。一旦積累了豐富的經驗,在屬于基本概念、定義和事實等的良構課程中嘗試這一新型教學方法也應該是一個良好的開端。
3講什么、練什么、考什么
3.1講什么
根據“厚基礎、寬口徑、強能力、高素質”的人才培養模式,要正確處理好知識、能力和素質的關系,傳統教學內容和現代教學內容的關系,繼承與創新的關系,統一性和多樣性的關系等。按照不同的學科特點,可以分層次(如可分為基本素質層次、專業知識層次、特色技能知識層次)講授,從中體現教學內容的“精、深、新”。
精,就是強調對講課內容要精選。對教學內容做全面梳理,把其中的核心內容,以及現實性較強、有發展前途的內容保留,大膽刪除陳舊過時而又繁雜無用的內容,編寫或采用在內容和體系上有較大革新并經過試用效果較好的教材。
深,是指不能止步、滿足于描述的認知層面,而是強調在授課中透過具體的實例,挖掘其背后深刻的思想內涵,提升理論思維張力。使學生能從中得到啟示,提高對現實問題的觀察、思考和處理能力。
新,是指注重教學內容的動態發展,把現代科學、技術、人文社會科學發展的最新成果,及時準確地反映到課程和教學內容體系中來。要吸收前沿理論的最新進展和出現的新動向、新案例,保證教學內容的先進性,突出課程內容的時代特征,鼓勵學科交叉,防止理論與實踐的脫節。
3.2練什么
以訓練為主線是一種可以大力推行的教學模式,可以使學生由不重視、不感興趣、不投入的態度,轉變為有了興趣并且樂于全身心地投入其中,從而鼓勵學生獨立思考,激發學習的主動性,培養學生的科學精神和創新意識,讓學生不僅親身體驗從練中學到的本學科知識,更可貴的是學會如何學習。
訓練的內容一定要結合講授內容精心選擇練習題目,通過練習深化對知識的理解并逐步轉化為能力。這種訓練不是指單調枯燥的題海戰術,要注重質量,強化應用,給學生提供空間,提出方向,甚至倡導學生走出校門,進行社會調查,拓展學生的視野和知識面。
這里還要注重基本能力的訓練,撰寫小文章、讀書筆記和學術論文等都是一種綜合性的訓練,也是學生必備的一項基本能力。正是通過這種訓練,學生學會了讀書,能提出自己的觀點,并圍繞觀點組織材料,同時,文字表達能力也得到了提高。
3.3考什么
考試的內容,應當從對知識的繼承性、掌握程度等方面進行考核,但不應該成為主要的方面。這種知識考核明顯偏向于善于模仿、記憶的學生,而對全面發展或富有創造性思維的學生,則往往是不公正的排斥。所以,還應該考理論知識的應用和實踐動手能力、綜合運用知識的能力和知識的遷移能力、應用所學理論分析問題及解決問題的能力。
應當積極推行考、教分離,把重視知識考核改為重視能力考核,要有很強思考性與啟發性的試題,采取多種形式檢查學生的學習水平和能力。例如寫考察報告,做一項小實驗,解決一個生活中的問題等內容。這一切培養了學生的學科綜合素養和實踐能力,從而促進學生個性與能力的全面發展。
4如何講、如何練、如何考
4.1如何講
講授知識的目的不是終結知識,而是提供進一步學習知識的途徑。
教師要研究學生的學習規律,通過啟發、引導學生內在的學習需求,創造和諧、民主的教學環境。要用精練的語言講到精要處,點撥到要害處。鼓勵運用問題式、啟發式、討論式、研究式等生動活潑的教學方式。注意留給學生的是問號而不是句號。
4.2如何練
我們倡導講與練的有機結合,即講中有練、練中有講,或者把講授的內容轉化成練習的形式,或者是通過講授激發了練習的興趣,提高了練習的效率。
關于提高練習的效率,重要的莫過于提出有思考價值、能提綱挈領的問題。要有目的、有計劃地規范組織教學活動,通過課堂討論、協作學習,擴大學生自主學習的空間,讓學生學以致用。
讓學生獲得更多的知識是教學活動的主要目的,但學生如何才能獲得知識,一靠教師傳授,二靠學生自學,三靠向社會學習、在實踐中學習。而通過自學獲取的知識更為牢固。因此要立足于培養學生的學習能力,讓學生具有獨立獲取知識的能力。
4.3如何考
考試要建立科學的評價指標。學生學習的好壞應體現在五個方面:一是知識面的寬窄;二是通過自己的學習獲得了多少知識;三是學習的經歷,包括實踐的經歷;四是自學的能力;五是創造思維和創造能力,是否有自己的獨立見解。因此,在考試方法上,對不同學科、不同年級、不同的學生應有不同的方法。不能靠一張試卷、一次考試來決定學生學習成績的優劣,應把學生平時學習的情況按權重列入學習成績中去,把學生通過自學獲取的知識、有個人創見的知識列入學習成績之中??荚嚂r不能僅考記憶性、認知性的知識,還要考綜合性、分析性、理解性、創造性的知識。
具體實現起來,首先要設置選擇性作業,注重過程性評價。對學生學習的過程性評價,是一種對學生學習過程以及學習情感、態度、能力的發展變化的評價。如積極參與課堂活動,敢于質疑,解題思路具有創新性,積極做“選擇性作業”,能與同學協作學習、友好相處等點滴進步,均作為教師平時對學生過程性評價的依據。
然后要采取多元化的考試方式。每門課程根據其課程性質、教學內容、水平要求和教學對象不同,分別采取閉卷、開卷、筆試、口試、論文、讀書報告、實驗、設計、作品等考試形式(如語言類的課程可以采取筆試、口試相結合,工程類等操作性較強的課程可以采取理論、實際操作相結合),并采取百分制、等級制、合格評價制的綜合考試考評制度。
5“講一、練二、考三”的實證分析
5.1實證1
筆者為現代教育技術方向的碩士研究生開設了“教育技術學”課程,共18講,每講2學時??紤]到該門課程理論性較強、內容繁雜的特點,嘗試了新的教學方法。
(1)精講,即“講一”。純粹是教師講授的課時很少,僅為兩講,著重介紹教育技術學的學科發展、理論基礎、教學設計的含義、網絡教育、信息技術與課程整合的應用、技術實現的現狀及發展趨勢、當前教育技術面臨的問題等。
(2)教師提供學習資源。教師將整理好的學習資源以及相關網址提供給學生,并將教學內容分為五大主題:①學與教的過程;②教育技術學的學習理論;③教學設計;④信息技術與課程整合;⑤協作學習。其中將第三主題“教學設計”作為重點,又細化為學習者特征分析、教學目標分析與確定、學習環境與學習資源的設計、教學策略的選擇與運用、學習者評價、教師評價、學習內容評價、網絡教學支撐平臺與學習支持服務系統的評價八個子主題。
(3)學生進行分組討論,即“練二”。課前,以上主題兩兩為一小組,學生可以任選一個主題,選擇相同主題的學生構成一個學習小組,輪流擔任組長,分配任務,然后大家分頭行動,查找資料,各自準備要講的內容及PPT文稿。課上,學生自己講,講的過程中教師及其他學生隨時可以提問,講完后大家再討論。如在講學習理論時,講解的同學能全面闡述行為主義、認知主義、人本主義、建構主義的主要觀點、對教學的指導作用,并進行系統的綜合比較,討論時大家又著重圍繞對外漢語教學,探討每一種學習理論對教師的教以及學生的學有何指導作用。課后,每人將對所有人的講課情況以及參與討論的情況作一個評價,發給教師,一個月左右教師匯總一次,將其他同學對自己的評價綜合后再發給每一位同學,學期結束時,每一位同學也能縱向看到自己的進步。
五大主題專門講授的時間為12講。為了便于同學之間充分展開討論,第一二主題之后、第三主題中的設計過程與評價、第四五主題之后又專門設置了討論課,共4講,大家暢所欲言,提出問題,進行認真剖析,討論過程中出現了許多亮點,有幾個同學由此定出了自己的碩士論文題目,如“遠程對外漢語教學的學習者特征分析及應對策略”、“網絡對外漢語教師的評價研究”。
(4)綜合考試,即“考三”??荚嚥扇€人評價與學期論文各占50%的方法。學期論文題目是給出五個思考問題,由學生任選一個寫出論文:①有一位對外漢語教師,對教育技術用于課堂教學十分感興趣,但沒有這方面的基礎,苦于無從下手。你如何幫助他?給他什么具體的建議?②我校一名韓國留學生,因為身體原因無法正常在校內上課,提出回國在網上學漢語。在遠程漢語學習方面你能夠提供哪些方面的指導?③你有過網上學習英語或其他課程的經驗嗎?你認為怎樣做才能堅持下來,而且有很好的學習效果?④請你評價網上北語(/)。⑤ 請你評價自己在本門課中的綜合表現,包括學習觀、學習方法、資料準備、組織能力、協作能力、講解技巧、問題提出、學習結果等。
從學生交上來的論文可以看出,每一位學生都認為這種教學方式很新穎,而且很適合這門課程。每人選擇自己更感興趣的問題,結合所學知識,有的同學認為自己有了更多的空間和選擇,收獲也比較大;還有的同學認為在這門課上學到的內容恰好又可以用來指導我們的學習,使我們對教學活動有一個更系統、更深入的認識。而且大家一致認為由自己先查找資料,然后整理并講給他人聽,這樣的學習效果(可以吸收95%)遠比單純聽教師授課的效果(僅吸收20%)要好得多,自己的自學能力、組織能力、表達能力、協作能力都得到了提高。
5.2實證2
筆者為計算機科學與技術專業的高年級本科生開設了“軟件工程”課程,共18講,每講3學時。
在2001年12月15日ACM/IEEE公布的CC2001(Computing Curricula 2001)與中國計算機科學與技術課程體系CCC2002中,軟件工程被確定為14個知識領域之一。隨著軟件系統日趨大型化與復雜化,有研究表明,軟件工程在未來將成為與計算機科學并列的學科。過去傳統軟件工程教材中某一章節的內容,如今均已有專門書籍加以闡釋,且內容豐富并自成體系,如軟件需求分析、配置管理、人機界面等,不僅如此,許多軟件工程前沿課題諸如凈室軟件工程、再工程、形式化方法、CMM能力成熟度模型等,某種開發模式諸如面向對象的軟件工程、小組軟件工程、個體軟件工程、快速軟件開發、統一建模語言等等都非常迅速地以專門著述的形式出現。這一切均對該課程的教材體系、教學內容、教學方式及教學規律等提出了極大的挑戰,盡管CC2001以及CCC2002對此有其相關的約定。
在這種情況下,從教師角度講,若想以有限的教學學時完成全部的教學內容,并有效地提高學生的理論素養與實踐能力,難度之大可想而知。不是學科教師沒有這個能力,而是需要講授的內容太多、太豐富,以至于教師欲圖面面俱到,卻在很多方面都只是蜻蜓點水,難以協調和平衡內容的廣度與深度、學生理論素養與實踐能力之間的矛盾。從學生角度講,既然軟件工程作為研究軟件開發和軟件管理的一門工程科學,已經成為軟件行業中必不可少的專業知識,并且需要不斷汲取軟件行業實際應用的經驗與成果,那么,學習過程中就應該融入實踐,從過程中體驗和提升認識。然而,筆者在十余年的計算機教學中深刻感受到,許多計算機和信息專業的學生雖已具備了一定的軟件理論基礎,但由于缺乏實際的、完整的軟件項目開發經驗,從事軟件系統分析、設計和實施的能力十分薄弱乃至欠缺,無法滿足行業需要。有鑒于此,我們嘗試了新的教學方法。
(1)講思路,即“講一”。軟件工程的本質與目標是在成本、進度與質量之間尋求平衡點,即探索和追求如何用最少的人力、物力和財力在最短的時間內開發出最好的東西,因此,一切開發方法和管理過程在充分考慮軟件復雜性的基礎上,都是圍繞這個核心來進行的,教師要促使學生必須從課程開始就樹立起這個意識,同時,教師要善于將CC2001/CCC2002中軟件工程的內容體系、學習目標理清一個有機的順序教授給學生。我們的具體做法主要是按照IT企業軟件中心和項目組的工作思路,在宏觀介紹“軟件開發模型”、“軟件開發方法”、“軟件支持過程”、“軟件管理過程”的基礎上,依次講授了軟件的“立項策劃”、“需求分析”、“設計建?!?、“實現測試”與“實施維護”等主要內容與基本方法,并穿插引入了“UML(統一建模語言)”、“CMM(能力成熟度模型)”、“PM(項目管理)”等流行的軟件工程思想。其中,“立項策劃”與“實施”是多數軟件工程教材沒有或忽略的,但軟件企業實際又必須進行的兩個重要環節,涉及到軟件工程項目的來源(取之于誰)和歸宿(用之于誰),看似簡單,卻是學生將軟件工程所學融入實際的橋梁。講思路環節,可伴隨就學生針對軟件工程感興趣的領域進行文獻檢索、學期中或學期末提交有關該領域前沿課題的綜述性論文的要求(學生可檢索希賽軟件工程專家網――等國內網站;有條件或余力的同學可檢索、、sei.cmu.edu等國外網站)。
(2)實施小組軟件工程,即“練二”。軟件工程實施的成果之一就是里程碑和交付物,即軟件開發的階段性產品或“工作制品”,而這恰好又是學生學習軟件工程必須得到訓練的內容,同時也是教師衡量和檢查學生認識是否提升的手段。具體練習如下:在講授完“軟件立項與策劃內容”后,由教師提供不少于三種指定項目或學生自選項目的“軟件產品開發任務書”,內容可以小至諸如“機房設備管理系統”、“教學教務管理系統”、“圖書管理系統”以及學生操作系統、編譯原理等課程的作業,大至諸如企業或導師的項目或課題,每5~7名學生組成一個軟件項目組,任選其中一個作為自己的開發任務;每個項目組選出一名組長擔任項目經理,負責整個軟件系統的規劃、設計、協調和實施;項目組下又分設四個任務小組,即需求分析組、概要設計組、詳細設計組、程序實現組;各任務小組的負責人在項目實施階段,承擔小項目經理職責;要求每個學生至少是一個任務小組的主要成員(在此期間,建議學生研讀《小組軟件工程》與《個體軟件工程》書籍,以部分獲取相關知識和經驗)。每個項目組需根據教師提供的文檔模板與要求,在規定的時間內依次提交其中各任務小組的階段性成果,即《需求規格說明書》(第6周)、《概要設計說明書》(第10周)、《詳細設計說明書》(第13周)、源程序與《用戶手冊》(第17周),有條件的同學可提交測試報告(計劃、用例、數據)。教師在每個階段都將會對各小組提交的文檔進行點評,提出改進意見,同時結合小組內部的自評與互評,給出每個學生的評價。
(3)綜合測評,即“考三”。學期末,在對本課程主要理論體系進行概括、梳理與提升的基礎上進行期末考試,在綜合制定論文、小組項目、期末考試評價標準的基礎上,以“論文占10%,小組軟件項目占40%,期末考試占50%”的方式給出學生的綜合成績。
從學生所提交的論文,小組軟件工程項目的文檔、軟件,以及學生的反饋意見和心得體會等方面可以看出,上述方式是得到學生認可的。尤其是小組軟件工程項目的實施(項目大小并不重要,重要是其完整性),不僅給學生提供了提升理論和加強實踐的機會,也有效地促進了學生之間的彼此協同工作的能力,使其對軟件工程實施過程中角色的定位與階段的理解都有所提高,從而鍛煉了學生多方面的能力。而對于教師而言,不僅在諸多分析、設計、實現方法和理念中,強調“面向流程分析、面向數據設計、面向對象實現、面向功能設計、面向過程管理”等思想,以促使學生掌握更實際有效的方法,同時應在軟件工程與前導課程、后續課程的關聯性方面,以及軟件工程自身知識點的關聯性方面多花些工夫,使其能夠做到有機銜接,而后一點是需要持續努力和探索的。
畢業設計是高職院校人才培養方案中最后一個階段的總結性的實踐教學環節,是理論與實踐相結合,鍛煉學生綜合知識運用能力的主要手段,同時也反映了高職院校教學質量的整體水平。然而,近年來,由于學生對畢業設計不夠重視等原因,畢業設計的質量和水平不斷下降。基于此,本文以本校計算機軟件專業近3年的畢業設計相關數據為例,就上述問題進行了分析,并結合教學實際提出了一些對策,為進一步提高高職院校計算機軟件專業畢業設計水平提供依據。
2.存在的主要問題
2.1 學生不夠重視
大多數高職院校將畢業設計安排在第六個學期,學生進行畢業設計的時間在三個月左右。其間,學生需要完成查閱相關資料、選題、調研、學習相應軟件工具、系統開發、調試、撰寫論文等工作,本身就存在一定的難度。
高職學生在校的最后一個學期,也正是學生找工作的高峰期。由于計算機專業的學生總招生量很多,且高職院校的畢業生又不具有重點大學本科生的學歷等優勢,在嚴峻的就業形勢下,高職計算機專業的學生擔心畢業設計會影響就業,所以他們在思想上也不重視畢業設計工作。學生們只是忙于參加各式的招聘會和面試,根本無心去做畢業設計和寫論文。即便找到工作,還有相當數量的用人單位要求學生實習。另外,有一些學生選擇了專升本,這同樣也會占用畢業設計的時間,影響畢業設計的效果。
2.2 選題局限
選題是畢業設計工作的龍頭,選題質量是影響畢業設計質量的重要因素,目前高職院校的畢業設計課題大多是由老師給出畢業設計題目,學生選題并進行畢業設計。在選題方面,往往會出現以下的現象:課題缺乏工程背景、不同指導教師之間課題重復、內容陳舊、課題與前幾屆相似等。這些課題如圖書管理系統、人事管理系統、學生管理系統等,此類課題實現難度不大,并且可以從書籍或網上找到源代碼,學生只需要將系統界面稍作改動,將別人的論文稍作修改,就可以變成自己的系統和論文。更有甚者是照搬照抄以往學生做的畢業設計。以上也是影響當前畢業設計質量的一個重要因素。
2.3 缺乏正確的設計開發方法
筆者在指導畢業設計的過程中發現部分計算機軟件專業學生在畢業設計中沒有嚴格地遵循軟件工程的開發方法,導致畢業設計出現了很多問題。主要問題如下:一是有的學生一邊寫程序,一邊了解程序需求,程序完成了需求才清楚。有些需求事先沒有,在編寫程序時才加入,不得不重新改寫程序,給程序的運行和維護帶來很大的困難。二是學生往往忽略軟件開發的前面幾個階段,直接進行編碼,造成軟件設計的混亂。三是不少學生選定課題后,沒有仔細分析系統功能,就急于開發,結果模塊劃分不清,人員分工不明確,導致同在一個課題組,有的同學工作量大,有的同學工作量少,或者是模塊重復開發的問題。四是很多學生認為編碼結束則意味著整個設計就結束了,不重視測試和調試,導致軟件缺陷不斷。以上問題都嚴重影響了畢業設計的進度和質量,使得學生得不到應有的鍛煉。
2.4 監管不足
畢業設計大部分時間由指導教師組織管理。按照慣例,學生和指導教師之間應每周多次見面,一方面可以方便師生交流,另一方面也可以使指導教師及時了解學生的畢業設計進度。然而由于受到學生找工作、去就業單位實習等特殊情況的影響,指導教師只能通過電話或電子郵箱等方式聯系學生,很難準確把握學生的畢業設計進度和困難。而畢業設計整個過程主要是一個項目的開發過程,目前各種檢查主要是一些表格文檔的填寫,比如:任務書、開題報告等,缺乏詳細的過程管理計劃和專門的監督管理條例。對過程管理要求不嚴,學生自然有所放松,而學校僅限于對畢業設計相關表格和論文的檢查,又或者對己經簽署就業協議的同學的畢業設計采取遷就的態度,成績評判過于寬松。這些因素都助長了學生對畢業設計的敷衍心態。
3.對策
3.1 實行新的畢業設計選題方法
高職院校的特色是以就業為導向,所以高職院校培養的人才首先是立足于應用。高職院校該準確定位,利用好自身資源。因此在畢業設計選題環節上可以采取以下措施:
一是學生自主選題,指導教師把關。學生可以根據自己的能力確定題目,然后由指導教師對學生選定題目的難易程度、工作量大小等進行審核,審核不過關,則學生重新確定題目,直到審核過關為止。根據教學經驗,有部分學生在大二時就己經開始為社會上的一些單位進行系統開發,自主選題對于這部分學生來說,不但可以結合他們所開發的項目進行畢業設計,同時也鍛煉了自身的能力,也使畢業設計的質量得到了相應的保障。
二是指導教師根據學生興趣和需求,結合現代社會對人才的需要,從有利于學生就業的角度,盡可能結合生產和科研實際。這樣不僅能調動學生的積極性,也有助于最大程序地發揮學生的潛力。
三是對于到錄用單位進行畢業設計的學生,可采取校內指導教師和校外企業指導教師共同指導學生畢業設計。畢業設計課題由校企雙方結合畢業設計要求及企業實際需求協定。校內指導教師主要負責專業理論方法和畢業設計論文的規范等內容;校外企業指導教師主要負責畢業設計中具體工作的實施。這樣不僅能保證畢業設計保質保量地完成,同時也培養了學生的團隊精神和實踐能力。
最終選題還應由院系組織相關專家對課題的難易度、工作量大小、課題的內容等方面進行審核。
3.2 模式多元化
高水準的競賽或考證方式可代替畢業設計。近幾年來各類組織舉辦了不少計算機類專業有關的學科競賽,如“數學建模大賽”、“計算機技能競賽”、“機器人大賽”等,還有計算機類認證考試,如“思科認證”、“微軟認證”、“軟件水平考試”等。對于學生參加國家或省市級計算機競賽并獲得獎項或通過高水準認證考試,以及學生參與教師的部分科研項目的這幾種情況,其鉆研的難度和深度,己經達到甚至超過高職院校畢業設計的要求。對于這部分學生,畢業設計應當可以免修,直接獲得學分,畢業設計成績可以按獎項等級評定。這樣一方面順應了學分制教學改革,也有利于學生積極參加各類競賽活動和參與教師科研項目。
3.3 結合軟件工程指導學生畢業設計
軟件工程是一門研究如何用系統化、規范化、數量化等工程原則和方法去進行軟件的開發和維護的學科。結合軟件工程指導畢業設計可以分成以下幾個方面:一是將畢業設計的課題按軟件工程的要求分為幾個階段,確定每個階段具體要完成的工作任務和完成期限。二是指導學生按照軟件開發中生命周期的方法來完成設計任務,比如系統設計部分先畫出數據流圖,再根據數據流圖設計出模塊結構圖,接著模塊設計,各階段都要完成書面報告,為以后的畢業設計論文作鋪墊。三是系統調試,撰寫畢業設計論文。要求學生將各模塊組合起來,聯合調試,學生可以感受最終設計結果,能夠對整個過程有一個更深刻的認識。最后,學生可參考相關書面文檔結合理論知識和實踐結果,完成畢業設計論文。
將軟件工程應用于畢業設計中,不但實現了軟件工程這門課程真正從理論到實踐的過程,而且也使得學生在軟件設計的文檔書寫規范化等方面有很大的改善和提高。
3.4 加強監管,完善畢業設計制度
首先,在畢業設計動員大會上,應該加強學生思想教育,引導學生正確處理找工作與畢業設計的關系。加強學術道德修養,從制度上防止抄襲和網上下載的現象,使學生引起重視。
其次,可建立畢業設計管理平臺,學生定期將畢業設計作品到平臺上,指導教師進行檢查,并將檢查結果及時反饋給學生。學生和指導教師也可以在這一平臺上進行交流。通過這一平臺,既便于指導教師了解學生的畢業設計進度,也可以為學生成績評定提供參考。
再者,可成立畢業設計督查小組,對畢業設計的開題報告、中期檢查和畢業答辯進行檢查。主要檢查項目有:選題是否合適、開題報告是否符合規范、畢業設計的開展進度、學生出勤情況、指導教師是否認真指導、畢業設計論文是否規范、成績評定是否公平合理。
最后,對每一屆學生的畢業設計進行評比,評選出優秀畢業論文,對學生及指導教師進行表揚、獎勵,可激勵廣大師生更加重視畢業設計。也可以在學校舉行優秀畢業設計成果展,為學生們提供交流和學習的平臺。
4.小結