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