摘要:本文以企業(yè)對人才的需求為導(dǎo)向,結(jié)合筆者多年的教學實踐經(jīng)驗,按照“教學內(nèi)容、工作任務(wù)、軟件項目三位一體”的改革思路,探討JavaEE編程技術(shù)課程改革過程中教學內(nèi)容的優(yōu)化整合、學習情境的設(shè)計、教學方法和教學手段的革新、實踐教學的改革等多方面的實踐探索。
關(guān)鍵詞:課程改革;學習情境;任務(wù)驅(qū)動;項目導(dǎo)向
文章編號:1672-5913(2010)08-0076-04
中圖分類號:G642
文獻標識碼:A
JavaEE編程技術(shù)是我院軟件技術(shù)Java開發(fā)方向的專業(yè)核心課程,它是繼學生修完Java程序設(shè)計、JSP程序設(shè)計之后的一門重要課程,對培養(yǎng)學生在企業(yè)應(yīng)用中的開發(fā)能力,培養(yǎng)中高級Java程序員和Java服務(wù)器端程序員起著至關(guān)重要的作用。
JavaEE是一個龐大、分支眾多的技術(shù)體系,同時也是一個需要不斷接受新思想、解決新問題的系統(tǒng),要想在有限的學時內(nèi)學好,很難做到面面俱到。同時,作為一門高職課程,JavaEE不能太理論化,而應(yīng)該面向?qū)嶋H應(yīng)用。JavaEE是服務(wù)器端技術(shù),要解決的問題是企業(yè)級應(yīng)用,企業(yè)級應(yīng)用的重要表現(xiàn)形式是分布式系統(tǒng),EJB、Web服務(wù)、JMS這些企業(yè)級系統(tǒng)常用的技術(shù),其學習難度大,應(yīng)用環(huán)境很復(fù)雜,這給實踐教學的開展帶來一定的難度。
高等職業(yè)教育的課程改革不僅僅是方法的改革,還是理念、內(nèi)容、實施方法等多方面的改革,高職教育的特點應(yīng)該以實踐教學為主。本文以企業(yè)對人才的需求為導(dǎo)向,結(jié)合筆者多年的教學實踐經(jīng)驗,按照基于工作過程的改革思路,探討了JavaEE編程技術(shù)課程改革過程中教學內(nèi)容的優(yōu)化整合、學習情境的設(shè)計、教學方法和教學手段的革新等多方面的改革實踐。
1 按照企業(yè)需求和成長規(guī)律優(yōu)化整合教學內(nèi)容
1,1課程改革源于專業(yè)的整體要求,同時必須符合企業(yè)的需求
一門課程不是孤立的存在,課程改革來源于專業(yè)的整體要求,而專業(yè)人才的培養(yǎng)必須符合企業(yè)需求。企業(yè)對Java程序員的崗位需求分為兩類,即Java客戶端程序員和Java服務(wù)器端程序員。這兩類崗位所要求的知識和技能既有較大的差異,又存在緊密的聯(lián)系。一方面,客戶端程序是獨立運行的桌面應(yīng)用,一般具有豐富的圖形用戶界面,經(jīng)常需要直接與數(shù)據(jù)庫進行交互,也需要調(diào)用服務(wù)器端程序提供的服務(wù)??蛻舳顺绦騿T需要具有豐富的Java圖形用戶界面編程經(jīng)驗,數(shù)據(jù)庫編程經(jīng)驗,對Java服務(wù)器端技術(shù)有一定的掌握和運用能力。另一方面,服務(wù)器端程序運行在服務(wù)器上,它為別的程序提供服務(wù),需要程序員掌握組件的編程、應(yīng)用在服務(wù)器端的主流框架。作為高職院校軟件專業(yè)畢業(yè)的學生,應(yīng)該能夠勝任軟件企業(yè)對Java程序員的不同崗位需求。
1,2明確Java主線課程教學任務(wù)的側(cè)重劃分
我院以Java為主線的核心課程有3門:Java程序設(shè)計、JSP程序設(shè)計和JavaEE編程技術(shù)。其中,Java程序設(shè)計主要培養(yǎng)Java客戶端程序員,同時解決基礎(chǔ)問題。JSP程序設(shè)計和JavaEE編程技術(shù)主要培養(yǎng)Java服務(wù)器端程序員。事實上,JSP屬于lavaEE的Web組件,是JavaEE分層架構(gòu)中表現(xiàn)層最重要的技術(shù),同時,在使用Java技術(shù)建立Web應(yīng)用時,JSP因其便于掌握和可實現(xiàn)快速開發(fā)的優(yōu)點成為很多小型Web應(yīng)用采用的技術(shù)。我們將JSP作為一門課程放在JavaEE之前,不僅符合JSP的自身體系,還可以減輕JavaEE的教學壓力,平滑JavaEE的學習曲線。
1,3確立JavaEE課程的教學目標和教學內(nèi)容
在理清了各課程的關(guān)系之后,我們確立了JavaEE編程技術(shù)的教學目標:學習完本課程后,學生能夠獨立搭建JavaEE開發(fā)環(huán)境,能夠熟練進行三大組件(servlet、JSP、EJB)的編程,能夠運用Singleton、DAO、MVC設(shè)計模式,能夠運用Struts框架,能夠?qū)崿F(xiàn)數(shù)據(jù)訪問層,能夠按照不同的方案設(shè)計和實現(xiàn)JavaEE多層結(jié)構(gòu)的企業(yè)級應(yīng)用。
教學內(nèi)容包括:JavaEE開發(fā)環(huán)境、在JavaEE中使用XML、Servlet組件的編程、JavaBean組件在JSP中的應(yīng)用、數(shù)據(jù)庫訪問技術(shù)、MVC架構(gòu)、Struts框架、EJB 3.0組件編程。
教學內(nèi)容的重點在于JavaEE三大組件技術(shù)(JsP組件主要在“JSP程序設(shè)計”中介紹)、數(shù)據(jù)訪問層、設(shè)計模式、MVC架構(gòu)和Struts框架;難點在于如何運用這些技術(shù)和框架實現(xiàn)一個既符合JavaEE分層結(jié)構(gòu),又遵循MVC架構(gòu)的企業(yè)級應(yīng)用系統(tǒng);能力目標在于培養(yǎng)具有一定理論知識,又具有較強的實際編程能力和開發(fā)能力的應(yīng)用型人才。
2 基于工作過程進行課程開發(fā)與設(shè)計
2,1課程開發(fā)的思路:教學內(nèi)容、工作任務(wù)、軟件項目三位一體
“教學內(nèi)容、工作任務(wù)、軟件項目三位一體”的含義是:巧妙地將理論知識點融入到完成不同的工作任務(wù)中;工作任務(wù)不是孤立的存在,而是軟件項目中的一個個局部功能;學習進度與項目進度相一致,學習內(nèi)容與項目內(nèi)容相一致,用完整的項目貫穿課程始終。具體而言,主要具備以下3個特色:
特色1:軟件項目貫穿。選擇一個綜合性的項目貫穿整個課程,項目根據(jù)學習情境分成一系列局部功能,在不同的學習情境中,學生將學會實現(xiàn)某個(些)局部功能,當完成所有學習情境,整個項目就可以完成。
特色2:理論教學采取任務(wù)驅(qū)動教學模式。整個課程劃分為不同的學習情境,每個學習情境都有若干個典型工作任務(wù),理論教學采取任務(wù)驅(qū)動的教學模式,將相關(guān)理論知識點融入到完成不同的任務(wù)中,并布置相近似的任務(wù)在課后實驗中指導(dǎo)學生動手完成。
特色3:實踐教學采取項目導(dǎo)向教學法。實踐教學分為兩個層次,第一個層次是在理論課后的作業(yè)和實驗中閱讀和模仿課堂上老師給出的代碼,完成近似的任務(wù)。第二個層次是項目的開發(fā),課程安排了三次大的課程設(shè)計,隨著課程內(nèi)容的推進,將同一個項目分別用不同的技術(shù)和框架實現(xiàn)三遍。第一層次的任務(wù)是為項目作準備,是項目中的一個個局部功能,這樣學生可以實現(xiàn)從任務(wù)到項目的平滑過渡。
改革后的課程體系完全顛覆了傳統(tǒng)的教學模式,符合高職教學以實踐為主的理念,更加有利于培養(yǎng)高素質(zhì)的技術(shù)、技能型人才。
2,2學習情境的設(shè)計
在上述課程改革思路的指導(dǎo)下,我們設(shè)計開發(fā)了“學習情境、能力目標總表”,如表1所示。
3 按照高職教育理念構(gòu)建教學實施模式
3,1理論教學:任務(wù)驅(qū)動
改革后的理論教學以任務(wù)引領(lǐng),按照“提出任務(wù);完成任務(wù)的思想、方法、操作:邊學邊做完成任務(wù);總結(jié)規(guī)律和技巧”4個步驟實施教學。
教師在講授某個(些)理論知識點之前,首先提出一個具體的任務(wù)要求,讓學生明白需要完成一個什么樣的工作任務(wù)。例如:在課程早期講授Servlet請求和Servlet響應(yīng)時,如果從理論到理論,不僅難以理解而且枯燥乏味。那么我們不直接從理論入手,而是首先推出一個任務(wù)“創(chuàng)建登錄系統(tǒng)”,要求包含一個登錄頁面和一個LoginServlet。其中:登錄頁面接收用戶填寫的用戶名和口令,點擊提交按鈕之后,LoginServlet將用戶名和口令以HTML的方式返回給客戶端(因為不想涉及到數(shù)據(jù)庫);接著,將要完成的任務(wù)演示出來,使學生看得見、摸得著,以此激起他們強烈的興趣。教師可乘機將“Http請求和響應(yīng)的格式,如何發(fā)送請求,如何提交表單數(shù)據(jù),如何處理請求,如何生成響應(yīng)”等教學內(nèi)容巧妙地融入到這個任務(wù)當中,講解實現(xiàn)程序的代碼,演示完成任務(wù)的步驟。
為了讓學生真正掌握課程內(nèi)容并且能夠自己動手,教師必須提出新的要求。做法是:布置一個近似的但又有所不同的任務(wù),比如,在登錄的基礎(chǔ)上添加注冊,這樣,學生必須閱讀和消化代碼,才能夠模仿和創(chuàng)新,通過完成任務(wù)達到掌握所學知識的目的。在此過程中,教師要及時收集學生在完成任務(wù)過程中出現(xiàn)的典型問題和共性問題,結(jié)合理論知識點,在課堂上進行有針對性地講解,給出解決問題的辦法。
最后,要求學生總結(jié)規(guī)律和技巧,將完成任務(wù)過程中遇到的問題及解決辦法寫成實驗報告,督促學生及時總結(jié)實戰(zhàn)經(jīng)驗,實現(xiàn)知識的融合和再學習。
在“任務(wù)驅(qū)動”教學法中,“任務(wù)”的設(shè)計是關(guān)鍵。一方面,教師必須精心設(shè)計出一個個實際任務(wù),將教學內(nèi)容巧妙地隱含到這個任務(wù)當中。另一方面,為了配合項目導(dǎo)向教學法,任務(wù)的設(shè)計不能脫離項目而獨立存在,而要為完成項目服務(wù)。任務(wù)實際上是項目這個大要求下的一個個小局部的功能,當學生完成了一定數(shù)量的任務(wù)之后,那么切入項目的時機就成熟了。
3,2實踐教學:項目貫穿+項目改寫
項目導(dǎo)向教學法,就是教師講解項目的要求和涉及的知識點,學生在教師的引導(dǎo)下,上機實現(xiàn)項目。學生邊學習邊做項目,學習內(nèi)容與項目內(nèi)容相一致。請注意,項目導(dǎo)向教學法強調(diào)學習進度與項目進度相一致,用項目貫穿整個課程,而不是到了課程的最后才開始做項目。
為了實現(xiàn)項目導(dǎo)向教學法,就要考慮課程內(nèi)容、課程進度與所要實現(xiàn)項目的相關(guān)性。事實上,在絕大多數(shù)課程中,很難找到一個完整的能夠貫穿課程始終的項目。為了解決這一難題,可以在課程中及時地引入若干個小項目,讓每個小項目近可能涵蓋前一階段課程所涉及的知識點。這樣一來,整個課程就由若干個小的項目貫穿,既增加了課堂教學的靈活性,又降低了項目實施的難度。
幸運的是,JavaEE項目有自己的特點,Java EE項目可以選擇不同方案來實現(xiàn),如不同的分層結(jié)構(gòu),在一層中可以采取不同的技術(shù),還可以選擇不同的方法實現(xiàn)MVC設(shè)計模式。每一種方案都有自己的特點以及學習曲線。這些因素帶來的影響在項目進入開發(fā)階段后非常顯著,學生在學習中需要適應(yīng)這些選擇。而正是由于JavaEE項目這一特點,使得采用一個項目貫穿整個課程成為可能。
本課程選擇了“在線商店”作為貫穿始終的項目,該項目采取不同的方案被實現(xiàn)了三次。由于課時的限制,只要求實現(xiàn)“在線商店”前臺的登錄子系統(tǒng)和在線訂貨子系統(tǒng)。登錄子系統(tǒng)包括注冊和登錄:訂貨子系統(tǒng)部分包括瀏覽商品目錄、查看商品詳情、商品搜索、購物車、商品定購。在表1中“載體”一欄顯示了項目在各個學習情境的切入情況。
本課程的實踐教學還有另一個新穎之處,那就是:教師不是直接布置學生做一個項目,而是給定一個原始項目,要求學生按照指定的要求進行改造。例如,在表1中的情境6,交給學生一個采用JSP+JavaBean模式實現(xiàn)的登錄子系統(tǒng),這是一個典型的JSP應(yīng)用,只有兩層結(jié)構(gòu),要求學生采用基于Servlet實現(xiàn)MVC模式進行改造,并用DAO設(shè)計模式實現(xiàn)數(shù)據(jù)訪問層,數(shù)據(jù)訪問采用連接池技術(shù)。在情境7,給定一個采用MVC模式實現(xiàn)的在線訂貨子系統(tǒng),要求學生以此為基礎(chǔ)運用Struts框架進行改造,實現(xiàn)基本項目的全部功能,鼓勵實現(xiàn)擴展功能。在最后的情境中,用EJB改造現(xiàn)有的購物車功能。原始項目和改造后項目的比較參見表2。
通過對現(xiàn)有系統(tǒng)的改造,學生的知識和認識水平不斷提高,閱讀程序的能力得到訓(xùn)練,這也能幫助學生體會到各種技術(shù)和框架的應(yīng)用特點。學生給出了很好的評價:“這是一個比較新穎的實驗方式。以往的實訓(xùn)是自己或者以小組的方式開發(fā)一個小型項目,但這次是給了項目要求以另外一種方式改造該項目,這給了我們一種全新的思維方式。以前開發(fā)總有很強的依賴性,就是沒開始做的時候總想著到網(wǎng)上去淘一個類似的系統(tǒng),稍加修飾,便可以上交。改造項目就縮小了搜索范圍,所以我必須先要完全讀懂原項目的代碼,然后再深層次理解Struts的特點,最后才能動手”。
4 結(jié)語
JavaEE編程技術(shù)的學習曲線較為陡峭,因為JavaEE技術(shù)體系龐大,分支眾多,理論性和實踐性都很強。如何讓高職學生在較短時間內(nèi)迅速從新手成長為高手,是擺在我們面前的一個課題。實踐表明,文中所設(shè)計的教學內(nèi)容和教學模式符合高職的教育理念,遵循高職學生的認知規(guī)律,取得了良好的教學效