劉偉+丁長松
【摘要】“Java EE應(yīng)用開發(fā)”是一門實踐性很強(qiáng)的應(yīng)用開發(fā)類課程,通過引入MCLA教學(xué)方法,采用教師課堂演示和學(xué)生獨立實踐相結(jié)合的教學(xué)模式,結(jié)合案例驅(qū)動式教學(xué)方法,以教學(xué)案例為目標(biāo),將知識點的講解和學(xué)習(xí)與教師演示和學(xué)生實踐環(huán)節(jié)相融合。實際應(yīng)用效果表明,在“Java EE應(yīng)用開發(fā)”課程教學(xué)中引入MCLA教學(xué)方法可以提高學(xué)生的學(xué)習(xí)積極性和實踐開發(fā)能力,有助于改善教學(xué)質(zhì)量和教學(xué)效果。
【關(guān)鍵詞】Java EE MCLA 課程改革
【中圖分類號】G642 【文獻(xiàn)標(biāo)識碼】A 【文章編號】2095-3089(2017)03-0108-02
一、引言
“Java EE應(yīng)用開發(fā)”是計算機(jī)科學(xué)與技術(shù)、軟件工程、信息管理與信息系統(tǒng)等專業(yè)一門實用性很強(qiáng)的專業(yè)課,通常開設(shè)在本科高年級階段,該課程旨在培養(yǎng)學(xué)生企業(yè)級Java項目的分析、設(shè)計和開發(fā)能力,課程核心內(nèi)容包括JSP(Java Server Pages)、Servlet、MVC(Model/View/Controller,模型/視圖/控制器)架構(gòu)和S2SH框架技術(shù)(Struts 2, Spring, Hibernate)等,根據(jù)學(xué)生所具備的知識基礎(chǔ)和教學(xué)總課時的實際情況,可補(bǔ)充講授JDBC(Java Database Connectivity,Java數(shù)據(jù)庫連接)、JMS(Java Message Service,Java消息服務(wù))、JavaMail、JNDI(Java Naming and Directory Interface,Java命名和目錄結(jié)構(gòu))等內(nèi)容?!癑ava EE應(yīng)用開發(fā)”的前驅(qū)課程包括“Java面向?qū)ο蟪绦蛟O(shè)計”、“Web開發(fā)技術(shù)”和“數(shù)據(jù)庫設(shè)計與開發(fā)”,該課程整合學(xué)生在低年級階段所學(xué)基礎(chǔ)知識,運(yùn)用Java語言、靜態(tài)網(wǎng)站開發(fā)技術(shù)和數(shù)據(jù)庫,結(jié)合所學(xué)JSP/Servlet等動態(tài)網(wǎng)站開發(fā)技術(shù)和S2SH框架技術(shù)設(shè)計并實現(xiàn)基于B/S(Browser/Server, 瀏覽器/服務(wù)器)架構(gòu)的企業(yè)級網(wǎng)站,是一門實用性和實踐性均非常強(qiáng)的課程。
在“Java EE應(yīng)用開發(fā)”課程教學(xué)中,如果采用傳統(tǒng)的以知識點講解為主的教學(xué)方法,學(xué)生可以理解和掌握一些理論知識,但無法靈活運(yùn)用這些知識解決實際問題,此外不能有效整合和銜接在多門課程中所學(xué)相關(guān)知識,在實踐操作能力和知識集成能力的培養(yǎng)中存在不足,學(xué)生無法勝任日后實際項目開發(fā)工作。因此,需要引入有效的教學(xué)手段和教學(xué)方法來改進(jìn)“Java EE應(yīng)用開發(fā)”課程的教學(xué),讓學(xué)生能夠理論聯(lián)系實際,學(xué)以致用,合理運(yùn)用所學(xué)知識解決實際問題。為此,我們在教學(xué)過程中引入了MCLA(Model Centered Learning Architecture)教學(xué)方法,取得了良好的教學(xué)效果。
MCLA方法,即以榜樣為中心的教學(xué)方法,是印度國家信息技術(shù)學(xué)院(NIIT, National Institute of Information Technology)使用的一種教學(xué)方法[1]。MCLA方法的核心在于將學(xué)習(xí)過程劃分為多個小的教學(xué)循環(huán),按照提出目標(biāo)(Object)、知識學(xué)習(xí)(Knowledge)、教師演示(Demonstration)、獨立實踐(Practice)、教學(xué)總結(jié)(Summary)的流程,每個教學(xué)循環(huán)從一個實際問題入手,由教師扮演榜樣的角色,結(jié)合相關(guān)知識用規(guī)范的步驟解決這些小的實際問題,學(xué)生不僅可以學(xué)習(xí)知識,還可以學(xué)習(xí)分析問題和解決問題的方法,在教師的指導(dǎo)下,學(xué)生參照教師的方法和步驟重復(fù)問題的解決流程;之后,教師再對學(xué)生提出另一個相似的問題,該問題同樣來自于實際應(yīng)用領(lǐng)域,由學(xué)生參照教師的方法獨立完成這個新的問題。通過采用這種“學(xué)習(xí)·實踐·提高”的過程,一方面學(xué)生可以更快速深入地理解和掌握所學(xué)內(nèi)容,另一方面也有助于提升學(xué)生獨立分析和解決實際問題的能力。MCLA方法獨特的教學(xué)模式尤為適合應(yīng)用性和實踐性較強(qiáng)的課程的教學(xué),在“Java程序設(shè)計”、“Web程序設(shè)計”等應(yīng)用技術(shù)類課程的教學(xué)過程中得到較為廣泛的應(yīng)用[2-4]。
二、MCLA教學(xué)方法的應(yīng)用實踐
1. 與案例驅(qū)動式教學(xué)方法相結(jié)合
為了更好地實施MCLA教學(xué)方法,在教學(xué)過程中,我們引入了兩個來源于真實項目、但根據(jù)學(xué)生實際開發(fā)能力和教學(xué)課時進(jìn)行了適當(dāng)剪裁的項目。結(jié)合學(xué)校的醫(yī)藥特色,我們在教學(xué)中使用的兩個項目案例均與醫(yī)藥行業(yè)相關(guān),項目案例簡要描述如下:
(1)杏林藥房:定位為醫(yī)藥類電子商務(wù)網(wǎng)站。主營中西藥品、營養(yǎng)保健品、醫(yī)療器械等醫(yī)藥類商品,要求實現(xiàn)用戶注冊、登錄、收藏商品、瀏覽商品、查詢商品、購買商品、查看歷史訂單等功能;需提供后臺管理系統(tǒng),實現(xiàn)對用戶信息、商品信息、訂單信息、訂單明細(xì)等數(shù)據(jù)的查詢和管理。
(2)醫(yī)伯樂:定位為醫(yī)藥類人才招聘網(wǎng)站。包括前端網(wǎng)站和后臺管理系統(tǒng),前端網(wǎng)站的主要用戶包括個人和企業(yè),提供個人中心和企業(yè)中心,其中個人中心的主要功能包括個人注冊、職位查看、職位收藏、職位搜索、投遞簡歷等功能,企業(yè)中心主要功能包括企業(yè)注冊、職位發(fā)布、簡歷審核等功能,后臺管理系統(tǒng)負(fù)責(zé)用戶、職位、簡歷等數(shù)據(jù)的查詢和管理。
在這兩個案例中,我們以“杏林藥房”作為課堂教學(xué)項目,“醫(yī)伯樂”作為學(xué)生獨立實踐項目。通過結(jié)合案例驅(qū)動式教學(xué)方法,以案例為中心在教師指導(dǎo)下分析、討論、研究案例,需精心選取適中的案例并進(jìn)行合理剪裁,一方面避免案例規(guī)模過大,增加完成難度,降低學(xué)生的學(xué)習(xí)興趣,另一方面確保在案例中能夠穿插課程相關(guān)知識點。為了降低項目的實現(xiàn)難度,案例的需求較為穩(wěn)定,無需再開展需求分析,由于項目復(fù)雜度較小,且有較多可供參考的已有系統(tǒng),系統(tǒng)設(shè)計較為簡單,因此學(xué)生可以將注意力主要集中在項目功能的實現(xiàn)和測試上,在系統(tǒng)分析與設(shè)計上無需花費(fèi)太多時間和精力,這有助于縮短開發(fā)周期、降低實現(xiàn)難度、更好地達(dá)到課程教學(xué)目標(biāo)。
2.教學(xué)模式的改革和實踐
在“Java EE應(yīng)用開發(fā)”課程中,我們?nèi)嬉隡CLA教學(xué)方法,并對該課程的教學(xué)模式和教學(xué)過程開展了一系列改革和創(chuàng)新。
首先,我們將教學(xué)演示項目案例和獨立實踐案例分解為多個小的功能點(目標(biāo)),并標(biāo)注實現(xiàn)每一個功能點所需要的技術(shù),對于部分較為復(fù)雜的功能點,需要將其分解為多個實現(xiàn)階段,每一個階段對應(yīng)一個或多個知識點。通過合理分解,可以保證學(xué)生每次學(xué)習(xí)的知識點不至于太多,如果一次講授的知識點太多將導(dǎo)致學(xué)生難以消化和理解,因此在分解時必須把握好分解粒度,避免出現(xiàn)目標(biāo)太大導(dǎo)致學(xué)生無法一次性理解所學(xué)知識,以及目標(biāo)太小導(dǎo)致學(xué)生無法結(jié)合目標(biāo)掌握所學(xué)知識的情況。
其次,構(gòu)建一個功能目標(biāo)和知識點的關(guān)聯(lián)矩陣,以可視化的方式顯示每一個功能點與知識點的關(guān)聯(lián)關(guān)系,以便合理分布知識點,控制每個目標(biāo)中知識點的難度和數(shù)量,保持均衡。學(xué)生通過具體的目標(biāo)來學(xué)習(xí)相關(guān)知識,并在教師教學(xué)實例演示中理解如何在實際項目開發(fā)中運(yùn)用這些知識,學(xué)生可以在課堂重復(fù)教師的演示實例以檢驗是否掌握整個流程。
下面以幾個具體的小實例說明如何創(chuàng)建教學(xué)演示實例和知識點之間的關(guān)聯(lián)。例如,在講授JSP基本流程時采用學(xué)生最熟悉的“登錄”功能來進(jìn)行演示并講解,先通過一個固定的賬號和密碼(不需要連接數(shù)據(jù)庫,僅模擬)實現(xiàn)一個基本的“登錄”流程,將所有代碼均放到JSP頁面,在本實例中學(xué)生重點學(xué)習(xí)JSP的基本語法;在接下來的課程中使用“注冊”來全面講解request、response、session等常用的JSP內(nèi)置對象,在JSP頁面中嵌入Scriptlet,同時引入頁面跳轉(zhuǎn)等新功能;采用Servlet技術(shù)實現(xiàn)“修改個人資料”,并對比JSP實現(xiàn)和Servlet實現(xiàn)的區(qū)別;在后續(xù)課程中再通過使用數(shù)據(jù)庫實現(xiàn)真正的“登錄”,并在實現(xiàn)的同時引入并講解JDBC技術(shù);在接下來的一次課中結(jié)合演示實例“顯示藥品信息”并逐一對代碼進(jìn)行分解和封裝,將數(shù)據(jù)庫連接代碼封裝到專門的工具類DBUtil類,將數(shù)據(jù)庫操作和訪問代碼放到DAO(Data Access Object,數(shù)據(jù)訪問對象)中,而JSP只負(fù)責(zé)數(shù)據(jù)的輸入和輸出,采用Servlet作為控制器來建立JSP和JavaBean類之間的聯(lián)系,深入講解MVC設(shè)計模式的原理和實現(xiàn)。
然后,我們需要針對教學(xué)案例中的每一個目標(biāo)和相關(guān)知識點,選取一個對應(yīng)的獨立實踐練習(xí),獨立實踐練習(xí)雖然來源于另一個項目,但是所需運(yùn)用的知識和難度與教學(xué)實例基本相同。例如,在“杏林藥房”項目中演示“搜索藥品”功能的實現(xiàn),并結(jié)合該案例講解分頁顯示功能的實現(xiàn),對應(yīng)的獨立實踐項目“醫(yī)伯樂”也有一個類似的練習(xí),用戶輸入關(guān)鍵詞搜索感興趣的職位并分頁顯示搜索結(jié)果。通過獨立實踐,學(xué)生可以將所學(xué)知識應(yīng)用到另一個具有真實業(yè)務(wù)背景的軟件項目中,做到觸類旁通,學(xué)以致用。教師可根據(jù)學(xué)生獨立實踐的完成情況進(jìn)行教學(xué)總結(jié),對一些普遍存在的問題加以講解和說明,并簡要介紹下一個教學(xué)目標(biāo)。
最后,在考核環(huán)節(jié),我們加大了平時成績的比重,降低期末考試在綜合成績中的比重。平時成績的核心部分為學(xué)生獨立實踐的檢查和項目的最終答辯,通過一系列獨立實踐,學(xué)生在學(xué)習(xí)知識的同時循序漸進(jìn),逐步完善項目,最后完成整個項目的設(shè)計與開發(fā)工作。教師在這個過程中可以扮演客戶角色,擔(dān)任項目的驗收者,制定較為詳細(xì)的評分細(xì)則,根據(jù)功能點的實現(xiàn)難度賦予對應(yīng)的分值,周期性地跟蹤和監(jiān)督項目的完成情況并模擬最終的項目驗收流程,最終根據(jù)項目的完成質(zhì)量給予學(xué)生一個科學(xué)合理的項目分?jǐn)?shù),作為課程平時成績的重要組成部分。
實際應(yīng)用效果表明,通過將MCLA和教學(xué)案例融入“Java EE應(yīng)用開發(fā)”課程教學(xué),絕大部分學(xué)生的應(yīng)用開發(fā)能力和實踐動手能力都有較大提升,能夠更好地理解和掌握所學(xué)知識并能夠在實際項目開發(fā)中合理運(yùn)用所學(xué)知識。
三、結(jié)語
在“Java EE應(yīng)用開發(fā)”課程中采用MCLA教學(xué)方法,不僅讓學(xué)生學(xué)習(xí)到Java EE開發(fā)所需知識和技術(shù),同時讓學(xué)生掌握如何運(yùn)用這些知識和技術(shù)來解決實際問題。教師充當(dāng)一個示范者和榜樣的角色,通過知識和經(jīng)驗的傳遞極大提高了學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效率。MCLA教學(xué)方法與案例驅(qū)動式教學(xué)方法的結(jié)合,更大程度上讓學(xué)生及時消化和理解所學(xué)知識并掌握如何將所學(xué)知識運(yùn)用到實際項目的開發(fā)中,理論與實踐緊密結(jié)合,有助于提高“Java EE應(yīng)用開發(fā)”課程的教學(xué)質(zhì)量并改善教學(xué)效果。
參考文獻(xiàn):
[1] 尹立坤, 宋雪蓮. 印度NIIT培訓(xùn)的MCLA方法在教學(xué)中的應(yīng)用[J]. 軟件導(dǎo)刊:教育技術(shù), 2008(5):82-83.
[2] 郭克華, 李敏. MCLA教學(xué)法在計算機(jī)難點知識教學(xué)中的應(yīng)用[J]. 計算機(jī)教育, 2009(20):53-56.
[3] 邵斐, 常子楠. 基于MCLA教學(xué)法的Java課程教學(xué)改革的探索[J]. 赤峰學(xué)院學(xué)報:自然科學(xué)版, 2009, 25(10):195-196.
[4] 胡偉儉. 基于MCLA的“Web程序設(shè)計”教學(xué)方法研究[J]. 計算機(jī)教育, 2009(17):108-109.
課題來源:2016年湖南中醫(yī)藥大學(xué)校級教學(xué)改革研究課題(項目編號:1022-0001002207)