摘 要:《軟件工程》課程是一門理論知識較多,綜合性、實踐性要求高的課程。是醫(yī)學信息工程專業(yè)必修課程。對目前在教學中存在一些問題,提出了一些針對這些問題,提高教學方法的幾個解決方法,包括提升教師感染力,結合多課程內容教學,采用項目驅動模式教學,以期取得好的教學效果
關鍵詞:軟件工程;教學方法;項目驅動
中圖分類號:R318-4
我校開設醫(yī)學信息工程專業(yè),該專業(yè)是一門以信息科學和生命科學為主的多學科交叉與融合的新興綜合性學科。為醫(yī)療衛(wèi)生行業(yè)培養(yǎng)既掌握計算機技術,又掌握醫(yī)學專業(yè)技術,還熟悉醫(yī)院管理流程和臨床科研數(shù)據(jù)處理的復合型人才[1]。
《軟件工程》課程是該專業(yè)的專業(yè)核心課程。軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科[2]。學生學習這門課程是要求他們掌握軟件工程的概念、原理、技術和方法,從而經(jīng)濟、高效地開發(fā)出高質量的軟件并有效地維護它。該類課程理論較多,同時其綜合性、實踐性要求較高。如何教授好這門課程是一個值得思考的問題。
1 《軟件工程》課程教學中存在的問題
軟件工程課程內容主要是許多概念和原理,教材上涉及的方法與技術并沒有多難理解,但教學過程中仍發(fā)現(xiàn)有如下問題:
1.1 學生對軟件工程類課程感覺概念、原理太多,難以記憶
軟件工程課程主要講解軟件開發(fā)中的原理、方法、技術,很少涉及軟件算法和程序設計。學生在學習時有個誤區(qū),覺得這門課既然是介紹各種概念和原理的,死記硬背就好了。而大量的概念和原理光靠死記硬背反而容易混淆,學習效果并不好。
1.2 教學模式單一,缺少有專業(yè)特色的固定的教學案例
目前軟件工程課程仍以教師課堂授課為主,學生聽課為輔,教學內容側重于理論。實驗學時較少,學生的實踐多在課后完成,較難落到實處。課堂使用案例也多為教材上給出的小案例,實用性不強,缺少專業(yè)特色,學生很難接觸真正的醫(yī)學信息系統(tǒng)開發(fā)項目的實例。
1.3 學生缺少對相關課程間關系的理解
目前的教學模式是各門課獨立講授,對于軟件工程課程而言其綜合性很強,其理論與應用與許多課程相關,但學生在學習時是單獨學習的,在頭腦中沒有形成完整的課程體系,不能把已學過的知識融會貫通的使用。
1.4 學生實踐能力較差,難以滿足專業(yè)需要
軟件工程課程實踐性要求高,而學生在學習的過程中,僅僅抽象的學習軟件開發(fā)的過程,很少有機會參與軟件開發(fā)的整個過程,從而實踐能力較差。
2 解決辦法
2.1 注重教學方法和教師的課堂感染力,結合學生實際教學
當課程內容不夠吸引學生時,授課的效果就更依賴于教學方法和教師的個人魅力。教師要教授好一門課程,僅僅對課程內容的深入理解是不夠的,有時要向一位演員一樣的表演。聲音抑揚頓挫的變化可以使本想打瞌睡的學生清醒。在教學中適度的加入一些“包袱”,博得滿堂一笑,同樣可以使渙散的注意力重新集中。學習軟件工程課程的目的是為了讓學生了解和掌握開發(fā)一個高質量軟件的過程、方法及使用的工具。那么對于“高質量軟件”要給學生一個定義,如果僅從理論上來解釋將枯燥無趣。筆者在上課時以學生所熟悉的MS office、QQ等軟件作例子,讓學生從用戶的角度討論“高質量軟件”的特性,將軟件工程設計和實現(xiàn)階段的一些基本原理、概念和啟發(fā)規(guī)則引入進去,引起學生的共鳴,加深學生對這些原理、概念、啟發(fā)規(guī)則的理解,在不用死記硬背的情況下輕松記住教學內容。
2.2 結合其他課程內容,使學生對所學內容融會貫通
軟件工程課程的綜合性和實踐性都比較高。在教學中結合其他課程內容,并與其他課程教師交流共同教學,學生能將所學知識融會貫通,靈活應用,效果會非常好。例如在講述軟件工程需求分析階段建立數(shù)據(jù)模式時引入數(shù)據(jù)庫原理中的知識,解釋數(shù)據(jù)對象、屬性及數(shù)據(jù)對象間相互聯(lián)系,以及它們對應到應用中的實現(xiàn)形式;在講述設計與實現(xiàn)階段內容時,可引入算法設計與分析課程中的知識對設計思想、代碼的構造進行說明;講述實現(xiàn)效率時,引入算法設計與分析中的時間復雜度和空間復雜度的概念來討論效率問題,討論存儲效率時還可引入操作系統(tǒng)中存儲調度的原理加深學生的印象。
在我校醫(yī)學信息工程專業(yè)課程計劃中,軟件工程是在大三上學期開設,大三下學期還有《J2EE架構設計與開發(fā)》和《綜合課程設計》兩門課,結合這兩門課,讓學生分組以軟件工程方法開發(fā)一個軟件,并交付相應文檔,從而再次鞏固學生在軟件工程課程中學習的知識并加以應用。
2.3 采用項目驅動模式,結合項目實例,使學生學以致用
采用項目驅動模式教學時應注意以下幾個問題:
(1)盡量使用實際案例,虛擬的案例因為沒有需求方,學生在需求分析和需求定義時很容易流于形式,體會不到獲取需求有多么的困難,反而會覺得獲得需求很容易,難在編程。在我校的教學中,軟件工程前期有《醫(yī)學信息系統(tǒng)》課程,為學生介紹醫(yī)院的一些管理流程,并指導學生開發(fā)相應的軟件;同時學院經(jīng)常組織學生去醫(yī)院實地參觀;學院教師也經(jīng)常與醫(yī)院或企業(yè)有一些軟件開發(fā)的項目。這些都為軟件工程課程提供了很好的實際案例。
(2)指導學生分組,學生分組時最好不要任由學生自由分組。學生自由分組時,往往編程能力好的同學抱成一組,其他的同學以關系疏密來確定分組。導致一個項目組中只有個別學生起到作用。使整個教學過程流于形式??梢韵茸寣W生自由報名擔當項目負責人,然后以公開競聘的方式確定項目負責人,這個過程中,需要老師對學生有一定了解,對競聘方式和過程加以引導,確定有組織能力和負責任的同學擔任。然后再由個人向項目負責人申請職位(如軟件設計人員、軟件架構人員、程序員、軟件測試人員等),一般一個項目組5-6人,由項目負責人決定小組人員,項目負責人負責項目的整體管理和協(xié)調工作。因為職位都是自己申請的,所以最后在項目實施時,各人職責明確,不會出現(xiàn)人浮于事的狀況。
(3)定期檢查工作進度。如果沒有定期的工作進度檢查,學生可能會直到課程快結束時才趕緊寫各類文檔交付了事,達不到教學目的,學生無法體會到軟件工程在實際應用中的意義。所以要求各個項目組跟隨課程的進度按時間段完成包括可行性分析報告、需求規(guī)格說明書、總體設計規(guī)格說明書、詳細設計規(guī)格說明書、測試計劃、源代碼等各類文檔。學時允許的話,安排幾節(jié)課作為工作匯報會。適度的工作匯報會可加強小組間的交流,讓學生從別人的工作中發(fā)現(xiàn)自己工作的優(yōu)勢和不足。每次匯報會的發(fā)言人由每小組成員輪流擔任。筆者認為通過軟件工程課程教學提高學生匯報工作的能力和與人交流的能力也是很重要的。教師對學生的文檔和匯報予以總結和點評,在對學生的工作予以肯定的基礎上提出對學生所給方案的改進意見或建議。畢竟軟件開發(fā)的過程中沒有唯一標答,學生的思路與老師的不同是很正常的現(xiàn)象,不要一味否定從而打擊學生獨立思考的能力。以開放的思想與學生討論,更能促進學生更深入的思考。這樣既能加深他們對軟件工程理論的理解,同時也提高對這門課程的興趣。
3 結束語
《軟件工程》課程是一門理論知識較多,綜合性、實踐性要求高的課程。筆者從目前教學中存在的問題著手分析,思考并實踐多種教學方法,提出了幾點行之有效的解決問題的教學方法。在今后的教學工作中還將更多的研究、探索其它優(yōu)秀的教學方法,積累經(jīng)驗,以期取得更好的教學效果。
參考文獻:
[1]周毅,劉燕.醫(yī)學信息學的研究領域及人才培養(yǎng)[J].醫(yī)學信息學,2005,18(8):856-858.
[2]張海潘.軟件工程導論[M].清華大學出版社,2008,2.
[3]李洪進.案例驅動式方法在軟件工程教學中的應用[J].軟件導刊,2013(6).
[4]李亞紅.《軟件工程》課程教學改革探討[J].長江大學學報(自然版),2013(1).
作者簡介:吳勁蕓,女,武漢人,教師,講師,本科,研究方向:軟件工程。
作者單位:湖北中醫(yī)藥大學 信息工程學院,武漢 430065