王崟 陸莉莉
摘要:現(xiàn)在JavaWeb課程廣泛采用項目驅(qū)動式教學(xué),項目驅(qū)動式教學(xué)跟傳統(tǒng)教學(xué)相比,優(yōu)勢是可以強化技能訓(xùn)練,提高學(xué)生動手能力和學(xué)習(xí)興趣。缺點是弱化了理論知識和基本知識點語法之后,學(xué)生基礎(chǔ)不夠牢固,雖然能按照書本開發(fā),卻未必真正理解,很難舉一反三。該文列舉了Java web傳統(tǒng)教學(xué)和項目式教學(xué)的優(yōu)缺點,討論了教學(xué)實施方法和改進措施。
關(guān)鍵詞:Java web課程;項目驅(qū)動式教學(xué)
中圖分類號:G642 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)18-0140-02
1概述
現(xiàn)在很多Java web課程都使用項目式驅(qū)動教材,整個課程以一個項目貫穿始終,教學(xué)中老師帶領(lǐng)學(xué)生完成項目,并在其中穿插知識點的講解。課程結(jié)束時學(xué)生可以完成一個網(wǎng)站的開發(fā),目標(biāo)成果會激勵學(xué)生學(xué)習(xí),整個過程學(xué)生也不會覺得枯燥。本人通過教學(xué)經(jīng)驗,淺談JavaWeb項目式教學(xué)中的幾點探索和思考。
2 Java Web傳統(tǒng)教學(xué)的優(yōu)缺點
Java web傳統(tǒng)教學(xué)采用的是知識點的講解和實驗相結(jié)合的形式?;臼谡n內(nèi)容和順序通常是servlet基礎(chǔ)、過濾器和監(jiān)聽器、維護會話、JSP基本語法、JSP隱含對象、JavaBean等。授課過程中使用小例題做講解,每章再安排綜合性的實驗。傳統(tǒng)式教學(xué)的優(yōu)缺點如下:
優(yōu)點:
(1)學(xué)生的理論和語法基礎(chǔ)較好。課程將每個知識點都進行了仔細的講解,并輔助以小例子,學(xué)生對每一種技術(shù)的基本使用語法掌握的比較牢固。
(2)授課內(nèi)容循序漸進,每個知識點從理論、語法介紹,到基礎(chǔ)小例題,再到綜合一些的實驗題,由淺入深,學(xué)生學(xué)習(xí)和理解起來比較容易。
缺點:
(1)學(xué)生的學(xué)習(xí)缺乏目標(biāo)。雖然學(xué)生對于網(wǎng)站并不陌生,每個章節(jié)也都有自己的學(xué)習(xí)目標(biāo)。但是,學(xué)生在學(xué)習(xí)時還是不能把握某個具體的知識點或者技術(shù)在網(wǎng)站開發(fā)中所處的地位,特別是使用場景。而缺乏目標(biāo)的結(jié)果就是學(xué)習(xí)的動力不足。
(2)知識點分開學(xué)習(xí),知識點之間的關(guān)聯(lián)性介紹不足,綜合性訓(xùn)練時往往不知如何下手。學(xué)生語法掌握了,但是卻難以應(yīng)用到實際項目中,動手能力鍛煉不足。
3 Java web項目式教學(xué)的優(yōu)缺點
Javaweb項目式教學(xué)往往采用一個完整的網(wǎng)站案例,老師帶領(lǐng)學(xué)生分析網(wǎng)站的功能需求,完成網(wǎng)站的開發(fā),在開發(fā)過程中穿插相應(yīng)知識點和技術(shù)的介紹。課程比較常見的網(wǎng)站案例是購物網(wǎng)站,通課程通常需要完成商品的展示和搜索,用戶的注冊和登錄,商品加入購物車,購物車中刪除和修改數(shù)量,結(jié)賬和訂單查詢。項目式教學(xué)的優(yōu)缺點如下:
優(yōu)點:
(1)學(xué)習(xí)目標(biāo)明確,學(xué)生學(xué)習(xí)興趣濃,完成時很有成就感。課程每一階段都完成一個網(wǎng)站功能,學(xué)生在學(xué)習(xí)的過程中,可以體驗到課程每個技術(shù)的在開發(fā)中所處的地位和使用場景。
(2)課程以動手開發(fā)為主,講授為輔,全程學(xué)生一直動手開發(fā)。很少出現(xiàn)傳統(tǒng)教學(xué)中,因為不想聽課而無事可做的現(xiàn)象
(3)可以鍛煉學(xué)生的網(wǎng)站調(diào)試能力。網(wǎng)站的開發(fā)需要靜態(tài)頁面、JavaScript、Java、服務(wù)端動態(tài)頁面等多種技術(shù)的支撐。在開發(fā)過程中,需要使用多種調(diào)試手段和技術(shù),這都是對學(xué)生調(diào)試能力的鍛煉。這一點,傳統(tǒng)教學(xué)的小例子和實驗題很難做到。
缺點:
(1)項目式教學(xué)存在的一個大問題是弱化了理論、語法和基礎(chǔ)。學(xué)生一直在老師和教材的指導(dǎo)下進行開發(fā),做出了作品,但很可能抄對了,卻對自己寫的代碼完全不理解。此外,學(xué)生很可能只學(xué)會了技術(shù)的一種使用方法,而不能舉一反三,如果換一個項目,仍然不能獨立開發(fā)。
(2)合適的教材不多,項目選取和模塊切割難度比較大,需要花費很多精力把實際的網(wǎng)站進行精簡,以適應(yīng)于教學(xué)。項目開發(fā)時的順序很難和知識點的漸進順序一致,模塊也很難精準(zhǔn)覆蓋到每一個知識點。教學(xué)時既要考慮到模塊的開發(fā)順序,也要考慮到知識點和技術(shù)的難度漸進,教學(xué)時的難度比傳統(tǒng)教學(xué)要大。
4教學(xué)實施和改進措施
4.1保留傳統(tǒng)教學(xué)的知識點和基本例題
在授課時依然堅持一些傳統(tǒng)教學(xué)的授課內(nèi)容和順序,課程還是以知識點展開,先把知識點講透,輔助一些幫助學(xué)生理解的例題和小練習(xí)題,在必備知識完整的情況下切入相應(yīng)的模塊開發(fā)。確保學(xué)生在開發(fā)模塊之前,對這一模塊所需的技術(shù)有充分的熟悉。目前,項目式Java web開發(fā)課程的理論授課順序為:
(1)服務(wù)器原理和HTTP協(xié)議
這部分教學(xué)內(nèi)容包括web服務(wù)器原理,瀏覽器原理,HTYP協(xié)議,tomcat的使用,web網(wǎng)站的部署。教學(xué)中學(xué)生需要完成“模擬web服務(wù)器”,“查看HTTP請求和響應(yīng)”,“使用Tomcat發(fā)布web應(yīng)用”三個小練習(xí)。
(2)servlet入門
這部分教學(xué)內(nèi)容包括Servlet的作用,Servlet的生命周期,創(chuàng)建和訪問servlet,Servlet的配置,在servlet中獲得客戶端請求,向客戶端發(fā)送響應(yīng)。教學(xué)中,學(xué)生需要完成“Servlet生命周期演示”,“用servlet實現(xiàn)商品的模糊查詢”兩個練習(xí)。
(3)JSP技術(shù)基礎(chǔ)
這部分教學(xué)內(nèi)容包括JSP工作原理,JSP指令、JSP聲明、Java程序片段、Java表達式、JSP注釋,靜態(tài)包含include和動態(tài)包含include。教學(xué)中,學(xué)生需完成“在JSP頁面動態(tài)生成表格”練習(xí)。
(4)JSP技術(shù)進階
這部分教學(xué)內(nèi)容包括會話機制,隱藏對象,請求轉(zhuǎn)發(fā)和重定向,JavaBean。教學(xué)中,學(xué)生需完成“創(chuàng)建Cookie”,“理解ses-sion”,“請求轉(zhuǎn)發(fā)forward”,“四種對象的作用范圍”,“使用Java-Bean”5個練習(xí)。
4.2在知識點學(xué)習(xí)中穿插項目模塊開發(fā)endprint
在知識點講解和練習(xí)累積到一定程度的時候,穿插目前所學(xué)知識點可支撐的模塊開發(fā),開發(fā)過程除了用到的技術(shù)之外,如果涉及某些算法和數(shù)據(jù)結(jié)構(gòu)還需要向?qū)W生解釋清楚,力求讓學(xué)生明白網(wǎng)站功能的實現(xiàn)過程。項目主要模塊的切入點和功能如下:
(1)“商品展示起步”模塊,此模塊在學(xué)習(xí)過JSP基本語法后切入,學(xué)生完成商城所有商品的展示。
(2)“統(tǒng)一網(wǎng)站風(fēng)格”模塊,此模塊在前一模塊完成后,并且講解完靜態(tài)包含和動態(tài)包含之后切入,讓學(xué)生使用include將首頁分成四個主要區(qū)域。
(3)“特價和新品展示”和“商品搜索”模塊在統(tǒng)一網(wǎng)站風(fēng)格后切入,展示商城新品和特價商品,以及按照商品名稱對商品進行模糊查詢,這兩個模塊需要介紹分頁算法。
(4)“用戶登錄”、“退出登錄”模塊,此模塊在學(xué)習(xí)過會話機制、cookie技術(shù)、session之后切入。
(5)“用戶注冊基本版”模塊,該模塊頁面僅包含用戶名、密碼和確認密碼,完成基本的用戶注冊。此模塊在學(xué)習(xí)完JSP中的隱含對象,四種對象的作用范圍,請求轉(zhuǎn)發(fā)和重定向之后切人。
(6)“用戶注冊完整版”模塊,該模塊頁面不僅包含用戶名、密碼和確認密碼,還需要輸入用戶其它信息。由于表單項較多,該模塊將使用JavaBean技術(shù),在學(xué)習(xí)完JavaBean技術(shù)之后切入,學(xué)生只需要增加表單項,并且在注冊基本版的基礎(chǔ)上修改代碼即可。
至此,Java web的主要知識點都已經(jīng)學(xué)習(xí)完畢,之后學(xué)生需要完成“購物車”和“結(jié)賬”功能。
最后兩個功能是“查看訂單”和“查看訂單明細”,這兩個功能采用MVC模式,使用servlet和JSP頁面相結(jié)合的方式實現(xiàn)。
4.3提供適合學(xué)生的開發(fā)文檔
項目式教學(xué)中,學(xué)生很難獨立寫出全部代碼,由于代碼量較大,老師也不可能帶著學(xué)生一行一行寫,因此就需要提供開發(fā)文檔。開發(fā)初期可以給出較完整的實現(xiàn)過程和實現(xiàn)代碼,幫助學(xué)生盡快入門。隨著開發(fā)的深入,只需給出部分代碼,甚至挖一些“坑”讓學(xué)生獨立填。功能比較類似的模塊,例如多種商品展示模塊,可以給出一個模塊的實現(xiàn)過程,而讓學(xué)生模仿寫出另外幾個。這樣,學(xué)生既有文檔可以參考,又可以鍛煉自己的獨立解決問題的能力。
4.4布置附加功能和加強過程化考核
由于項目式開發(fā)課程的大部分時間都留給了學(xué)生編寫和調(diào)試程序,而學(xué)生的編程能力差異較大,想要全班以同樣的進度開發(fā)很困難。為了解決這一問題,主要采用下面手段:
(1)設(shè)置時間節(jié)點,加強過程化考核
設(shè)置主要模塊完成的時間節(jié)點,到時間就檢查進度,并進行答辯,督促學(xué)生按時完成開發(fā)。這樣,即便有些學(xué)生課上無法完成也會在課后花時間。而且增加了答辯環(huán)節(jié)后,較好地抑制了抄襲現(xiàn)象。
(2)布置附加功能,平衡進度
有些能力較強的學(xué)生做的進度較快,為了讓這些學(xué)生完成任務(wù)后能夠進一步提高,也為了平衡全班的進度,可以布置一些附加功能,并且此部分功能不提供代碼支持,讓學(xué)生自行完成。本課程中有“找回密碼”、“會員信息修改”、“其他方式實現(xiàn)購物車”、“基于struts2的管理員登錄”功能給學(xué)有余力的同學(xué)自行完成。
4.5加強頁面調(diào)試訓(xùn)練
學(xué)生都有Java語言基礎(chǔ),知道如何調(diào)試Java應(yīng)用程序?,F(xiàn)在進行網(wǎng)站開發(fā),頁面的調(diào)試技能是必需的,課程的教學(xué)過程中需要加強服務(wù)端頁面的調(diào)試,以及在瀏覽器進行HTML頁面和JavaScript代碼調(diào)試。必須讓學(xué)生知道哪些代碼用Java開發(fā)環(huán)境進行調(diào)試,哪些需要在瀏覽器中進行調(diào)試,在出現(xiàn)問題時引導(dǎo)學(xué)生自行進行調(diào)試,解決問題。
5結(jié)束語
Java Web課程是軟件技術(shù)專業(yè)中是一門十分重要的課程。本文探討了Java web課程項目驅(qū)動式教學(xué)的實施和改進措施,以及教學(xué)中常見的問題和解決方法。endprint