邱珊
(武漢華夏理工學(xué)院信息工程學(xué)院,武漢430223)
在武漢華夏理工學(xué)院,《Java Web 應(yīng)用開發(fā)》是針對軟件工程專業(yè)學(xué)生開設(shè)的一門專業(yè)核心課程。主要任務(wù)是培養(yǎng)學(xué)生具備利用Java 技術(shù)進行Web 系統(tǒng)開發(fā)的能力,讓學(xué)生對基于Java 的Web 應(yīng)用開發(fā)的基本思路和過程有一個全面的認(rèn)識和掌握。通過本課程的學(xué)習(xí),學(xué)生可以使用JSP+Servlet+JavaBean MVC 多層架構(gòu)和框架技術(shù)進行中小型Web 系統(tǒng)的設(shè)計與開發(fā)。
本課程是一門綜合性應(yīng)用性的技術(shù)性課程,是利用軟件工程的原理和方法對網(wǎng)頁設(shè)計技術(shù)、Web 前端技術(shù)、Java 服務(wù)器端編程技術(shù)、數(shù)據(jù)庫管理與編程技術(shù)的綜合運用?;诒菊n程的應(yīng)用性、綜合性和技術(shù)性,部分學(xué)生感覺課程難度較大。
本課程為職業(yè)技能課程,直接對應(yīng)Java Web 工程師職業(yè)崗位。本課程的性質(zhì)決定了該課程的講授以技術(shù)為主,必須結(jié)合大量的實例講解,必須要有程序的運行和演示。如果在傳統(tǒng)的多媒體教室中開展教學(xué),即使安裝有課程所需的開發(fā)環(huán)境和平臺,通過投影儀,程序的演示效果也只有坐在教室前兩排的學(xué)生能夠較好地體驗;如果按照知識點的順序采用傳統(tǒng)課堂教學(xué)來講授,對學(xué)生來說是空洞而抽象的;即使是按照知識點來組織實驗內(nèi)容,也是零散而孤立的,各個實驗之間缺乏關(guān)聯(lián),導(dǎo)致學(xué)生對課程學(xué)習(xí)目標(biāo)認(rèn)知不明確,部分學(xué)生學(xué)習(xí)被動,不愿或者不能動手,上機效果較差。
因此我們提出:探索教學(xué)模式的改革,本課程的講授將基于CDIO 工程教育模式,對傳統(tǒng)的以教師為主體的課堂教學(xué)進行改革,以學(xué)生為主體,以“項目驅(qū)動、邊講邊練”的方式組織教學(xué),采用全程機房授課的方式,使用業(yè)界流行的企業(yè)級開發(fā)環(huán)境和開發(fā)技術(shù),學(xué)生從被動學(xué)習(xí)變?yōu)橹鲃訉W(xué)習(xí),提高教學(xué)質(zhì)量,提升學(xué)生專業(yè)綜合素質(zhì),提升學(xué)生就業(yè)競爭力。
CDIO 工程教育模式是近年來國際工程教育改革的最新成果,CDIO 代表構(gòu)思(Conceive)、設(shè)計(Design)、實現(xiàn)(Implement)和運作(Operate),以現(xiàn)代工業(yè)產(chǎn)品從構(gòu)思研發(fā)到運行改良乃至終結(jié)廢棄的生命全過程指導(dǎo)工程教學(xué)過程[1]。
項目驅(qū)動教學(xué)模式建立在CDIO 教育模式基礎(chǔ)上,以完整的項目為教學(xué)案例,選擇合適的項目組織相關(guān)教學(xué)內(nèi)容[2]?;贑DIO 的項目驅(qū)動教育模式強調(diào)學(xué)生的主體地位,教學(xué)任務(wù)明確,整個課程的目標(biāo)就是在教師的指導(dǎo)下完成相關(guān)項目,學(xué)生在完成項目的過程中,主動學(xué)習(xí),將知識和技能相結(jié)合,提高解決實際問題的應(yīng)用能力。
本課題擬采用“項目驅(qū)動”的教學(xué)模式,按照軟件工程的原理、方法和技術(shù)完成從對一個功能相對完善的中小型軟件系統(tǒng)的需求分析、系統(tǒng)設(shè)計、編碼實現(xiàn)到系統(tǒng)測試的軟件系統(tǒng)生命周期的全過程。學(xué)生將受到軟件工程的工程思維訓(xùn)練和軟件工程相關(guān)技術(shù)的綜合訓(xùn)練。
將機房作為課堂,整個課堂設(shè)置在機房的環(huán)境中,凸顯了課程的實踐性和應(yīng)用性。教師通過機房教學(xué)網(wǎng)的教師端向?qū)W生講解概念和技術(shù)的應(yīng)用并進行程序的運行和演示;學(xué)生一般一人一機,通過教學(xué)網(wǎng)學(xué)生端軟件的使用,學(xué)生能夠清晰地看到教師所展示的PPT 內(nèi)容,觀察到教師敲寫代碼的完整過程,對概念的理解更清晰,對各知識點和技術(shù)點之間的關(guān)聯(lián)的理解更透徹,進而能夠掌握具體的應(yīng)用。在機房座位充裕的情況下,還可以做到學(xué)生一人二機,即學(xué)生使用一臺機器實時了解教師的講解和操作,而通過另一臺機器實時地跟隨教師敲寫代碼,學(xué)生的操作與教師同步。
在教師講完和演示完一個技術(shù)點/應(yīng)用點/功能模塊后,學(xué)生可以自己根據(jù)教師的講解完成相應(yīng)的任務(wù),有問題可及時與教師溝通解決,與教師有更多的面對面交流的機會;教師巡視學(xué)生的執(zhí)行情況,對每個學(xué)生的掌握情況都能及時了解,可及時對共性的問題進行進一步的講解和演示。在這種教學(xué)模式中,教師是規(guī)劃者,引導(dǎo)者,大方向的把握者,答疑者;而學(xué)生則是課堂的主體,學(xué)生主動的實踐的參與課堂,系統(tǒng)的細(xì)節(jié)由他們自己把控,系統(tǒng)最終全部由他們自己完成。
對于學(xué)生來說,在課程開始時目標(biāo)明確;在課程進行中有不斷的挑戰(zhàn),“我的系統(tǒng)我做主”的歸屬感、主人翁意識和責(zé)任感以及功能完成后的成就感;在課程完成后,面對自己開發(fā)的系統(tǒng),感覺成為“版權(quán)所有,侵權(quán)必究”的職場人。
(1)采用“項目驅(qū)動”的教學(xué)方法,學(xué)生受到軟件工程原理和方法的系統(tǒng)訓(xùn)練
按照項目的流程和功能以及軟件開發(fā)的生命周期來組織教學(xué)的內(nèi)容和次序,而不是按照傳統(tǒng)的課本章節(jié)及知識點的順序來組織教學(xué),將知識和技術(shù)貫穿到項目中講解和應(yīng)用。
在“項目驅(qū)動”教學(xué)模式中,教學(xué)項目的設(shè)計是整個教學(xué)的關(guān)鍵,項目的好壞直接影響到教學(xué)效果[3]。整個課程教學(xué)將完成一個難度適中的功能和流程具有示范性的中小型基于Java Web 的管理信息系統(tǒng)的設(shè)計與開發(fā),從該項目出發(fā),易于拓展到電子商務(wù)、博客、論壇等其他Web 系統(tǒng)的實現(xiàn)。
在項目流程上,先進行項目需求分析和概要設(shè)計,然后進行原型設(shè)計,即完成系統(tǒng)界面設(shè)計與模擬功能實現(xiàn),然后是數(shù)據(jù)庫連接與訪問,然后才能完成系統(tǒng)真正的功能實現(xiàn)。在功能實現(xiàn)上,能夠完成注冊、登錄以及信息的瀏覽、查詢、添加、更新、刪除等基本功能。每個功能模塊的實現(xiàn)都涉及到網(wǎng)頁設(shè)計+JSP+Servlet+Java Bean+數(shù)據(jù)表設(shè)計等多層內(nèi)容。
學(xué)生在項目的實施過程中,熟悉軟件開發(fā)的生命周期,掌握J(rèn)ava Web 開發(fā)技術(shù),受到“快速原型開發(fā)”、“迭代遞增開發(fā)”和“螺旋開發(fā)”等多種開發(fā)模式的綜合訓(xùn)練,學(xué)生的工程思維和系統(tǒng)思維能力得到培養(yǎng)和提高。
(2)通過“項目驅(qū)動,邊講邊練”達到“做中教,做中學(xué)”的教學(xué)效果
教師在講授的過程中,知識點和技術(shù)點一方面仍然采用傳統(tǒng)的PPT 的方式呈現(xiàn)給學(xué)生,另一方面,通過教師實時在項目中一行一行地敲入代碼來進行講解和演示知識點和技術(shù)點的應(yīng)用,教師“現(xiàn)場開發(fā)”、“做中教”。采用傳統(tǒng)的PPT 教學(xué)的好處是知識點和技術(shù)點比較完整,學(xué)生對整體的技術(shù)有一個宏觀的理解和把握,而教師對項目進行實時的設(shè)計和實施,能增加學(xué)生的感性認(rèn)識,幫助學(xué)生理解知識點和技術(shù)點的具體實現(xiàn)方式和步驟以及它們是怎樣關(guān)聯(lián)和整合在一起的,達到了CDIO 讓學(xué)生以主動的、實踐的、有關(guān)聯(lián)的方式學(xué)習(xí)工程的效果。
在教師完成某一模塊的講解和實現(xiàn)后,學(xué)生能進行相同模塊和類似的實現(xiàn)和擴展,達到“教師邊講,學(xué)生邊練”的教學(xué)效果。這樣的好處是學(xué)生在教師的指導(dǎo)下,一行一行鍵入代碼,系統(tǒng)完全是自己完成的,對相關(guān)的知識和技能融合貫通,學(xué)生能夠完全地理解自己所做的系統(tǒng),學(xué)生在“做中學(xué)”,提高了學(xué)生學(xué)習(xí)的主動性和積極性。這種主動的實踐的以有關(guān)聯(lián)的方式參與課堂,學(xué)生能夠關(guān)注細(xì)節(jié),關(guān)注過程,提高系統(tǒng)思維。
(3)課程內(nèi)容逐步累加遞增,項目功能逐步實現(xiàn),學(xué)生在壓力下自主學(xué)習(xí),對課程保持持續(xù)的興趣和動力
整個課程的教學(xué)目標(biāo)就是實現(xiàn)一個在線管理信息系統(tǒng)。項目的功能隨著課程的進展逐步推進、完善。學(xué)生每次上課之前都有期待,“今天做什么”,“怎么做出來”,對課程能夠保持持續(xù)的興趣。每次上課之后都有項目功能需要完成,加強理解,提高技能。因為課程的累加性質(zhì),前面內(nèi)容如果沒有掌握跟進,相關(guān)項目功能沒有實現(xiàn)完整,勢必影響后續(xù)內(nèi)容的掌握和項目的完成,學(xué)生保持在壓力下的學(xué)習(xí)狀況,更好地激發(fā)了學(xué)生的學(xué)習(xí)潛能。
學(xué)生遇到問題勢必要弄清楚原因,并尋求解決,不然下次課的內(nèi)容就沒有辦法跟進。另外教師只帶領(lǐng)學(xué)生完成項目核心模塊的實現(xiàn),其他模塊從需求到設(shè)計到界面到多層架構(gòu)到具體編碼和測試都需要學(xué)生自己完成。這個過程中,學(xué)生可能需要自己查閱資料,尋找網(wǎng)上資源,或者與教師或者同學(xué)進行溝通交流,提高了自主學(xué)習(xí)和溝通交流的能力,提高了學(xué)生對大系統(tǒng)的掌控能力。
(1)本課題將基于CDIO 的項目驅(qū)動教學(xué)模式應(yīng)用于實踐應(yīng)用類課程,課程教學(xué)目標(biāo)清晰,學(xué)生認(rèn)知目標(biāo)明確,在教學(xué)過程中,教師主導(dǎo),學(xué)生主體,教師是問題的規(guī)劃者、引導(dǎo)者,而學(xué)生是問題的解決者,課程教學(xué)效果顯著,具有一定的示范性和推廣性。
(2)采用企業(yè)級開發(fā)環(huán)境和技術(shù),學(xué)生受到軟件工程原理和方法的綜合訓(xùn)練,提高學(xué)生專業(yè)素養(yǎng)。本課程項目使用的MyEclipse Java Web 開發(fā)環(huán)境以及Microsoft SQL Server 數(shù)據(jù)庫管理系統(tǒng),都是企業(yè)級開發(fā)環(huán)境;講授的Java Web MVC 架構(gòu)也是企業(yè)級開發(fā)技術(shù),通過課程的講授,學(xué)生能夠熟練掌握這些開發(fā)工具和開發(fā)技術(shù),將來對于找工作有優(yōu)勢,在工作中也能夠更快地上手,更快地融入企業(yè)工作場景。
(3)在項目驅(qū)動的實施過程中,教師通過“現(xiàn)場開發(fā)”實現(xiàn)示范性功能模塊,實時地進行代碼的編寫和程序的運行演示,增加了學(xué)生的感性認(rèn)識,有助于學(xué)生理解不同知識點和技術(shù)點的關(guān)聯(lián)和綜合運用。
(4)教師使用屏幕錄制軟件按照系統(tǒng)流程和功能模塊的實現(xiàn)分別對講授內(nèi)容進行屏幕錄制,學(xué)生通過回放視頻,可以重現(xiàn)教師講授內(nèi)容以及逐行敲打代碼的場景,對不明確的地方可以隨時學(xué)習(xí),加強鞏固,受到學(xué)生的好評。
(5)改革考核方式,期末采用項目驗收+項目報告的方式進行考核。教師對每個學(xué)生的最終項目成果進行驗收,在驗收時教師會從界面設(shè)計,功能實現(xiàn),使用技術(shù)和數(shù)據(jù)處理等方面進行評定。在驗收過程中,首先肯定學(xué)生,指出亮點,也同時建設(shè)性地指出可以進一步改進的地方。不像卷面考核,通常學(xué)生見不到教師批改后的期末試卷,而采用現(xiàn)場驗收,學(xué)生直接聆聽教師的建議,明確自己的強弱,對學(xué)生起到更好的引導(dǎo)作用。
高等工程教育最終應(yīng)當(dāng)回歸工程[4],在《Java Web應(yīng)用開發(fā)》課程中應(yīng)用基于CDIO 的項目驅(qū)動模式,取得了較好的效果。
首先,這門課程以及之后的課程設(shè)計完成之后,學(xué)生已經(jīng)具備了獲得企業(yè)Java Web 實習(xí)崗位和進行后續(xù)畢業(yè)設(shè)計工作的能力。有不少學(xué)生在完成這門課程之后,找到了在諸如斗魚、永興元科技等公司的Java Web實習(xí)崗位并在實習(xí)結(jié)束后成功地得到了工作崗位。而后續(xù)的畢業(yè)設(shè)計質(zhì)量總體較高,學(xué)生就業(yè)也主要從事Java Web 工作,學(xué)生就業(yè)率得到提升。
另外,教師在項目驅(qū)動教學(xué)中,需要精心組織設(shè)計項目,需要“現(xiàn)場開發(fā)”,需要合理掌握課程的節(jié)奏和內(nèi)容,需要對學(xué)生進行現(xiàn)場實時的指導(dǎo),對教師的綜合素質(zhì)提出較高要求,教師需要持續(xù)的學(xué)習(xí)和充電。通過實施項目驅(qū)動教學(xué),教師的實踐能力和綜合素質(zhì)也得到提高。項目的實施也促進了教師教學(xué)研究改革,提高了教師教學(xué)研究水平。
基于CDIO 的項目驅(qū)動教學(xué)模式有利于提高軟件工程專業(yè)人才培養(yǎng)質(zhì)量,為應(yīng)用性本科軟件工程專業(yè)教學(xué)改革以培養(yǎng)新型復(fù)合型應(yīng)用型人才提出新思路。