丁 勇,朱長水,吳許俊
(南京理工大學(xué)泰州科技學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 泰州225300)
JavaEE作為一種開發(fā)技術(shù)和平臺,具有較強(qiáng)的跨平臺性、可移植性,已經(jīng)成為大多數(shù)Web應(yīng)用系統(tǒng)的開發(fā)標(biāo)準(zhǔn)[1-2]。JavaEE課程作為一門綜合性較強(qiáng)的專業(yè)課程,主要講解Java EE平臺搭建,JSP、Servlet、JavaBean、JDBC、JSTL等技術(shù)以及MVC模式、O/R Mapping框架的使用[3]。課程要求學(xué)生掌握Eclipse、ⅠDEA等集成開發(fā)環(huán)境的使用,掌握Web應(yīng)用系統(tǒng)開發(fā)的基本流程和方法[4],掌握Spring、Mybatis、Hibernate等主流開發(fā)框架的使用,掌握Tomcat等應(yīng)用服務(wù)器軟件的配置和使用,掌握J(rèn)avaEE連接Oracle/SQLServer/MySQL數(shù)據(jù)庫的方法。學(xué)生學(xué)習(xí)這門課程既運(yùn)用到前面學(xué)習(xí)的HTML、CSS、JQuery等Web前端技術(shù),又運(yùn)用到Java程序設(shè)計(jì)以及數(shù)據(jù)庫的相關(guān)知識,因此這門課程對提升學(xué)生面向?qū)ο缶幊毯途C合應(yīng)用開發(fā)的能力有著十分重要的意義。
目前大多數(shù)院校的教學(xué)內(nèi)容延續(xù)了傳統(tǒng)JavaEE課程的內(nèi)容,偏重對JSP、Servlet、JavaBean、JDBC數(shù)據(jù)庫編程等知識的講解,忽略了對Web系統(tǒng)架構(gòu)、MVC編程模式、Web框架等知識的講解,使這門課程變成了Java語言的“升級版”課程[5-6],造成學(xué)生學(xué)完這門課程,只能編寫一些簡單的JSP或Servlet程序,存在編程邏輯不清晰,沒有MVC編程思想,不會封裝JavaBean組件,不會配置數(shù)據(jù)庫連接池、處理數(shù)據(jù)庫并發(fā)等問題。
在Web框架的教學(xué)過程中,部分教材仍然使用傳統(tǒng)SSH(Struts、Spring、Hibernate)三大框架,Struts框架幾乎已被淘汰,沒有融入SpringCloud、SpringBoot等新的開源平臺和框架技術(shù),造成理論脫離實(shí)踐[7]。同時,教師往往只注重教學(xué)生如何配置和使用框架,忽略對框架背后基本原理的講解,比如對象關(guān)系映射(O/R Mapping)、容器(Container)、依賴注入(DⅠ)、控制反轉(zhuǎn)(ⅠOC)、面向切片編程(AOP)等,導(dǎo)致學(xué)生只知其然,而不知其所以然,當(dāng)系統(tǒng)環(huán)境或配置參數(shù)出現(xiàn)問題無法追根溯源,或程序一旦出現(xiàn)錯誤就不會調(diào)試[8]。
目前普遍采用的授課和PPT結(jié)合的“灌輸式”教學(xué)方法,已不適應(yīng)這門課程的教學(xué),因?yàn)楸菊n程是一門對綜合性編程能力要求較高的課程,僅僅對某個知識點(diǎn)的講解再輔以簡單的demo程序,并不能將前后知識點(diǎn)“串”起來,缺少連貫性和系統(tǒng)性。如,在講解JSP時學(xué)生不知道其在整個Web系統(tǒng)開發(fā)中主要用于表示層顯示,卻在JSP中寫了大量的業(yè)務(wù)邏輯代碼。講解JDBC編程時學(xué)生不知道為什么要封裝DAO、如何封裝DAO以及數(shù)據(jù)層和業(yè)務(wù)邏輯層之間的關(guān)系等。
傳統(tǒng)的JavaEE授課一般是教師邊講理論,邊演示程序,課堂效率不高。沒有合理分割教學(xué)內(nèi)容,未充分利用網(wǎng)絡(luò)教學(xué)平臺實(shí)現(xiàn)線上線下混合式教學(xué)。JavaEE課程的很多實(shí)踐性教學(xué)內(nèi)容,可以將操作過程錄制成視頻,供學(xué)生課前或課后線下反復(fù)觀看。課堂有限的時間應(yīng)側(cè)重于基本原理和程序難點(diǎn)的講解,教師不需要逐行演示完整的程序,重點(diǎn)應(yīng)講解關(guān)鍵的編程思想和邏輯,學(xué)生課后可通過線上OJ(Online Judgment)平臺自動評測自己寫的程序。
強(qiáng)化立德樹人,根據(jù)課程特點(diǎn),深入挖掘課程中蘊(yùn)含的思想政治教育元素,全面開展課程思政,將國家安全意識、工匠精神等融入到知識點(diǎn)中,如:講授開源框架時讓學(xué)生理解和遵循GPL協(xié)議,懂得保護(hù)知識產(chǎn)權(quán),遵守各類法律法規(guī);講授數(shù)據(jù)庫連接時強(qiáng)調(diào)如何避免SQL注入以及數(shù)據(jù)庫安全的重要性,提高學(xué)生的信息安全意識,自覺維護(hù)網(wǎng)絡(luò)安全和國家安全;編寫代碼時要求學(xué)生規(guī)范格式,培養(yǎng)嚴(yán)謹(jǐn)細(xì)致的學(xué)習(xí)和工作作風(fēng);以Java代碼的嚴(yán)謹(jǐn)性培養(yǎng)學(xué)生精益求精的大國工匠精神,以從面向過程到面向?qū)ο蟮乃季S模式培養(yǎng)學(xué)生與時俱進(jìn)的發(fā)展觀;通過課程思政引導(dǎo)學(xué)生樹立正確的理想信念與價值取向。
關(guān)注行業(yè)產(chǎn)業(yè)發(fā)展趨勢,及時將學(xué)術(shù)、科技發(fā)展前沿融入課程教學(xué)內(nèi)容,滿足創(chuàng)新性人才的培養(yǎng)需求。通過廣泛調(diào)研,獲取Java/JavaEE軟件開發(fā)工程師崗位對本課程的新要求,重新制定課程目標(biāo),充分體現(xiàn)知識、能力、素質(zhì)的有機(jī)融合。優(yōu)化課程教學(xué)大綱,重新梳理章節(jié)和教學(xué)內(nèi)容,提煉重難點(diǎn),刪除陳舊知識點(diǎn),增加一些反映JavaEE技術(shù)發(fā)展趨勢和廣泛應(yīng)用的新技術(shù),拓寬學(xué)生的知識面。如,在新的教學(xué)大綱中,增加了MVC模式、Spring MVC、Mybatis框架,刪除了Struts、Hibernate框架;增加了JDBC數(shù)據(jù)庫開發(fā)的授課學(xué)時,重點(diǎn)突出JDBC封裝數(shù)據(jù)庫操作的方法;擴(kuò)展了存儲過程、觸發(fā)器、連接池、并發(fā)控制等內(nèi)容的講解;拓展了SpringBoot、nosql數(shù)據(jù)庫等前沿知識。教學(xué)內(nèi)容體現(xiàn)因材施教,因?yàn)槊總€學(xué)生的基礎(chǔ)和編程能力不同,不能讓基礎(chǔ)薄弱的學(xué)生對課程有畏難心理,注重培養(yǎng)他們的學(xué)習(xí)信心和興趣;對編程能力較強(qiáng)的學(xué)生要加大內(nèi)容的廣度和深度,加強(qiáng)實(shí)踐和創(chuàng)新能力的培養(yǎng),體現(xiàn)“挑戰(zhàn)度”。每個知識點(diǎn)都要定義基礎(chǔ)和提高2個不同層次的要求,遵循由淺入深、由易到難的原則進(jìn)行講解。如,JSP編程部分的基礎(chǔ)要求為在JSP頁面中通過指令標(biāo)記、動作標(biāo)記、內(nèi)置對象編寫Java腳本,提高要求為封裝JavaBean,在JSP頁面中通過動作元素訪問JavaBean。JDBC編程部分的基礎(chǔ)要求為掌握J(rèn)DBC連接數(shù)據(jù)庫并能進(jìn)行增刪改查等基本操作,提高要求為理解事物的原理,應(yīng)用PL/SQL編程語言封裝存儲過程,并通過JDBC進(jìn)行調(diào)用。
采用項(xiàng)目驅(qū)動式教學(xué),通過項(xiàng)目分析、設(shè)計(jì)、實(shí)施、測試等全流程的鍛煉,培養(yǎng)學(xué)生的系統(tǒng)思維、編程思維、計(jì)算思維等。遴選幾個貼近學(xué)生實(shí)際生活的項(xiàng)目案例(如網(wǎng)上購物系統(tǒng)、圖書管理系統(tǒng)、外賣點(diǎn)餐系統(tǒng)),首先讓學(xué)生完成系統(tǒng)需求分析,運(yùn)用數(shù)據(jù)庫課程的相關(guān)知識設(shè)計(jì)數(shù)據(jù)庫;然后,按照表現(xiàn)層、控制層、邏輯層、DAO層搭建好JavaEE系統(tǒng)開發(fā)框架;最后,按照章、節(jié)、知識點(diǎn)3個層次,將項(xiàng)目分解為一個個小的功能模塊。學(xué)生每學(xué)完一個章節(jié),就能完成一個功能模塊,并能進(jìn)行功能測試。比如,學(xué)完JSP時,可以在JSP頁面中編寫Java腳本,完成簡單的注冊和登錄界面;學(xué)完JavaBean時,可以從JSP中提取Java腳本封裝為JavaBean;學(xué)完JDBC編程時,可以增加數(shù)據(jù)庫操作的功能;學(xué)完MVC模式時,再將程序拆分為Model-View-Controller;學(xué)完持久層框架時,可以配置O/R Mapping文件,簡化封裝JDBC操作的代碼。將項(xiàng)目貫穿整個教學(xué)過程,不僅可以加強(qiáng)學(xué)生對知識點(diǎn)的全面掌握,而且能培養(yǎng)學(xué)生的項(xiàng)目實(shí)訓(xùn)和管理能力。
強(qiáng)化實(shí)踐教學(xué),設(shè)計(jì)以提高實(shí)踐能力為引領(lǐng)的“基礎(chǔ)實(shí)踐→綜合實(shí)踐→創(chuàng)新實(shí)踐”三層次遞進(jìn)式實(shí)踐教學(xué)課程內(nèi)容,減少驗(yàn)證性實(shí)驗(yàn)項(xiàng)目,增加設(shè)計(jì)性、綜合性實(shí)驗(yàn)項(xiàng)目,培養(yǎng)學(xué)生融會貫通的能力。引入垂直整合項(xiàng)目化(VerticallyⅠntegrated Project)的教學(xué)方式,建立項(xiàng)目池,搜集來自行業(yè)、企業(yè)、教師科研的典型項(xiàng)目案例,通過實(shí)踐教學(xué)讓學(xué)生循序漸進(jìn)參與到項(xiàng)目中來。如,市科技支撐計(jì)劃社會發(fā)展項(xiàng)目、學(xué)院的網(wǎng)站、教務(wù)的管理系統(tǒng)、招辦的招生系統(tǒng)、學(xué)工的畢業(yè)生管理系統(tǒng)、后勤的宿舍管理系統(tǒng),都可以通過省/校級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目的形式立項(xiàng),讓學(xué)生以團(tuán)隊(duì)的形式參與開發(fā)。同時,為了保證項(xiàng)目的延續(xù)性,讓后續(xù)學(xué)生也能參與到項(xiàng)目中,需要不斷規(guī)范和積累項(xiàng)目開發(fā)文檔,自編成《JavaEE技術(shù)基礎(chǔ)》《JavaEE項(xiàng)目開發(fā)實(shí)訓(xùn)》等校本實(shí)踐教材,并應(yīng)用于教學(xué)和項(xiàng)目實(shí)訓(xùn),取得了較好的效果。
加強(qiáng)現(xiàn)代信息技術(shù)與課程教學(xué)的深入融合,利用中國大學(xué)MOOC、超星泛雅等平臺自建線上課程,提供優(yōu)質(zhì)的課程資源。安排20%~30%的教學(xué)時間實(shí)施線上自主學(xué)習(xí),針對每個教學(xué)單元,把傳統(tǒng)課堂講授的內(nèi)容通過觀看視頻、查閱資料、完成自測題等線上方式前移,讓每個學(xué)生都帶著較好的知識基礎(chǔ)走進(jìn)教室,保障課堂教學(xué)質(zhì)量。線下教學(xué)針對課程中的重難點(diǎn),通過翻轉(zhuǎn)課堂、分組討論、頭腦風(fēng)暴等方式,激發(fā)學(xué)生學(xué)習(xí)主動性,打造線上線下混合式課堂。利用網(wǎng)絡(luò)教學(xué)平臺記錄、監(jiān)測學(xué)生學(xué)習(xí)情況,利用大數(shù)據(jù)技術(shù)深度了解學(xué)生的學(xué)習(xí)習(xí)慣和規(guī)律,預(yù)測學(xué)生的行為,并用于引導(dǎo)學(xué)生優(yōu)化學(xué)習(xí)過程。利用題庫系統(tǒng)記錄學(xué)生答題情況,針對做錯的題目,智能推薦同類型的題目,做到有的放矢。
創(chuàng)新課程考核方式,建立以學(xué)生能力考核為導(dǎo)向、線上線下相結(jié)合的過程化成績評價體系。注重過程考核,采用筆試、機(jī)試、項(xiàng)目演示、答辯等多樣化的靈活考核方式,凸顯對學(xué)生工程實(shí)踐能力考核。本課程設(shè)計(jì)線上評價包括自主學(xué)習(xí)(包括視頻觀看、資料學(xué)習(xí)、在線自測、課前準(zhǔn)備工作等,占20%)、課堂測試(占10%)、作業(yè)(占10%)、實(shí)驗(yàn)(占10%)等環(huán)節(jié)的完成情況,線下評價包括OJ平臺刷題(占10%)、上機(jī)考試(占20%)、項(xiàng)目答辯(占20%)3部分,實(shí)現(xiàn)對學(xué)生課程學(xué)習(xí)投入度、知識點(diǎn)掌握度、能力達(dá)成度、課程目標(biāo)實(shí)現(xiàn)度等多維度的評價與考核。
課程改革初顯成效,主要體現(xiàn)在:①學(xué)生成績逐步提高,課程成績與改革前對比發(fā)現(xiàn),近2屆學(xué)生的平均分分別提升了3.6分和4.2分,及格率提升2.3%和2.6%;與同期平行班級成績對比發(fā)現(xiàn),本班平均分和及格率分別高出3.5分和1.2%,且成績分布趨于合理,絕大部分同學(xué)達(dá)到課程期望目標(biāo)。②學(xué)生編程能力大幅提升,能夠靈活應(yīng)用JavaEE技術(shù)進(jìn)行項(xiàng)目開發(fā),并順利完成畢業(yè)設(shè)計(jì)。近2年,有12名同學(xué)開發(fā)的項(xiàng)目獲批江蘇省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目,獲軟件著作權(quán)10項(xiàng),36名同學(xué)在全國Java程序設(shè)計(jì)大賽、藍(lán)橋杯全國軟件和信息技術(shù)專業(yè)人才大賽中獲獎。實(shí)習(xí)單位、用人單位也一致認(rèn)為,本專業(yè)學(xué)生“編程基本功好、代碼規(guī)范,解決問題能力強(qiáng),融入團(tuán)隊(duì)快”。
經(jīng)過幾年的探索和實(shí)踐,JavaEE課程教學(xué)大綱經(jīng)過了2輪修訂,收集了5個完整的項(xiàng)目案例庫,完成1項(xiàng)JavaEE課程教學(xué)改革項(xiàng)目,自編了2本校本教材。學(xué)生對課程的學(xué)習(xí)興趣較高,學(xué)習(xí)成績和編程能力取得了顯著提高。當(dāng)然,在課程教學(xué)過程中仍然存在一些不足,比如對Java編程模式、JavaEE應(yīng)用框架的講解不夠深入,學(xué)生的編程思維和能力還有待進(jìn)一步提升等,在今后的教學(xué)改革中需要進(jìn)一步改進(jìn)和完善。