多年來,如何培養(yǎng)軟件技術(shù)人才所必須的實踐能力、工程能力和創(chuàng)新能力,一直是國內(nèi)高等教育面臨的課題。近年來,北京理工大學(xué)軟件學(xué)院充分發(fā)揮自身的機制優(yōu)勢進(jìn)行了有益的探索,通過調(diào)整課程體系、開設(shè)實踐課程、建設(shè)教學(xué)平臺、改進(jìn)課程內(nèi)容等有效手段,完成了由面向獨立課程的課程建設(shè)向課程體系建設(shè)的過渡,由突出理論教學(xué)向“實踐引領(lǐng)理論”教學(xué)的過渡。旨在培養(yǎng)高層次、實用型、復(fù)合型、具有國際競爭力的軟件工程型人才,使學(xué)生在思維創(chuàng)新的基礎(chǔ)上,提高技術(shù)創(chuàng)新和工程創(chuàng)新能力,提高軟件工程實踐和軟件工程管理能力。
1軟件領(lǐng)域工程型人才的培養(yǎng)目標(biāo)
我們培養(yǎng)的從事軟件設(shè)計與開發(fā)的工程型人才應(yīng)該是基礎(chǔ)扎實、理工結(jié)合、素質(zhì)全面、具有較強工程實踐能力和創(chuàng)新能力的人才。要使學(xué)生在軟件領(lǐng)域具有良好的科學(xué)素養(yǎng),較好地掌握計算機科學(xué)的基本理論和知識、軟件工程技術(shù)的基本技能與方法,掌握先進(jìn)的工程化方法、工具和技術(shù),能夠從事系統(tǒng)分析設(shè)計、開發(fā)和維護(hù)等工作。另外,培養(yǎng)的學(xué)生應(yīng)具有項目組織、管理能力,具有團(tuán)隊協(xié)作精神、技術(shù)創(chuàng)新能力和市場開拓能力,是高素質(zhì)、實用型、復(fù)合型、國際化的高級軟件工程技術(shù)人才和軟件工程管理人才[1]。
本科教育階段是培養(yǎng)工程型人才的重要階段,軟件領(lǐng)域的人才是以計算機科學(xué)與技術(shù)專業(yè)和軟件工程專業(yè)為基礎(chǔ)的,無論計算機科學(xué)與技術(shù)專業(yè),還是軟件工程專業(yè),都是實踐性和應(yīng)用性非常強的學(xué)科,理論教學(xué)與實踐的緊密結(jié)合,理論與工程應(yīng)用的緊密結(jié)合一直是培養(yǎng)高水平人才的關(guān)鍵之一。為了培養(yǎng)高素質(zhì)、高水平軟件領(lǐng)域的工程人才就必須在理論與實踐結(jié)合上下工夫,通過強化實踐教學(xué)來提高人才培養(yǎng)的質(zhì)量。為了達(dá)到這一培養(yǎng)目標(biāo),在本科教育階段應(yīng)該使學(xué)生具備以下四種能力:獨立獲取知識的能力、科學(xué)分析能力、組織管理能力和工程實踐能力。這四種能力相互聯(lián)系,相互促進(jìn)。
對于軟件領(lǐng)域工程型人才能力的培養(yǎng)要從本科一年級開始,貫穿于本科教學(xué)的始終,為了實現(xiàn)能力培養(yǎng)的目標(biāo),我們建立了針對本科教學(xué)的實踐課程體系,將全部實踐課程劃分為四個層次:基礎(chǔ)理論與基本技能訓(xùn)練、專業(yè)能力訓(xùn)練、工程訓(xùn)練和綜合訓(xùn)練。層次從低向高逐步過渡,以學(xué)生個體能力培養(yǎng)為主要目標(biāo)的基礎(chǔ)理論與基本技能訓(xùn)練和專業(yè)能力訓(xùn)練,為學(xué)生的專業(yè)發(fā)展打好基礎(chǔ);以團(tuán)隊合作能力為培養(yǎng)目標(biāo)的小組項目開發(fā)和工程訓(xùn)練,使學(xué)生在團(tuán)隊合作的背景下建立軟件的工程意識,培養(yǎng)團(tuán)隊合作精神、訓(xùn)練交流和溝通能力;以工程應(yīng)用能力為培養(yǎng)目標(biāo)的開發(fā)實習(xí)、畢業(yè)設(shè)計等綜合訓(xùn)練,全面培養(yǎng)學(xué)生的職業(yè)素養(yǎng)和工程意識;實現(xiàn)了從個體能力培養(yǎng)、團(tuán)隊合作與工程意識培養(yǎng)到職業(yè)素質(zhì)培養(yǎng)的全過程。實踐課程的層次和培養(yǎng)目標(biāo)的關(guān)系見圖1。
2實踐課程體系的指導(dǎo)思想與設(shè)置
在傳統(tǒng)的計算機類和軟件工程類的主要課程中均有相應(yīng)的課程實驗,這些實驗可以訓(xùn)練學(xué)生掌握基本實驗技能、使用開發(fā)工具、驗證基本理論或成熟算法,有利于培養(yǎng)學(xué)生的實驗?zāi)芰?、獨立工作能力和協(xié)作能力,但距離培養(yǎng)出高水平、高素質(zhì)的工程型人才的要求還有相當(dāng)?shù)牟罹啵剿餍碌膶嶒灲虒W(xué)的指導(dǎo)思想是建立實驗教學(xué)體系的關(guān)鍵,對實驗教學(xué)的內(nèi)容、方法、手段、隊伍、管理及實驗教學(xué)模式的改革與創(chuàng)新將成為實驗教學(xué)體系的有利支撐。根據(jù)當(dāng)前技術(shù)發(fā)展對于軟件類工程型人才的能力結(jié)構(gòu)要求和知識結(jié)構(gòu)要求,緊密結(jié)合軟件學(xué)院自身條件和特點,經(jīng)過幾年的摸索與實踐,以市場需求和技術(shù)發(fā)展趨勢為導(dǎo)向,逐步建立了一套理論與實踐緊密結(jié)合、以能力培養(yǎng)為核心、綜合技能訓(xùn)練為輔助的實踐課程體系。
建立實踐教學(xué)體系的基本指導(dǎo)思想是:將軟件的工程化思想貫穿于整個教學(xué)體系,逐步培養(yǎng)學(xué)生工程意識;以實踐能力培養(yǎng)引領(lǐng)理論教學(xué),建立與理論教學(xué)緊密聯(lián)系的系列實踐課程;將培養(yǎng)學(xué)生的獨立獲取知識的能力、科學(xué)分析能力、組織管理能力和工程實踐能力滲透到每一門實踐課程之中。
新建立的實踐類課程體系如圖2所示。圖中用粗線框起來的課程為新開設(shè)的實踐性課程。
整個實踐類課程體系具有以下特點:
2.1通過“實踐-理論-再實踐”實現(xiàn)“以實踐能力培養(yǎng)引領(lǐng)理論教學(xué)”
多年的教學(xué)實踐和思考使我們認(rèn)識到,在學(xué)習(xí)計算機專業(yè)知識的過程中,應(yīng)該先使學(xué)生通過實踐積累一定的感性認(rèn)識,在實踐經(jīng)驗積累到一定程度后通過系統(tǒng)的理論學(xué)習(xí),將感性認(rèn)識上升到理性高度,然后再通過實踐驗證理論、豐富理論,使理論指導(dǎo)下的實踐在新的高度進(jìn)行再一次的感性積累。因此,“以實踐能力培養(yǎng)引領(lǐng)理論教學(xué)”是新的教學(xué)計劃中堅持的基本原則,在理論性課程之前增設(shè)必要的實踐性課程。例如,“程序設(shè)計方法與實踐”先于數(shù)據(jù)結(jié)構(gòu)、算法分析與設(shè)計課程從應(yīng)用的角度提出理論問題;“操作系統(tǒng)基礎(chǔ)實習(xí)”從應(yīng)用的角度為學(xué)習(xí)操作系統(tǒng)原理積累經(jīng)驗;“應(yīng)用系統(tǒng)設(shè)計與實踐”為數(shù)據(jù)庫原理、計算機網(wǎng)絡(luò)提供應(yīng)用背景。同時,專門設(shè)立具有階段總結(jié)和綜合性質(zhì)的“軟件基礎(chǔ)實習(xí)”和“軟件開發(fā)過程綜合實訓(xùn)”,通過實踐開闊學(xué)生視野,給理論一個發(fā)揮的空間,鍛煉學(xué)生的團(tuán)隊意識和工程意識。
這樣“實踐-理論-再實踐”的學(xué)習(xí)過程,使整個教學(xué)過程成為一個有機的整體,使相對獨立的各門課程通過實踐聯(lián)系在一起。
2.2將軟件工程思想貫穿于整個教學(xué)體系
培養(yǎng)軟件工程意識,使工程化思想成為學(xué)生從事軟件開發(fā)工作的行動指南并不是一件容易的事情。在傳統(tǒng)的教學(xué)過程中,軟件工程往往是一門獨立的理論性課程,學(xué)生們認(rèn)為軟件工程就是一些條條框框。缺乏實踐經(jīng)驗,缺乏合作開發(fā)軟件的感性體會,使得學(xué)生在學(xué)習(xí)過程中難于理解軟件工程的精髓。
在新的課程體系中,軟件工程的思想貫穿于整個教學(xué)的始終。從第一門計算機入門課程“計算機科學(xué)導(dǎo)論”起,就開始灌輸軟件工程的基本思想;結(jié)合在低年級開設(shè)“個體軟件過程”和“小組軟件過程”等任選課,通過實踐課程使學(xué)生在系統(tǒng)學(xué)習(xí)軟件工程理論之前就先對軟件需求分析、軟件設(shè)計、軟件測試、進(jìn)度控制、軟件質(zhì)量、成本控制、文檔管理、團(tuán)隊合作等有一個感性的認(rèn)識,使學(xué)生從低年級就開始接觸并了解軟件工程,并具有初步的程序開發(fā)經(jīng)驗,進(jìn)而使學(xué)生在系統(tǒng)學(xué)習(xí)軟件工程理論時就可以結(jié)合自己的切身體會,完成從經(jīng)驗積累的感性認(rèn)識、到系統(tǒng)理論提升的過程。之后再通過實訓(xùn),用軟件工程的理論來指導(dǎo)軟件開發(fā),最終使學(xué)生具備獨立完成需求分析、建模、設(shè)計、代碼編寫、測試、部署全過程的經(jīng)驗、理論和能力。
2.3分層次設(shè)立獨立的實踐課程,逐步提升工程能力
根據(jù)實踐課程的難度和教學(xué)目標(biāo),將實踐課程劃分為四個層次:基礎(chǔ)理論與基本技能訓(xùn)練、專業(yè)能力訓(xùn)練、工程訓(xùn)練和綜合訓(xùn)練[2]。
(1) 基礎(chǔ)理論與基本技能訓(xùn)練培養(yǎng)學(xué)生基本的分析問題能力和基本的編程能力,進(jìn)行編程入門?;A(chǔ)理論訓(xùn)練培養(yǎng)學(xué)生面對實際應(yīng)用進(jìn)行需求分析、綜合運用基本理論的能力,通過從實際應(yīng)用中提出的簡單工程問題體驗工程項目的開發(fā)過程。
(2) 專業(yè)能力訓(xùn)練是結(jié)合各個專業(yè)課程,有針對性地完成各項實踐。
(3) 工程訓(xùn)練是在軟件工程理論的指導(dǎo)下,以典型的實訓(xùn)項目或?qū)嶋H的工程項目為背景,進(jìn)行軟件開發(fā)過程訓(xùn)練,體驗完整的軟件開發(fā)全過程。
(4) 綜合訓(xùn)練是通過實際應(yīng)用項目使學(xué)生參與實際項目開發(fā)。
在新的課程體系中,通過實踐課程使學(xué)生逐步完成“個體能力培養(yǎng)-小組項目合作-工程項目開發(fā)”的能力訓(xùn)練過程。
2.4強化理論課程的實踐環(huán)節(jié),新增實踐課程采用“1+1”教學(xué)模式
理論教學(xué)在傳統(tǒng)的教學(xué)體系中已經(jīng)形成了比較完整的體系,各門課程在理論上已經(jīng)相對完整和成熟,在教學(xué)方法上也積累了較豐富的經(jīng)驗,新的實踐教學(xué)體系要在保持原有理論課程體系完整性的前提下,進(jìn)行調(diào)整和充實。
從整體而言,在理論課程中要繼續(xù)保持原有的理論特色和深度,針對具體的知識點開展驗證性的實驗,充實原有的實驗內(nèi)容,提高實驗難度要求。通過研究課程之間的聯(lián)系,刪除重復(fù)內(nèi)容,適當(dāng)壓縮理論課程的教學(xué)學(xué)時,加大不同課程實驗之間的難度差異,使得不同課程在實驗上可以相互協(xié)調(diào)和銜接。
在設(shè)置實踐系列課程時,堅決避免原有理論課程中驗證性實驗的簡單“搬家”。主要的實踐課程要與理論教學(xué)課程密切配合,采用“1+1”模式,即“實踐課程+理論課程”的模式。與理論課程相配合的實踐性課程以設(shè)計性、綜合性、大型實驗為主,一般為2學(xué)分32學(xué)時,其中教師課上集中指導(dǎo)或講授僅在8學(xué)時左右。實踐課程要強調(diào)對學(xué)生實踐創(chuàng)新能力和自學(xué)能力的培養(yǎng),無論是個體的實踐題目還是小組的協(xié)同實踐,課程中涉及的技術(shù)和設(shè)計方法均有一部分是學(xué)生還沒有接觸到的,學(xué)生需要通過自學(xué)來掌握,實踐的結(jié)果則強調(diào)創(chuàng)新性,鼓勵學(xué)生把各課程和自學(xué)的知識融合起來,并結(jié)合社會的真實需求(課程中作適當(dāng)?shù)暮喕?創(chuàng)造性地從系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、程序技術(shù)等方面提出自己的觀點,以全局架構(gòu)、時空效率、功能等進(jìn)行評價,變“教師主導(dǎo)”為“學(xué)生主導(dǎo)”。
2.5對技術(shù)課程進(jìn)行分類,引導(dǎo)學(xué)生進(jìn)行系統(tǒng)學(xué)習(xí)
計算機技術(shù)日新月異,新技術(shù)新方法不斷出現(xiàn),如何能夠較為系統(tǒng)地掌握不同的技術(shù)路線,或者把握不同技術(shù)路線的差異,對于學(xué)生來說是比較急迫的問題。我們在教學(xué)計劃的設(shè)置上,針對不同的技術(shù)路線,對技術(shù)課程進(jìn)行了分類[3],開設(shè)了專業(yè)基礎(chǔ)、JAVA、微軟、LINUX、電子商務(wù)、嵌入式開發(fā)、軟件理論、媒體技術(shù)、網(wǎng)絡(luò)與安全、游戲開發(fā)等系列課程,引導(dǎo)學(xué)生能在不同路線上進(jìn)行較為系統(tǒng)的學(xué)習(xí)。同時根據(jù)技術(shù)的發(fā)展,我們也適時對課程大綱進(jìn)行調(diào)整,把軟件領(lǐng)域的最新發(fā)展反映到課程中。
3新開設(shè)的實踐系列課程簡介
在新的課程體系中,主要開設(shè)的實踐性課程介紹如下。
3.1程序設(shè)計方法與實踐
“程序設(shè)計方法與實踐”是針對低年級學(xué)生開設(shè)的第一門實踐類課程。在學(xué)生掌握了C語言的基礎(chǔ)上,培養(yǎng)學(xué)生個體的編程能力。通過設(shè)置具有實際背景的題目,使學(xué)生經(jīng)歷問題抽象、建立數(shù)學(xué)模型、算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計、編程調(diào)試等過程,通過具有實際背景的題目使學(xué)生在理論學(xué)習(xí)之前就從應(yīng)用的角度開始接觸線性表、隊列和棧等數(shù)據(jù)結(jié)構(gòu),開始接觸一些復(fù)雜的算法。課程讓學(xué)生從編寫長度為幾十行的代碼起步,逐步達(dá)到能夠編寫300行以上C語言程序的水平,具備基本的編程能力和良好的編程習(xí)慣,逐步鍛煉學(xué)生自學(xué)能力和問題抽象能力。
3.2用戶界面設(shè)計基礎(chǔ)
“用戶界面設(shè)計基礎(chǔ)”是針對低年級學(xué)生的設(shè)計性實驗。使學(xué)生初步掌握LINUX或DOS字符方式下開發(fā)用戶界面的主要技術(shù),以及Windows環(huán)境下圖形用戶界面的開發(fā)方法。使學(xué)生初步體驗用戶界面設(shè)計的重要性和設(shè)計技術(shù),體會用戶界面將是用戶需求的重要部分,理解“用戶的軟件才是我的軟件”。本課程與程序設(shè)計方法與實踐主要側(cè)重于個體能力的培養(yǎng)。
3.3軟件基礎(chǔ)實習(xí)
“軟件基礎(chǔ)實習(xí)”是為具有一定數(shù)據(jù)結(jié)構(gòu)理論基礎(chǔ)的學(xué)生開設(shè)的綜合性實踐課程,是對前期課程(C語言程序設(shè)計,數(shù)據(jù)結(jié)構(gòu)與算法,面向?qū)ο蟪绦蛟O(shè)計和用戶界面設(shè)計基礎(chǔ))的一次綜合實習(xí),是對軟件工程的第一次實踐。實習(xí)采用開發(fā)小組開發(fā)方式,通過設(shè)計一些超越學(xué)生當(dāng)時已有知識水平的問題,例如具有操作系統(tǒng)背景、人工智能背景、編譯背景、數(shù)據(jù)庫背景的問題,引導(dǎo)學(xué)生進(jìn)行自主學(xué)習(xí),通過小組內(nèi)協(xié)作開發(fā),完成一個至少2 000行的小型系統(tǒng)。學(xué)生在小組內(nèi)進(jìn)行簡單分工,并進(jìn)行角色互換,初步體會軟件開發(fā)過程,鍛煉學(xué)生獨立獲取知識的能力、科學(xué)分析能力和團(tuán)隊合作與溝通能力。
3.4應(yīng)用系統(tǒng)設(shè)計與實踐
“應(yīng)用系統(tǒng)設(shè)計與實踐”以低年級學(xué)生為對象,以學(xué)生已經(jīng)熟悉的簡單的業(yè)務(wù)系統(tǒng)為背景,采用開發(fā)小組的形式,開發(fā)網(wǎng)上數(shù)據(jù)庫應(yīng)用系統(tǒng)(如網(wǎng)上購物系統(tǒng),圖書借閱系統(tǒng),學(xué)生成績管理,BBS等),引導(dǎo)學(xué)生自主學(xué)習(xí)相關(guān)技術(shù)和知識(數(shù)據(jù)庫設(shè)計、網(wǎng)絡(luò)程序開發(fā)等),體會應(yīng)用軟件架構(gòu)的重要性,鍛煉學(xué)生獨立獲取知識的能力和團(tuán)隊合作精神。
3.5操作系統(tǒng)基礎(chǔ)實習(xí)
“操作系統(tǒng)基礎(chǔ)實習(xí)”以當(dāng)前流行的操作系統(tǒng)Windows和Linux為背景,選擇具有應(yīng)用性質(zhì)的課題,從應(yīng)用系統(tǒng)開發(fā)者的角度學(xué)習(xí)和研究操作系統(tǒng),通過系統(tǒng)調(diào)用來使用操作系統(tǒng)提供的各種功能,區(qū)別于傳統(tǒng)的操作系統(tǒng)原理理論性為主的課程。通過對操作系統(tǒng)的認(rèn)識,初步掌握軟件部署的方法。上述課程也開始培養(yǎng)團(tuán)隊合作精神。
3.6專業(yè)能力訓(xùn)練系列課程
“專業(yè)能力訓(xùn)練”定位在設(shè)計性和綜合性實驗,與相應(yīng)的理論教學(xué)配合。在實踐課程設(shè)置上考慮計算機軟、硬件的有機結(jié)合,開設(shè)了“嵌入式系統(tǒng)開發(fā)”,在軟件與硬件緊密結(jié)合的背景下強化學(xué)生的系統(tǒng)意識。為了使學(xué)生在校期間就可以接觸并了解當(dāng)前的流行技術(shù),專門開設(shè)以.NET技術(shù)或JAVA技術(shù)為背景的實踐課程;通過增加Linux平臺實踐內(nèi)容,全方位培養(yǎng)學(xué)生的專業(yè)技能,拓寬學(xué)生視野,為學(xué)生今后的自主確立專業(yè)方向打好基礎(chǔ)。這些課程強調(diào)從系統(tǒng)高度來認(rèn)識計算機,從軟、硬件兩個角度看待系統(tǒng)架構(gòu)。
3.7軟件開發(fā)過程綜合實訓(xùn)
“軟件開發(fā)過程綜合實訓(xùn)”是以企業(yè)成熟的軟件開發(fā)模型為基礎(chǔ),選擇企業(yè)根據(jù)實際軟件系統(tǒng)精選的案例對學(xué)生進(jìn)行工程訓(xùn)練。學(xué)生以開發(fā)團(tuán)隊形式,按照步驟在規(guī)定的時間點完成規(guī)定的任務(wù),體驗從需求分析建模(需求由案例給出)、設(shè)計、代碼編寫、測試、部署的軟件工程全過程。使學(xué)生熟悉企業(yè)化軟件開發(fā)流程,具備直接進(jìn)入企業(yè)進(jìn)行開發(fā)的能力。實訓(xùn)模擬企業(yè)運作機制,模擬企業(yè)中實際存在的項目壓力和工作壓力,以考勤和項目的進(jìn)度檢查點進(jìn)行監(jiān)控,以項目開發(fā)結(jié)果進(jìn)行最后考核。學(xué)生將體會項目經(jīng)理、設(shè)計人員、編碼人員、測試人員等各個角色的工作,培養(yǎng)學(xué)生職業(yè)精神、組織管理能力和設(shè)計綜合能力。
4實踐類課程對現(xiàn)有教學(xué)的影響
4.1實踐課程與理論課程相互支撐,相互促進(jìn),形成新的課程體系
新建立的實踐類課程使得傳統(tǒng)的理論教學(xué)課程體系發(fā)生了較大的變化。在我國傳統(tǒng)的計算機科學(xué)與技術(shù)專業(yè)或軟件工程專業(yè)的課程體系中,是以知識點為基本單位構(gòu)建課程,重視基礎(chǔ)理論的抽象和學(xué)習(xí),忽視理論的應(yīng)用背景和實現(xiàn)技術(shù);重視獨立課程自身的實驗過程,缺乏覆蓋不同課程、串聯(lián)不同知識的綜合性實驗;更多的是融合在理論課程中的驗證性實驗,沒有針對創(chuàng)新性能力培養(yǎng)的獨立課程。
在新的課程體系中,加強了低年級的專業(yè)基礎(chǔ)課程,使學(xué)生首先了解應(yīng)用背景,并盡可能早地接觸專業(yè)內(nèi)容,在低年級就完成“計算機科學(xué)導(dǎo)論-C語言程序設(shè)計-程序設(shè)計方法與實踐-用戶界面設(shè)計基礎(chǔ)-離散數(shù)學(xué)-數(shù)據(jù)結(jié)構(gòu)與算法-面向?qū)ο蠓治雠c設(shè)計-軟件基礎(chǔ)實習(xí)”這樣相對完整的理論教學(xué)與實踐教學(xué)緊密結(jié)合的專業(yè)基礎(chǔ)教育課程體系,進(jìn)而為后續(xù)的理論學(xué)習(xí)與提高打下良好基礎(chǔ)。在這個體系中,遵循“實踐—理論—再實踐”的循環(huán)方式,學(xué)生通過初步的實踐,積累必要的感性認(rèn)識,再通過理論學(xué)習(xí),通過新的實踐課程提出新的問題,學(xué)生通過自學(xué)和教師引導(dǎo)解決問題,并總結(jié)出理論上的欠缺進(jìn)入新的理論課程,在這個螺旋式上升過程中,最大程度保持學(xué)生的興趣并使之能克服較大的自學(xué)和思維壓力,變學(xué)習(xí)壓力為學(xué)習(xí)動力,引領(lǐng)學(xué)生的獨立思考能力。
4.2實踐類課程對教學(xué)模式、教學(xué)方法提出新的要求,為學(xué)生發(fā)揮創(chuàng)造性提供可能
要保證實踐類課程的教學(xué)效果,防止實踐類課程蛻變?yōu)槔碚摻虒W(xué),對于實踐類課程必須有新的教學(xué)理念、講授模式和課程管理機制。
教師首先要完成教學(xué)觀念的轉(zhuǎn)變,在教學(xué)過程中絕對不能再是“教師講授學(xué)生聽”的傳統(tǒng)模式,要樹立幫助學(xué)生自主學(xué)習(xí)、啟發(fā)學(xué)生創(chuàng)造性思維的觀念,以啟發(fā)式教學(xué)和研究性學(xué)習(xí)為核心。在教學(xué)方法上,要采用全新的教學(xué)方式,教師不再講述實驗的步驟和細(xì)節(jié),不再講授原理和概念,而是將重點放在講解題目(項目)的背景(實驗需求)上,即向?qū)W生明確應(yīng)用的背景、實驗?zāi)康摹⑵谕吹降慕Y(jié)果、實驗的具體的參數(shù)和指標(biāo)要求。同時適當(dāng)點出實驗中可能涉及到的知識,然后由學(xué)生自己進(jìn)行理論分析,自己建立問題的模型,自己掌握開發(fā)進(jìn)程。
教師在實踐類課程中已經(jīng)不再是傳統(tǒng)的課堂講授者,教師更像一位工程項目的經(jīng)理,負(fù)責(zé)提出項目的要求、檢查項目(學(xué)生)的開發(fā)進(jìn)度、監(jiān)督開發(fā)過程、評定軟件質(zhì)量。在課堂集中教學(xué)中,教師又像一位主持人,召開的是項目進(jìn)度匯報會、技術(shù)交流會、軟件演示會等。
對技術(shù)上或設(shè)計架構(gòu)上有相同的課程,我們鼓勵一些學(xué)生能以一個較大的項目貫穿始終,能逐漸把小系統(tǒng)完善成大系統(tǒng),提高學(xué)生的成就感和榮譽感,提升學(xué)生的自信心;對題目難度類似的課程,我們鼓勵學(xué)生采用不同的架構(gòu)和技術(shù)環(huán)境,擴大學(xué)生的知識面,培養(yǎng)學(xué)生的創(chuàng)新能力。
新的實踐類課程為學(xué)生開辟了更廣闊的思考空間,激發(fā)了學(xué)生的學(xué)習(xí)興趣和潛能,培養(yǎng)了學(xué)生的團(tuán)隊協(xié)作意識和創(chuàng)新精神。不少學(xué)生們在實際課程中完成的算法設(shè)計,或者采用的理論指導(dǎo)出乎教師的意料,這對于教師同樣是促進(jìn)和挑戰(zhàn)。
4.3網(wǎng)絡(luò)教學(xué)支撐平臺延展課堂空間,為學(xué)生自主學(xué)習(xí)、師生交流提供新的途徑
通過建立有效的網(wǎng)絡(luò)教學(xué)支撐平臺,為教學(xué)提供了有利的輔助工具。教學(xué)支撐平臺具有信息發(fā)布、布置多種形式的作業(yè)、C/C++/JAVA源程序自動測試、在線答疑和討論等功能,為主講教師、輔導(dǎo)教師、學(xué)生和訪客提供不同的權(quán)限。網(wǎng)絡(luò)教學(xué)支撐平臺支持多門課程,既解決了教學(xué)資源共享等一系列問題,同時也將傳統(tǒng)的“以教師為中心”的教學(xué)模式,轉(zhuǎn)變?yōu)椤耙詫W(xué)生為中心,在教師指導(dǎo)下的主動學(xué)習(xí)”模式,有效地達(dá)到了教學(xué)互動、教學(xué)相長的良好效果。同時網(wǎng)絡(luò)教學(xué)支撐平臺也遵循軟件工程的原則,在關(guān)鍵點設(shè)置時間節(jié)點以考察學(xué)生,把軟件工程的思想融入教學(xué)管理。
5結(jié)論
自2002年起,我們從單門課程的改革開始,逐步建立了實踐課程體系,通過教學(xué)實踐發(fā)現(xiàn)問題,再進(jìn)行調(diào)整和充實,逐步完成了具有可操作性、行之有效的實踐課程體系,新設(shè)立的實踐類課程與理論課程有機結(jié)合,縮短了理論教學(xué)與工程應(yīng)用的距離,實踐課程與理論教學(xué)相結(jié)合,并已收到良好的教學(xué)效果。
參考文獻(xiàn)
[1]教育部高等學(xué)校計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會,高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)[M].北京:高等教育出版社,2006,254-255,264-265.
[2]陳朔鷹,李志強,李仲君. 軟件工程實踐類課程體系的建設(shè)與探索[J]. 北京理工大學(xué)學(xué)報(社會科學(xué)版),2007,9(S1):85-88.
[3]北京理工大學(xué)教務(wù)處. 北京理工大學(xué)本科教學(xué)概覽[R]. 北京:北京理工大學(xué),2006,243-254.