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