曹曉蘭 彭佳紅 彭劍


摘要:編程能力和軟件能力是計算機專業本科人才必備的能力,也是他們未來職業生存和發展的基礎。文章根據計算機專業本科生培養要求和社會對計算機人才的期望,對培養兩種能力的理論課程體系和實踐教學體系進行研究,針對編程能力和軟件能力,分別構建相應的理論課程系列,并從“夯實基礎、提高能力、面向應用”3個層次,構建兩種能力的實踐教學體系。
關鍵詞:編程能力;軟件能力;課程體系;實踐教學體系
0 引言
可持續發展教育觀認為知識、能力、素質是構成現代教育三方面的內容。高等教育應該是以能力培養為中心的教育,要圍繞能力的培養來實施教育教學。本科生的能力包括較強的學習能力、創新能力和專業能力。
對計算機科學與技術專業的本科生來說,能夠編寫規范的程序代碼是最基本的專業能力,但從社會的需求來看,計算機專業人才僅具備良好的編程能力遠遠不夠,還應該具有軟件系統開發等各方面的能力。軟件開發的復雜性要求從事開發的人員能站在系統的全局角度看問題,并用工程化的方法分析、解決問題,也就是我們所說的軟件能力。一直以來,由于計算機科學與技術專業的性質和認識上的局限性,教學上一般比較側重對學生編程能力的培養,而對軟件能力的培養重視不夠,使得不少學生存在著軟件開發就是編寫程序代碼的錯誤觀點,或者意識到了軟件能力的重要性,卻缺乏軟件開發必須具有的工程觀、系統觀。
編程能力與軟件能力之間存在著密切的關系:編程能力是計算機人才應該具備的最基本的能力之一,也是軟件能力形成的基礎;而軟件能力是真正能滿足社會需求的能力,是一種更高標準的要求,能促進編程能力的提高和完善。我們在教學中,不僅要注重學生的編程能力培養,還要有目的地培養學生的軟件能力,這不僅符合計算機專業培養要求,也符合社會對計算機人才的要求。而能力培養不是一兩門課程或一兩個教學活動就可以實現的,需要一個“養成”過程,必須循序漸進,用明確的系列課程構成相應的訓練系統,使學生在修養中形成一些良好的學科習慣,潛移默化地養成學科優秀人才所要求的能力。因此,針對計算機專業的特點,以這兩種能力的培養為目標,我們在理論課程體系、實踐教學體系建設等方面上做了一些研究和實踐。
1 理論課程體系的構建
按照能力培養的要求,課程應該是成系列的,是有利于各種專業能力逐漸形成的漸進系統。針對編程能力和軟件能力,我們分別構建了兩種相應的理論課程系列:編程能力培養系列課程和軟件能力培養系列課程,如圖1所示。編程能力培養系列課程側重于培養學生掌握本學科要求的計算思維方法、算法設計策略和技術,能夠熟練應用至少一門高級程序設計語言,具有良好的代碼編寫習慣,此外還要具備面向對象思維能力;而采用工程的概念、原理、技術和方法來開發與維護軟件是軟件能力的體現,因此是軟件能力培養系列課程的側重點。這兩大課程系列形成一個漸進系統,幫助學生完成由編程能力到軟件開發能力的提升。
從編程能力提升至軟件能力是一個循序漸進的過程,因此這兩個系列中的多門課程之間,知識上既有前導后續的關系,程度上也有迭代式加深的關系,甚至可能有些課程部分內容是重疊的,需要教師清楚該課程在整個能力培養體系中所處的地位,從而在教學內容選擇上各有側重,在教學要求上各有不同。
1.1 編程能力培養系列課程
針對編程能力的培養,我們進行了以下4個系列課程建設,分別是計算思維能力培養系列課程、算法系列課程、程序設計與實現系列課程、面向對象設計理念培養系列課程。
計算思維能力包括形式化、模型化描述和抽象思維與邏輯思維能力等。此系列的課程主要由一些數學類和計算模型類的課程組成,包括高等數學、離散數學、線性代數、工程數學、計算思維與問題求解、形式語言與自動機等。對一般本科生而言,計算思維能力難以在短時間內養成,需要一個漸進過程:由單一具體的實例計算,遷移到一般的、形式化的類計算/模型計算,實現思想境界的變化。在時間上,需要適當延長數學類課程的教學周期,將連續數學、離散數學、類計算/模型計算3部分內容按階段分開安排,從第1學期一直延續到第6學期。
算法對于計算機專業的本科生是非常重要的。算法系列課程主要幫助學生建立算法的慨念,掌握算法設計策略和技術,并具備算法分析能力,主要有數據結構與算法、Matalab與數值計算等。
程序設計與實現能力要求學生至少掌握一門高級程序設計語言的基本思想和方法,具有分析、學習和實現高級程序設計語言的能力,主要包括編譯原理、高級語言程序設計、數據庫系統等課程。如高級語言程序設計課程c語言,能使學生掌握基本的編程基礎及模塊化的程序設計理念。
如今面向對象的編程是主流,無論使用何種面向對象的語言,其精髓都是面向對象的思想,因此掌握面向對象思想比掌握語言本身更重要,如對繼承、多態、重載等面向對象概念的理解,對面向對象基本原則的掌握等。面向對象設計理念培養系列課程包括面向對象技術引論、面向對象語言程序設計等。
1.2 軟件能力培養系列課程
學生的軟件能力主要體現在對軟件系統的認知、分析、開發與應用能力上,既要具有系統的眼光和觀點,對系統結構、部分與整體、不同級別的抽象等有深刻認識,也要具有工程的知識,了解工程的概念、原理、技術和方法,以及這些在軟件開發維護中的重要作用。對此我們進行了以下3個系列課程建設,分別是軟件工程系列課程、系統開發系列課程、工具軟件應用系列課程。
軟件工程系列課程包括軟件工程導論、高級軟件架構、UML模型分析、軟件測試、軟件成熟度模型CMM等。通過這些課程的學習,學生能深刻理解軟件工程概念、原理和技術方法,熟悉軟件開發周期中每階段的任務,包括需求分析和建模、軟件設計和實現、軟件評審與測試、人機交互界面設計、軟件項目管理等,并認識到軟件開發是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目。endprint
系統開發系列課程側重于項目開發,強調抽象與高級實現。有面向對象應用程序開發項目、電子商務應用程序系統開發項目、使用XML的企業應用開發、Web設計與編程、現代電子系統設計、CRM客戶關系管理系統。通過某些行業領域較大型的項目開發樹立學生的整體觀,培養學生的系統眼光,使他們學會考慮全局,按照分層模塊化的基本思想,站在不同的層面上把握不同層次上的系統。
了解和善于使用工具軟件能幫助開發者提高工作效率,改進工作質量,工具軟件應用系列課程除了包括與軟件開發密切相關的軟件工程CASE工具,還包括了一些通用軟件應用課程,如辦公自動化、多媒體技術與應用等。
2 實踐教學體系的構建
實踐教學是培養學生能力的另一個重要環節,實踐教學體系是一個與理論課程體系有機結合,又相對獨立的完整體系,貫穿于人才培養的全過程。要將實踐教學體系作為一個系統來構建,適當地追求系統的完備性、一致性、健壯性、穩定性和開放性。按照能力培養循序漸進的原則,我們以理論課程體系為基礎,從夯實基礎、提高能力、面向應用3個層次上,構建了兩種能力的實踐教學體系,如圖2所示。圖中灰色進度條代表各個實踐教學環節對編程能力和軟件能力培養的覆蓋范圍。
課程實驗是對應于某一門課程設置的,實驗內容與該課程理論教學內容緊密結合,側重學生對課程各個知識點的掌握,規模一般比較小。設置了實驗的課程有數據結構與算法、高級語言程序設計、數據庫系統、編譯原理、多媒體技術等。
課程設計更強調綜合性、設計性,復雜度也高于課程實驗,是引導學生將知識用于解決實際問題的第一步。我們將課程設計分為兩種:一種是要求學生獨立完成的,如程序設計課程設計、數據結構與算法課程設計、編譯原理課程設計等;一種是以小組為單位完成的,如數據庫原理課程設計、軟件工程課程設計等。后者比前者規模更大,從工程化的角度出發,強調小組成員分工合作。
將實踐教學活動擴展到課外一方面可以補充教學總學時的不足,更可以讓學有余力的學生進一步仔細、深入地研究問題、解決問題。因此,我們鼓勵學生參加各種課外實踐活動,如組織學生參加省級、國家級的各種學科競賽,組成多個興趣小組,參與各種社會技術服務等。
多門課程的綜合設計一般放在高年級,由系統開發系列課程中的某一門牽頭,如電子商務應用程序系統開發項目或CRM客戶關系管理系統等,給出多個可供選擇的題目,學生根據情況選題。多門課程的綜合設計規模更大、對學生要求更高,通常涉及多門課程知識,既需要程序設計、數據庫知識,也需要軟件工程知識,還要了解某些行業領域的專業知識,比較接近社會的實際需要。
生產實習通過讓學生直接接觸專業生產實踐活動,能在一定程度上讓學生從社會科學研究和生產實踐中體驗需要學什么,并真正能了解、感受未來的實際工作。生產實習一般安排在專業課學習期間,或者課程學習結束后畢業設計之前。對于大四的學生,甚至可以將生產實習與畢業設計有機結合,緩解畢業設計時間不足的問題。
畢業設計在整個實踐教學體系中綜合性最強。學生進行畢業設計時,已經完成整個教學計劃中所有課程的學習,完成其他各類實踐。它承擔著培養學生綜合應用所學知識和掌握的技能,分析和解決實際問題、獨立工作、團隊協作等能力的任務。同時對學生在4年學習中所獲得的知識掌握情況、學習和接收新知識和新技術的能力以及解決實際問題的能力進行檢驗。
整個實踐教學體系體現了循序漸進的要求,既有基礎性的驗證實驗,也有設計性和綜合性的實驗或實踐環節,在規模上有小、中、大,難度上有低、中、高;內容上既有基本要求,還有更高要求,并通過更高要求引導學生進行更深入地探討,體現實驗題目的開放性。另外還強調實踐環節與實際的緊密結合。
3 結語
編程能力和軟件能力是計算機專業本科創新人才必備的能力,也是他們未來職業生存和發展的基礎。加強學生程序能力和軟件能力的培養不僅符合計算機專業對人才專業能力的要求,而且也滿足就業市場對人才專業能力的期望。
研究不僅有益于信息科學技術學院計算機人才專業能力培養模式的創新,一定程度地豐富計算機教育領域關于人才專業能力培養的理論認識,而且在提高學生程序能力、軟件能力,提升學生專業素質和社會競爭力上有著十分重要的現實意義。
參考文獻:
[1]張海藩.軟件工程[M].5版.北京:清華大學出版社,2008:5.
[2]李文敬,劉之家,閉應洲,等,應用型本科計算機專業實踐教學體系的構建與實施[J].計算機教育,20ll(2):103-107.
[3]彭佳紅,彭佳文,拜戰勝.農科類計算機科學與技術專業課程群建設研究[J].高等農業教育,2010(3):66-67.
(見習編輯:劉麗麗)endprint