金英,馬吉權,青巴圖



摘要:實踐能力的培養一直以來都是工程技術專業學生培養方案的重中之重。尤其對于軟件工程專業,如何培養學生對專業知識綜合運用的能力,一直是學生培養中的難題。文章以軟件工程專業的“頂石”課程的設置為例,系統介紹了“頂石”課程體系的設置以及課程內容的設計。經過一個周期的實踐表明,頂石課程設計思想,對提高學生的綜合實踐能力具有顯著的作用。
關鍵詞:軟件工程;人才培養;頂石課程
1 引言
培養學生的實踐應用能力是高等教育長期以來不懈的追求。對于工程技術專業,無論是對理論知識的理解,還是更好地適應未來的工作,都需要學生具備一定的實踐應用能力。對于一個行業來講,專業的知識體系往往是發散的,課程與課程之間的耦合度較低,這無形中就讓學生很難得到實踐應用能力的綜合訓練。當學生面對一個實際問題的時候,往往需要綜合運用學到的知識,再加上個人素質和能力的催化才能順利完成任務。于是,就可以發現綜合運用知識、個人素質和能力這些解決問題的要素,似乎不是某一門課程可以學到的。
學生多有眼高手低的毛病,追根溯源,造成這一現象的原因與課程設置有關。美國的高等教育非常發達,但同樣也面臨著這樣的問題。為了解決這一問題,1998年美國高等教育協會發表了《博耶報告》,提出了所謂頂石課程(Capstone Course)的解決方案。其主要思想是指通過在高年級設置綜合性實踐課程,提高學生在知、行、情、意四個方面的能力。軟件工程專業的培養目標也主要體現在知、行、情、意四個方面。在知識結構上(知),除了要求軟件開發的基礎知識外,還要求學生掌握軟件工程預算、管理等方面的知識;在實踐方面(行),軟件工程專業對學生的實踐能力提出了很高的要求;在團隊合作能力方面(情),軟件項目的研發一般都需要一個團隊才能完成;在行業經驗方面(意),軟件工程專業希望能夠培養學生的行業風險意識。
通過以上的分析不難發現,軟件工程專業具備明顯的工程技術特征,但是現有的課程體系,在課程開設層面無法為軟件行業從業者提供實際應用場景的體驗。學生往往處在“一直在編程,從未做軟件”的學習狀態。如何能夠讓學生意識并且體驗到軟件項目從立項、實施、驗收的完整過程里所應具備的知識和能力是目前軟件工程課程體系中所缺乏的。
2 階段性頂石課程的實施
傳統的頂石課程一般是在高年級的最后階段設置的一門綜合實踐類的課程,所以學生往往只有在最后階段才能得到綜合性的訓練,這樣的做法往往浪費了在培養過程中學生綜合能力訓練的良好時機。為此本文提出了一種“階段性”頂石課程的設計理念。
通過這種“階段性”頂石課程的設置,學生加深了對先續理論知識的理解,綜合實踐能力得到了顯著提升。學生畢業論文質量的顯著提升也表明“階段性”頂石課程的開設對提升軟件工程人才的培養質量具有重要的作用。
2.1課程的設置
培養方案中的課程體系及其教學計劃安排是按照專業知識的前序后繼關系構建的。但是在實踐教學培養方案的制定上,往往是以一門獨立的課程為單位,以本門課程的知識體系為基礎組織實踐教學內容。這種培養模式往往忽略了與后續課程之間在實踐內容上的關系和彼此影響。比如:程序設計語言類課程往往更多地關注于程序設計語言本身,對分析和設計的要求不高,缺乏關于軟件系統分析和設計對學生的要求,缺少針對求解一個問題的分析與設計的實踐動手能力的訓練。沒有需求分析、沒有程序設計流程圖、沒有測試,只有最終結果的驗證。這就造成了到后續以分析和設計為主的軟件類課程中,學生即使學習了基本的分析與設計方法,但是落實到程序的時候仍會習慣性地陷入程序結果至上的思維定式之中。
為了改變這一局面,本課題以軟件工程專業的實踐教學改革入手,重新梳理了該專業的培養方案,在實踐教學層面上明確了課程之間的繼承關系,減少了教學內容冗余,填補了課程銜接之間部分教學內容的空白。
2.2教學內容設計
以軟件工程的培養目標為核心,全程貫穿和遞進地滲透軟件工程的思想。讓學生從開發最簡單的程序開始就進行軟件工程思想的訓練。為了培養學生綜合運用知識的能力,在大二下學期和大三下學期設置了《軟件工程綜合設計》和《軟件工程專業綜合實踐》兩門頂石課程。所謂“頂石”課程是美國高校為高年級工程類學科的學生開設的整合性課程,為學生提供綜合、拓展、批評和應用所學的知識、技能的機會,幫助學生提高和發展綜合素質。我們根據人才培養的需要,開設了“軟件工程專業綜合實踐”頂石課程,以項目驅動方式組織教學,將學生組成4~6人的團隊,通過指導學生開發應用項目的過程,使學生能夠綜合運用可行性分析、需求分析與系統設計、編碼與測試、團隊合作、項目管理等重要方法和技術,從而提高學生的綜合素質和專業實踐能力。
大二下學期,學生已經完成了《程序設計基礎》《面向對象程序設計》《Java程序設計》三門程序設計課程,具備了基本的應用程序開發能力。與此同時,通過《軟件工程概率》《數據結構與算法》的學習,學生也具備了一定的系統分析與設計的能力。由于還完成數據庫相關技術的學習,所以數據的存儲采用文件實現。通過《軟件工程綜合設計》這門頂石課程的學習,學生得到了初步的面向對象的系統分析與實現能力的培養,也為后續軟件工程類課程的學習奠定了堅實的基礎。
大三階段頂石課程
大三下學期,學生已經完成了《數據庫系統原理》《軟件系統分析與設計》《項目管理與質量保證》三門課程的學習,具備了基本的數據庫系統設計能力。與此同時,通過《軟件體系結構》《軟件構造》《軟件測試》《團隊激勵與溝通》四門課程的學習,學生也具備了一定的軟件分析、軟件設計與軟件測試的能力。此外,通過《團隊激勵與溝通》這門課程的學習,具備了團隊協作與團隊管理的能力。為此,通過《軟件工程專業綜合實踐》這門頂石課程的學習,學生得到了軟件系統分析與設計能力的培養,也為后續學生的實習、實訓和畢業論文(設計)奠定了堅實的基礎。
3 實施效果及反饋機制
基于全程無縫對接的軟件類實踐教學培養模式的改革,學生的實踐能力有了顯著的提升,尤其是在軟件工程相關文檔的書寫方面有了明顯的進步。通過2015屆、2016屆和2017屆的本科畢業論文可以發現,學生的畢業論文質量有了明顯提高。
4 結語
“頂石”課程概念引入國內的時間雖然不長,但是其教育理念符合學生認知與實踐能力培養的成長規律,其核心思想其實就是“學以致用”。軟件工程專業學生引入“頂石”課程的培養方式后,減少了用人單位前期的培訓任務,通過與理論課程的融合,使學生在校階段就可以得到比較充分的實踐能力訓練,為培養高質量的應用型人才提供了強有力的保障。
編輯/岳鳳