軟件開發能力是計算機相關專業學生從業的基本能力之一,其培養需要通過一系列理論學習和實踐環節的鍛煉逐步形成. 如何加強理論和實踐課程之間的聯系,縮短學生軟件開發能力培養的周期,是一個非?,F實和重要的課題.本文在分析課程群內涵的基礎上,提出一種以軟件工程為主線的軟件設計課程群的建設方案,旨在建立更能體現培養目標的課程群體系.
1 課程群的內涵.
課程群是近年來高等院校課程體系改革的一個新思想,其本質是把內容聯系緊密、內在邏輯性強、屬于同-培養能力范疇的一類課程作為-個整體進行建設.從而打破課程內容的歸屬性,從技能培養層面上把握課程內容的分配、實施、保障和技能的實現[1].
在課程群建設體系中,首先根據專業的培養目標制定培養方案,再依據所要培養的技能要求劃分為各個課程群,而課程群則由服務于同一目標的課程組成.這樣便使得技能要求獨立于課程,形成目標明確的課程群層次,嵌在課程和培養方案之間[2].
引入課程群之后,由課程群承載技能培養目標,協調課程之間的關系.課程群建設強化了課程之間的親和性,突顯它們為共同培養目標服務的特征,突出各課程所蘊含的技能定位,把圍繞一個技能培養目標的、含有若干課程中的技能點在一個更高層次上貫穿起來,使該技能的培養隨課程教學的推進而不斷遞進、加深和拓展,逐步實現與培養目標的重合[3].
2 軟件設計課程群建設的必要性.
計算機專業課程體系中與軟件開發相關的學科貫穿始終.學生通過學習大量的基礎課和專業課,逐步理解計算機的硬件組成與結構,掌握軟件設計與開發技術.
但是,對教學效果的調查表明,計算機專業學生的軟件設計能力不容樂觀.
例如,學生在程序設計時動手能力不強,面對復雜任務時分析問題、解決問題的能力差,對主流的開發語言與工具使用不熟練,軟件調試與測試的技能較差,不會通過網絡、書籍或幫助等資料自行解決遇到的各種問題, 不了解商業軟件的開發與管理模式,距離商業軟件開發的要求甚遠.
因此,為了更好實現培養學生軟件開發能力的技能目標,本文提出一種以軟件工程為主線的軟件設計課程群建設方案.
3 軟件設計課程
群的課程設置按照軟件設計能力的培養目標,將相關課程整合,形成以軟件工程為主線的軟件設計課程群.從課程構成上看,主要包括四大類課程: 語言類、數據存儲類、軟件開發方法類和實踐類.語言類主要是一些軟件開發語言類課程,數據存儲類主要包括數據結構和數據庫原理,軟件開發方法類課程主要是軟件工程,實踐類課程主要包括這些課程的項目實訓和課程設計[4,5].
在軟件設計課程群中,面向對象編程語言、數據庫和軟件工程三門課程關系緊密.面向對象編程語言是軟件開發的最基本工具.現在的軟件基本上離不開數據庫的支持,中間結果和最終結果都需要數據庫管理系統來存儲.軟件工程則指導如何進行高效率高質量的軟件開發[6].
4 軟件設計課程群的實施方案.
4.1課程群的組織方式.
在教學組織形式上,一般高校都是教研室負責制,一個教研室負責幾門課程.如果某個課程群涉及到的課程屬于不同教研室,則在課程前后銜接,教學內容取舍、進度安排等方面均不好協調.為了提高學生的軟件開發能力,應打破原來的教研室負責制,實行課程群負責制.
所謂課程群負責制就是教學基層組織的教師由課程群各任課教師構成,包括課程群負責人、各門課程的主講教師、實驗教師等.
課程群負責人全面負責該課程群的課程建設、教學、科研等工作.
由課程群負責人組織確定課程群培養方案,協調課程群中各門課程的前后銜接,各門課程的主講教師負責課程的教學大綱、授課計劃、教案、作業等.
實驗、實訓和課程設計等實踐環節由課程主講教師和實驗教師共同負責.
4.2明確以軟件工程為主線的課程群內課程之間的關系.
梳理以軟件工程為主線的軟件設計課程群內課程之間的關系,明確課程群內課程內容和課程群體系架構.明確課程群中各門課程的主要內容和大綱,確保課程群的知識體系結構合理、知識銜接合理、實踐環節安排合理,以避免知識點的缺失或重復,以及知識體系不連貫等問題.
4.3基于課程群思想的軟件工程教學實施.
下面,我們以軟件工程為例談一下基于課程群思想的軟件工程教學改革.軟件工程強調采用工程化的方式開發和設計軟件,要求培養學生能勝任研究、分析、開發、設計、生產、測試、管理、咨詢、培訓等多種角色,使學生熟練掌握軟件工程知識與技能.為滿足提高學生軟件設計和開發能力的技能要求,我們在軟件工程的教學實踐中進行了一系列的改革.
\\(1\\)更新軟件工程的教學方法和教學手段,培養工程化的軟件人才軟件工程類的課程內容紛雜,教學過程中容易出現空洞的說教.為避免這一問題,在加強案例教學和實踐環節的同時,多采用課堂討論、小組報告、項目答辯等多種形式的教學方法.在課程群建設中重點研究、設計出能夠貫穿于課程群的案例.案例的設計以培養興趣、激發創新激情為目標,從軟件工程的基礎入手,使學生能夠循序漸進地接受并融會貫通所學知識.通過案例的學習,既能鞏固已學過的知識,又能在此基礎上讓學生實際運用他們所學過的知識和技能,模擬案例提出相應階段自己的問題,并給出解決方案,真正使學生體會和做到學以致用.
\\(2\\)強化軟件工程的實驗教學環節,培養學生的軟件設計和開發能力在實驗教學上,我們主要從以下幾個方面對軟件工程實驗教學做了改革與創新的嘗試:實驗課程以平時實驗和課程設計相結合,設置一些綜合實驗項目.
隨著課程進展布置任務,通過調查研究、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、維護及技術文檔的編寫,結合所學習的理論知識,完成設計.實驗內容應覆蓋軟件生存周期的各個階段,使學生通過實驗加深對學科理論知識的理解.
對于實驗內容要精心設計,具有可操作性、趣味性和適當的難度.
可操作性保證學生都能完成實驗,從而促進學生學習信心的建立,克服實驗數據普遍抄襲的弊病;趣味性體現“寓教于樂”,以提高學生完成實驗的積極性;適當的難度有助于激發優秀學生進一步鉆研的斗志.
軟件工程實驗要求學生采用“項目小組”的形式,結合具體的項目進行設計,班級按項目小組進行分組.每個項目小組選出項目負責人,由其召集項目組成員討論、選定開發項目.學生分工合作,學習軟件開發小組的組織和管理,將項目開發各階段的任務明確,熟悉軟件開發環境,培養團隊精神,共同完成該項目的設計任務.項目中的每項任務要落實到個人,實驗在規定的時間內,由學生獨立完成.教師的主要任務是答疑和檢查.答疑在每次上機的中間進行,檢查在每次上機結束時進行.檢查工作以小組為單位,但每項任務應落實到個人.出現問題,教師要引導學生獨立分析解決.每個項目小組必須按照國家《計算機軟件開發規范》中給定的文檔規范標準提供項目文檔.
5 小結.
本文在對課程群內涵進行分析的基礎上,論證了軟件設計課程群建設的必要性,提出一種以軟件工程為主線的軟件設計課程群建設方案,重點論述了基于課程群思想的軟件工程教學的實施.
參考文獻:
[1]呂會慶,張巍.軟件工程專業課程群建設教學實踐[J]. 計算機教育,2012\\(14\\).
[2]王志強,傅向華. 計算機基礎課程群及其教學內容的研究與實踐[J]. 計算機教育, 2008, \\(15\\) .
[3]彭佳紅,彭佳文,拜戰勝. 農科類計算機科學與技術專業課程群建設研究[J]. 高等農業教育. 2010\\(03\\).
[4]彭佳紅,曹曉蘭,程研. 軟件工程專業課程體系與課程群研究[J]. 高等農業教育,2013\\(02\\).