張曉剛
摘要:JavaEE是目前最流行的企業(yè)級Web開發(fā)標準,也是一個極為復雜的技術體系。如何有效地提升JavaEE課程實踐的教學效果一直是我們思考的問題。文章借鑒工程教育的先進理念并結合JavaEE技術特點,提出項目進階驅動的實踐教學模式,詳細介紹教學設計及實施辦法,為高校JavaEE課程實踐教學改革探索提供有益的借鑒。
關鍵詞:JavaEE;課程實踐;教學模式;改革
0.引言
作為分布式多層級企業(yè)應用系統(tǒng)開發(fā)的事實標準,JavaEE是目前最流行的Web應用開發(fā)技術體系。JavaEE及其開發(fā)環(huán)境是為暨南大學計算機系各專業(yè)高年級學生開設的一門實踐性綜合性很強的選修課程。課程要求學生在理解JavaEE體系結構及相關知識的基礎上,重點掌握JavaServlet、JSP、JDBC、EJB、JSF JavaEE企業(yè)應用開發(fā)的JPA框架等主流技術,為即將步人工作崗位的大學畢業(yè)生打下堅實的技能基礎。
本課程采用理論教學與實驗教學相結合的教學方式,其中實驗教學通過9個學時的實踐環(huán)節(jié)完成。實驗內容主要依據理論教學的章節(jié)設置,雖然最后安排了JavaEE綜合應用開發(fā)的內容,但存在著相互聯(lián)系不夠緊密、實驗整體性不強的缺點?,F(xiàn)有的實踐教學模式無法充分調動學生的學習積極性和主動性,課程的實踐教學效果并不理想。如何在有限的學時內通過實踐教學模式改革提升學生的JavaEE應用開發(fā)能力,是筆者所要思考和解決的問題。
1.基于工程項目的教學模式
目前,國內許多高校的計算機專業(yè)都引入了基于CDIO模式的課程教學改革,提出了相應的課程改革實踐方案。CDIO工程教育模式是近年來國際工程教育改革的先進成果,CDIO代表構思(conceive)、設計(design)、實施(implement)和運行(operate)。CDIO教育模式是以工程項目為載體組織教學,讓學生通過工程項目來學習知識,能夠充分發(fā)掘學生的創(chuàng)造潛能,提高其解決實際問題的能力。與此同時,教師在構思設計課程項目的過程中,也會對所授課程有更深層次的理解,從而促進教學效果的提升。
JavaEE是一門綜合性強、實踐性高的技術類課程,在校大學生往往缺乏實際軟件項目的鍛煉,難以理解JavaEE相關技術的實現(xiàn)原理,更無法靈活應用該技術。CDIO教育模式正好契合了JavaEE課程的牦點,非常適合JavaEE課程的實踐教學。
1.1確定項目
基于項目的JavaEE課程實踐首先需要確定一個綜合設計型題目。選課學生以小組形式完成項目任務,組長充當項目經理角色,組內成員在組長的協(xié)調下共同完成項目。
該課程提供了一個課程設計項目庫,每個小組可以自行從中挑選感興趣的項目,也可以另外確定開發(fā)項目。另立項目需要經過調研確定系統(tǒng)的主要功能及實現(xiàn)方式,并形成項目立項報告。報告提交給課程教師審核,審核通過即可成為小組的開發(fā)項目。課程設計項目庫通過不斷添加以往的典型開發(fā)項目得以擴展。
1.2設計系統(tǒng)
項目小組在確定了項目題目后,就要制訂項目開發(fā)計劃,進行組員任務分工,然后使用面向對象方法及工具完成軟件系統(tǒng)的需求分析和設計?;贑DIO的綜合項目開發(fā)以系統(tǒng)觀念為指導,努力營造真實的職業(yè)環(huán)境。在這個階段,學生需要提交需求分析報告、概要設計、詳細設計以及開發(fā)測試計劃。
JavaEE課程以網上書店系統(tǒng)作為項目開發(fā)示范案例,讓案例驅動模式和小組團隊協(xié)作方式貫穿整個項目開發(fā)教學實踐。在該階段中,學生應該以“確定系統(tǒng)功能,劃分功能模塊以及完成詳細設計”為系統(tǒng)設計主線,充分理解和掌握JavaEE相關技術和開發(fā)工具,提高協(xié)作精神、系統(tǒng)組織及開發(fā)能力。
1.3實現(xiàn)系統(tǒng)
該階段的主要任務是根據前面的系統(tǒng)設計進行系統(tǒng)實現(xiàn),學生需要提交軟件說明書、源代碼及系統(tǒng)測試報告。JavaEE的項目實踐采用NetBeans或MyEclipse作為系統(tǒng)開發(fā)環(huán)境,使用MySQL或Oracle作為數(shù)據庫服務器。在開發(fā)過程中,項目劃分為若干個獨立模塊并按照小組任務分工計劃分配給小組成員,之后再將獨立模塊集成為完整的項目,程序代碼需要使用軟件版本控制工具CVS進行控制。小組每個成員需要以文檔的形式上報工作計劃及工作總結,組長負責監(jiān)督各個成員的任務完成情況并掌握整個項目的進度,教師主要負責答疑和指導工作。
1.4系統(tǒng)運行及評價
系統(tǒng)運行及評價主要通過運行開發(fā)完成的系統(tǒng)對項目任務進行整體評估。在這個階段,每個小組都要對完成的項目進行答辯,指導教師對每個小組及其成員的表現(xiàn)進行點評,最后基于課程實踐評分標準為每個學生評分。
JavaEE課程實踐環(huán)節(jié)的考核標準見表1,主要從平時成績和項目成績兩個方面進行考核,在項目考核中又細分為團隊設計和個人開發(fā)兩個方面。這樣的多元化考核評價體系可以對項目小組及成員做出公正的評價,也將有力地促進學生職業(yè)素質、職業(yè)態(tài)度和職業(yè)習慣的養(yǎng)成。
2.項目開發(fā)的進階驅動設計
根據JavaEE課程大綱及其技術規(guī)范,可以將JavaEE開發(fā)技術劃分為JavaEE開發(fā)環(huán)境配置、Servlet和JDBC技術、JSP與自定義標簽技術以及JSF+EJB+JPA框架開發(fā)技術。因此,在基于項目的課程實踐教學模式下對項目開發(fā)過程進行進階驅動設計。
2.1項目案例選取
根據JavaEE課程實踐對項目案例需求的分析,在對比了多個典型的工程項目及其特點之后,我們選取了網上書店系統(tǒng)作為項目案例。這個系統(tǒng)是對當前主要網上書店系統(tǒng)(如當當網、卓越網)的簡化,并保留了其公共核心功能,主要包括:
(1)對于普通用戶,主要是書籍分類瀏覽、搜索書籍及用戶注冊。
(2)對于登錄用戶,主要是查找書籍、網上購書及訂單查詢。
(3)對于系統(tǒng)管理員,主要是用戶管理、書籍管理及訂單管理。
學生對這樣的案例功能非常熟悉并且容易理解,系統(tǒng)功能相對集中且實現(xiàn)規(guī)模小,方便采用不同技術重新實現(xiàn),有利于采用進階驅動方式展開項目開發(fā)的實踐教學。
2.2項目開發(fā)的進階驅動過程
基于JavaEE的技術規(guī)范及其特點,我們把項目開發(fā)的過程設計為進階式,即分別通過不同的JavaEE開發(fā)技術進行項目的多版本實現(xiàn)。JavaEE項目開發(fā)的整個過程可以被劃分為4個遞進式的階段。圖l給出了項目開發(fā)的進階驅動過程。
1)項目準備階段。
通過使用現(xiàn)有流行的網上書店(如當當網和卓越網)理解項目案例的系統(tǒng)功能模塊構成及其主要處理流程,并且掌握NetBeans或MyEclipse的JavaEE開發(fā)環(huán)境的配置方法,為項目開發(fā)做好準備。
2)Servlet開發(fā)階段。
在完成確定項目的系統(tǒng)設計之后,可以參照網上書店項目案例的Servlet實現(xiàn)版本進行系統(tǒng)的第一個版本實現(xiàn)。這個版本是一個兩層的結構,上層主要使用Servlet技術進行用戶接口及業(yè)務邏輯的實現(xiàn),下層則通過JDBC技術進行應用的數(shù)據訪問。
3)JSP+自定義標簽開發(fā)階段。
這個開發(fā)階段主要使用開發(fā)效率更高的JSP+自定義標簽進行系統(tǒng)的第二個版本實現(xiàn)。該版本進化為三層的結構,同樣參照案例的實現(xiàn)版本對第一個版本進行改進,包括:分離用戶接口層與業(yè)務邏輯層,使用JSP+自定義標簽實現(xiàn)用戶接口并通過JavaBean封裝業(yè)務操作,下層則通過JDBC實現(xiàn)數(shù)據訪問。
4)JSF+EJB+JPA框架開發(fā)階段。
最后的框架開發(fā)階段是系統(tǒng)的最終版本實現(xiàn),主要通過JavaEE流行的框架技術進行系統(tǒng)三層結構的高效實現(xiàn)。在第二個實現(xiàn)版本上做如下改進:使用JSF框架實現(xiàn)用戶接口,然后通過EJB封裝業(yè)務操作,最后使用JPA框架進行應用抽象實體的表示與存取訪問。
3.項日開發(fā)的教學實施
進階式驅動的項目開發(fā)過程是一個由簡到難、循序漸進的過程。項目系統(tǒng)在進階式開發(fā)過程中經歷從最初雛形版本到最后成熟版本的進化。JavaEE課程的實踐過程也就是完成工程項目的進階式驅動開發(fā)過程。
那么,在有限的學時及教學條件下,如何高效地完成進階驅動項目開發(fā)的教學實踐并取得良好的教學效果呢?關于JavaEE課程實踐的教學實施需要做以下幾點說明。
3.1教學組織原則
在JavaEE課程實踐的進階式項目開發(fā)教學實施過程中,教學組織應該遵循以下原則:
(1)理論講授圍繞著實踐項目展開。課程以提高學生的JavaEE開發(fā)能力為根本目標,課程的理論講授要為JavaEE實踐項目服務,圍繞著進階項目進行JavaEE開發(fā)技術及原理的講解。
(2)“項目進階引導、任務分解驅動”的教學方式。通過項目進階開發(fā),全面培養(yǎng)學生開發(fā)JavaEE應用的綜合能力。學生主要通過課余時間完成開發(fā)任務,再通過課堂上的問題解答及項目討論,強化該階段所需的技術知識、開發(fā)技能及團隊協(xié)作能力。
(3)課程實踐環(huán)節(jié)的教學過程,主要通過案例項目進階開發(fā)的工作流程安排實踐教學內容,并按照案例項目的開發(fā)任務展示、問題分析及解決、系統(tǒng)操作演示、任務實施及評價等4個步驟進行教學展示。
3.2學時安排及教學方式
按照教學大綱,暨南大學JavaEE課程實踐環(huán)節(jié)共計9個學時。在有限的學時里,如何有效地實施進階驅動的項目開發(fā)呢?具體的學時安排及教學方式如表2所示。
3.3平臺支持
為了更好地支持JavaEE課程的實踐教學改革,我們采用目前最流行的網絡教學平臺Blackboard作為JavaEE課程實踐的支撐平臺。小組劃分及題目確定、系統(tǒng)設計與實現(xiàn)、系統(tǒng)評價與考核等實踐過程都可以納入Blackboard平臺的管理中。通過該平臺,教師可以更科學地組織和管理進階驅動項目開發(fā),項目考核及評價的效率也大大提升;學生可以更加合理和高效地進行小組分工協(xié)作,而項目開發(fā)的效率也會更高。
4.結語
兩個本科教學周期的JavaEE課程實踐改革表明,項目進階驅動的實踐教學模式可以有效地激發(fā)學生的學習興趣,教學效果改善明顯。學生對課程實踐改革反饋良好,對課程的評分大幅提高。新的實踐教學模式在教師與學生之間營造出一種創(chuàng)新氛圍,極大地鼓舞了學生的自主學習熱情,強化了他們的創(chuàng)新意識和團隊協(xié)作精神,明顯提高了他們的創(chuàng)新能力和綜合素質。通過對同一個項目系統(tǒng)運用不同的JavaEE技術進行反復開發(fā)和修正,幫助他們樹立起不斷創(chuàng)新和深入探索的理念以及不斷追求卓越的意識。