

摘要:卓越計劃人才的重要特質之一是具備工程能力和創新能力,這些特質的培養是在專業課程教學過程中完成的。文章針對c++程序設計雙語教學中的困難和不足,探討以工程和實踐能力培養為核心的課程改革方案,提出采用重組知識體系、設計分層次案例、強化工程實踐、改革教學方法、加強過程考核等方法,培養學生的面向對象程序設計能力、工程化實踐能力以及創新和探索精神。
關鍵詞:卓越計劃;c++程序設計;工程案例;雙語教學;教學改革
0.引言
“卓越工程師教育培養計劃”(簡稱卓越計劃)是《國家中長期教育改革和發展規劃綱要(2010-2020年)》的重大改革項目,致力于面向工業界、面向世界和面向未來,培養造就一大批創新能力強和適應經濟社會發展需要的高質量各類型工程技術人才,促進我國從工程教育大國走向工程教育強國。卓越計劃旨在通過教育和行業、高校和企業的密切合作,以實際工程為背景,以工程技術為主線,著力提高學生的工程意識、工程素質和工程實踐能力,這是對我國高等工程教育提出的更高要求和挑戰。
1.課程背景分析
卓越計劃著力推行符合工程能力培養規律的學習方法,其課程設置和教學內容應該突出“工程”特色;而軟件工程專業的特色就在于跟蹤和掌握國際先進的軟件開發技術,注重實際軟件開發能力的培養,同時強調創新能力的養成。現有課程體系中,學生進行工程實踐的機會明顯不足,并且對企業工程項目的相關知識了解不夠。c++程序設計是軟件工程專業一門實踐性很強的專業基礎課,在整個課程體系中占有非常重要的地位,下接專業基礎教育,上承專業核心能力培養,可以為后繼專業核心課程的學習打下良好的基礎。
參與卓越計劃的學生為精心挑選的優秀學生,具有良好的基礎和較好的領悟能力,因此,針對雙語c++程序設計課程,教師可以從以下幾方面進行探索和改革,以培養學生的工程實踐能力和創新思維能力:①進一步精減教學內容,突出c++核心知識。由于c++程序設計是c語言的一個自然延伸,目前主流的教材都是由c切入,c語言語法知識占了大量篇幅,因此可采取刪減c語言知識以達到突出重點的目的。②改變傳統以講授為主的教學模式,引導學生自主學習,以探究的方式獲取知識和解決實際問題,培養創新意識。③根據教學進度,組建學生項目團隊,設計不同層次的工程案例,突出學生的個性化特質和團隊精神。④以培養學生的技術文檔閱讀能力為導向,組織雙語或者英語教學,避免詞匯和語法細節。⑤改變一張考卷決定命運的考核方式,強調教學環節中的過程考核,一者真正考出水平和能力,二者注重平時的學習實踐。
2.課程框架設計
按照卓越計劃和CDIO的教學理念,結合課程特點,對c++程序設計進行課程體系、教學內容、教學方法、實踐考核等方面的改革,可緊密圍繞卓越計劃的核心需求——52程實踐能力,構建新的理論與實踐相融合的課程體系,如圖1所示。
在新構建的課程體系中,橫向以教學環節劃分為教材、開發平臺和知識體系3個層次,包含教材的先進性、平臺的專業性和知識的系統性3個特點;縱向以知識體系劃分為理論和工程實踐兩條主線,貫穿各個教學環節,在重點知識單元結束時都有工程訓練項目,并且隨著時間的推移,項目中所涉及的c++內容逐步增多。這種課程體系架構的設計不僅可以解決c++程序設計內容龐雜和知識點分散、學生學習困難以及教學效果不理想的問題,而且能有效訓練學生運用C++解決實際工程問題的能力。
3.課程改革實踐
c++程序設計是軟件工程專業的一門主干專業基礎課程,主要介紹基本的面向對象程序設計技術(OOP),采用雙語教學,目的是提高學生閱讀英文文獻和使用英語處理計算機工程問題的能力,使學生了解面向對象程序設計的基本原理,學會使用面向對象的方法思考和分析問題。這更類似于人類的思維活動,可以使復雜現實問題更容易解決。
針對卓越班的特點,該課程基礎平臺采用更為專業的Linux操作系統,開發工具采用CodeBloeks或者Vim和g++。在課程的教學活動中,為了讓學生對軟件開發規范化方法、軟件開發流程、團隊合作、文檔寫作與成果展示、口頭書面交流等工程實踐環節有一個初步的體驗和認識,教師可根據c++程序設計課程的特點和工程背景,以工程實踐為主線,對理論和實踐教學體系進行重構,構建適合卓越計劃的突出工程能力培養的課程體系。
3.1重組教學內容,突出面向對象思想和方法
根據軟件工程專業卓越計劃人才培養方案,學生應在第1學期完成c語言程序設計的學習,掌握基本的結構化程序設計方法;在第2學期修讀c++課程,目的是學習面向對象程序設計方法和技術。考慮到C和c++的一致性以及普通班學生c語言的基礎,我們在普通班的c++課程教學大綱中設置16學時的C語言內容,占總學時的1/4,合計7章,占1/2;在卓越班的課程體系中將c語言知識降到6學時(見表1中下劃線學時),含2學時實踐,占總學時的1/10,進一步突出c++核心知識并留出大量時間給工程實踐,同時解決了c++學時緊張的問題。具體學時劃分見表1。
3.2分層次設計團隊項目實戰,強化軟件開發能力
C++程序設計的實驗教學往往以知識型和驗證型為主,設計型和綜合型較少。在實踐過程中,學生對知識掌握程度的訓練較多,對工程和設計能力的訓練較少。參與卓越計劃的學生均來自各專業的優秀學生,具有很好的學習和領悟能力,因此系統地設計分層次的團隊項目,更有助于學生工程和設計能力的培養。
教師可根據教學進度系統地設計多個不同層次的工程項目,采用循序漸進和逐步推進的方式構建一個階梯式的項目群,使上一階工程項目是基于下一階工程項目并且融入新的知識單元,形成—個由簡單到復雜、由模擬到真實的環環相扣的工程化培養過程,從而將工程實踐和團隊合作貫穿于整個教學過程,有效地訓練和提高學生的工程能力和設計能力。項目的實施以小組進行,每組選組長1名,成員3-5人,成員之間要有明確的任務和分工。在實施不同項目時,各個小組必須進行重新劃分,以保證學生在不同的項目中可以擔任不同的角色,擴展學生交流和溝通的范圍。
成績的評定采用分級方式,不僅比較符合實際的工作考核,而且可以減少任課教師的工作量。具體分為兩個類別:①組長/項目考核。任課教師對項目進行評定,并將評定結果作為組長成績。②成員考核。各小組長根據組內成員的表現給出每個人的成績權值,組長權值為1,其余成員權值不能高于組長。
3.3采用雙語教學,定位文檔閱讀
IT技術發展日新月異,變化極其迅速,對于知識的獲取顯得尤為重要。及時學習國外的先進知識和技術,開展對外學術交流也是卓越人才必備的重要能力。在南陽理工學院軟件工程專業卓越計劃的課程體系中,c++程序設計不僅承擔著培養學生利用面向對象技術進行程序設計的能力的任務,而且承擔著專業外語的教學任務,特別是專業文獻的閱讀。
該課程教材采用中外合編的《雙語版c++程序設計》,不僅具有英文的規范性和簡潔性,而且又適合中國學生的實際情況。主要有以下幾個特點:①以英文編寫,中文附后注,并不是全篇的翻譯,正適合學生作專業閱讀;②各知識章節均附有語法要點,便于復習和鞏固;③所有內容章節都包含常犯錯誤分析,適合初學者學習。這本教材在幫助初學者熟悉相關概念和內容的同時,還可以幫助學生熟悉和掌握基礎科技英文語法和專業詞匯。
為了突出英文閱讀能力的培養,教師可在教學過程中采用分階段教學法:①在第1-2周采用逐段串講方式,讓學生一是有一個適應的過程,二是了解科技文獻的基礎語法,三是熟悉一些基礎的計算機專業詞匯;②在第3-14周采用英語講授知識要點,對于核心知識和難點知識配以中文解釋;③在第15-16周進行科技文獻基礎語法及專業詞匯回顧,課外擴展閱讀,進一步鞏固學生所學的專業英語知識;④試卷采用中英文結構,要求英文試題比例不低于15%,根據課程開設的學期和學生基礎,也可提高該比例。
3.4引發學生主導討論,培養自主學習意識
在課程教學后期,學生有了一定的專業基礎。為了培養學生的自主探索和學習能力,不僅需要學生了解知識的來龍去脈,掌握知識的發展脈絡,而且要學生探究性地學習和研究教材之外的相關知識。通過自主學習,學生一方面可以增強對現有知識的理解,培養自我解決問題的能力;另一方面可以融會貫通地應用所學的理論知識解決實際的工程問題。
在教學活動的組織中,教師應打破傳統的以教師為主導的教學模式,采用以學生為主導的自主學習方式,充分調動學生的參與度和學習主動性;在學習討論的前2周,向學生布置討論的主題和任務,提出具體的要求。學習討論的主題范圍必須是課堂上沒有學過的,以保證學習過程的探究性和學習內容的新穎性。學生在學習過程中仍分小組并參考工程項目的分組和考核方法。
3.5加強過程考核,彰顯平時工夫
在課程考核上,教師應加大平時的過程和實踐考核,改革傳統的平時加試卷考核模式,建立以培養學生工程和實踐能力為主的教學評價體系,重點突出過程考核以及形式的多樣性,體現考核的客觀性和公正性。考核環節包括作業實驗(占20%)、工程實踐(占30%)和理論知識(占50%)三大類。作業實驗以正確性和獨立性作為考核的依據;工程實踐以學生演示和答辯為依據,從工作量、實用性、創新性、合作性、規范性等多個角度進行考評;學生主導的討論以任課教師評判為主,從內容的透徹性、實用性、條理性以及表現的活潑性方面進行考評;理論考試著重考查學生對基本概念的理解和對基礎知識的掌握,由平時作業和期末考試組成,并且期末考核采用教考分離的方式。
作業及課堂練習不僅可以有效地幫助教師了解教學實況,及時調整教學進度和教學方法,而且可以幫助學生了解自身學習過程中存在的問題,以有針對性地解決問題。實驗著重考查學生的基本動手能力,由實踐教學綜合管理平臺協助完成。工程實踐主要考查學生的工程能力、知識綜合運用能力以及解決實際問題能力,由任課教師以答辯形式檢查和驗收學生小組的項目。多元化考核可以激勵學生自主學習,從而全面提高教學質量。期末考試由經驗豐富的教師組成c++程序設計試卷命題組,負責統一命題并完善試題庫,以保證考試的客觀性和公正性。
4.教改效果
在新構建的課程體系中,通過精簡教學內容、強化工程案例、加強過程考核,以分層次的工程應用為主線培養學生的實踐能力以及解決簡單的結構化問題及復雜的應用項目問題,學生逐步掌握了面向對象程序設計的基本原理、概念和方法;通過精心設計的工程案例掌握了c++語言的基本知識以及基本的面向對象程序設計過程和技巧,具備了一定的面向對象程序設計能力,達到了課程的教學目的。
在新設計的課程體系中,層次化的工程實踐和自主學習過程不僅能夠有效地激發學生對工程知識的學習興趣,而且對培養學生在工程實踐中發現、研究和解決問題的能力有很大的幫助。這種工程實踐和創新能力的培養為學生今后在相關領域的工作和進一步的專業學習打下一個堅實的基礎,同時在一定程度上也提高他們的核心職業競爭力。調查問卷、學生反饋、考核等多個環節也證明了該課程體系的合理性和實用性,達到了預期的教學效果。
5.結語
南陽理工學院軟件工程專業作為第2批獲批卓越計劃的試點專業,在培養卓越工程師的核心能力——創新能力和工程實踐能力方面進行了積極的探索和大膽的嘗試,并結合卓越計劃制定軟件工程專業教學改革方案,滿足了本專業卓越工程師工程能力培養的需要。根據卓越計劃突出創新和工程實踐能力培養的要求,結合南陽理工學院軟件工程專業c++程序設計課程的實際,我們開展該門課程的理論教學、雙語教學、工程實踐、教學方法、過程考核等方面的改革與實踐,極大地調動學生學習的積極性和主動性,有效地培養學生的工程和團隊意識,逐步訓練學生利用c++解決實際問題的能力,為軟件工程專業卓越計劃的進一步實施進行了有益探索。