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