馮永安,王永貴,邱云飛,邢浩然
(1.遼寧工程技術大學 軟件學院,遼寧 葫蘆島 125105;2.遼寧工程技術大學 電子與信息工程學院,遼寧 葫蘆島 125105)
Java 由于其簡單易學、運行速度較快、可移植性強等特點,在眾多程序設計語言中一直保持著較高的熱度,因而被譽為編程語言中的“常青樹”。在近幾年的權威編程語言排行榜(TOIBE)中,Java 基本領先地位;從近幾年的就業形勢來看,在互聯網+時代,企業對Java Web人才的需求量非常大,基本占軟件開發人才需求的60%~70%[1]。國內高校的軟件工程專業普遍開設Java Web 編程技術課程,絕大部分IT 技能培訓機構圍繞Java Web 技術和大數據技術開展相關的就業培訓。
Java 技術不斷演變,Java Web 應用開發已由最初基本的Servlet、Jsp 技術轉變到框架技術應用(如SSH,SSM 等框架技術),當前比較流行的有Spring MVC 和Spring Boot 技術。不管技術如何發展,Java Web 開發技術都涉及HTML、Servlet、Jsp、CSS、JavaScipt、Ajax 等基礎知識,同時還需軟件工程、數據庫、數據結構等課程的綜合知識,故課程教學具有綜合實踐性強、入門較難的特點[2]。傳統的“注入式”教學模式不適合本課程的教學要求,同時也很難保證良好的教學效果。因此,如何能把教、學、練有效整合,尋找適合本課程的教學模式并設計相關的實踐環節、課程考核等教學內容對課程教學顯得尤其關鍵。Java Web 課程教學一方面要求任課教師不但具備較高的綜合理論教學能力,還需較強的動手實踐能力;另一方面,在學時有限的情況下,如何處理好理論和實踐的學時安排也很重要。
教學大綱對課程教學的知識點、內容及學時安排等起重要的指導作用,對課程講授具有重要意義。為了加強對理論的理解和提高實踐能力,課程改變傳統的理論課和實驗課相分離的授課模式,把課程全部教學內容均安排在實驗室進行,需要對課程的教學大綱進行相應地調整。在項目案例驅動模式下,對課程的關鍵知識點按照教學案例和練習案例分別設計,適當補充課后輔助練習案例。以Spring 中IOC 知識點為例,學生管理系統項目為背景,其中講解學生管理模塊、設計教學案例,完成Dao 層接口UserDao(含有不帶參數的save、check 方法),類UserDaoImpl 實現UserDao,完成Service 層接口UserService(不帶參數的save、check 方法),類UserServiceImpl實現UserService;設計練習案例,完成學生班級管理,練習完成ClassesDao、ClassesDaoImpl、ClassesService、ClassesService-Impl 的功能實現;課后練習完成系統中學院管理模塊的功能。
1.2.1 項目案例驅動,實施“鏈”式教學模式
“鏈”式教學模式是把教師“教”和學生“學”兩個環節緊扣在一起,每一個知識點為一環,“教”為縱環,“學”為橫環,縱環和橫環緊緊咬合,環環相扣,形成完整的課程知識鏈。從根本上改變以往“注入式”教學模式的學生參與程度不足、動手時間少、教和學兩個環節脫節的現象[3],該模式模型如圖1 所示。

圖1 “鏈”式教學模式教學過程示意圖
項目案例驅動[4]背景下選取合適的教學項目,可考慮常用經典的系統案例(如學生管理系統),易于理解而不能偏多,更不能偏大偏難,可從系統簡單通用的登錄模塊做起,保證學生能在有限時間內完成。在系統的基本登錄模塊中,教師講授用戶名錄入問題,學生練習密碼錄入問題;教師講授用戶名數據如何獲取,學生練習密碼數據的獲取;教師講授用戶名和密碼都對的情況下完成頁面的跳轉,學生練習完成用戶名或者密碼錯誤時的頁面跳轉,交替完成教與學的教學內容。系統案例中其他的功能模塊,按照這種方法進行教與學拆分,滿足課堂教學需要。
1.2.2 實現編程從抄寫—改寫—編寫循序漸進
課程采用“鏈”式教學模式在實驗室進行教學,學生需要完成聽、思、動的協同過程,如何降低編程學習門檻至關重要。學生人手一臺計算機,通過網絡廣播軟件把教師機屏幕傳播到學生機,要求學生實時模仿抄寫完成教師的教學案例,在指定時間內成功調試運行,提高學生的學習興趣。適時提出一些功能修改問題,讓學生獨立思考進行改寫,通過平時加分形式進行激勵。最后,學生獨立完成大綱中的練習案例,編寫實現其中的功能,從而達到課堂教學循序漸進,實現編程從抄寫—改寫—編寫的轉變。以IOC 知識點中涉及的學生管理模塊為例,教師帶領學生一起完成教學案例中的Dao 層接口UserDao(有不帶參數的save、check 方法),類UserDaoImpl實現UserDao,完成Service 層接口UserService(save、check 方法),類UserServiceImpl 實現UserService,編寫測試類Test 進行檢驗;提出修改save 方法,增加name 和pass 參數,改寫完成相應的接口和類;最后獨立編寫完成學生班級管理模塊中的ClassesDao、ClassesDaoImpl、ClassesService、ClassesService-Impl 實現過程,這樣可以充分調動學生的學習興趣和積極性,實現邊講邊練提高學生的學習效率和動手實踐能力。
1.2.3 采用“穿新鞋,走老路”的教學路線
課程基本沿著HTML、Servlet、Jsp、Spring、Spring MVC 的技術路線進行教學,技術的學習掌握難度逐漸加大,同時它們之間還有關聯。在課堂教學中,如何把這些技術問題有效地組織起來對課程學習十分關鍵。考慮采用不同的技術實現相同功能模塊,學生容易體會到技術的實現過程和差異問題,容易形成對比,達到“穿新鞋,走老路”的教學效果。不同技術學習分別對系統通用的登錄模塊實現見表1。
傳統先進行課堂教學、后安排實驗課的常規方法勢必造成實驗訓練環節難以保障,本課程實施“鏈”式教學模式,教學實現從抄寫—改寫—編寫循序漸進,讓學生在初學階段更容易理解和掌握,逐步掌握關鍵技術及提高其分析解決問題的能力。邊講邊練方法有效地把課堂教學與實踐統一起來,學生在課堂學習中得以及時訓練,降低入門學習門檻;配合練習案例,提高課堂學習興趣,使學生更容易掌握Java Web 中的開發技術。

表1 不同技術分別對登錄模塊的實現
為了進一步提高學生工程實踐能力,在設置培養方案時,在同學期開設課程中把軟件設計方法課程和Java Web 課程安排在同一學期進行學習(遼寧工程技術大學軟件工程專業安排在第六學期)。在課程教學結束后,結合軟件設計方法課程,設計綜合實訓環節,適當引進企業的真實項目,對所有學生進行分組(每組由3~5 人組成,保證至少有1 名男同學或女同學),集中到實驗室進行為期2 周的實訓任務,要求使用軟件設計方法進行分析和設計,最后采用本課程所學Java Web 技術予以實現。例如某組學生選擇某企業新員工入職考試系統作為綜合實訓題目,根據系統功能模塊進行分工,填寫項目成員及分工情況表、項目進度計劃表作為后期驗收檢查依據。實訓過程中,指導老師根據實訓表現(占綜合實訓成績50%)進行打分;驗收環節,驗收老師根據實訓報告的格式及圖表完整情況(占綜合實訓成績30%),答辯回答問題思路清晰度、模塊完成及程序運行情況(占綜合實訓成績20%)進行打分。該環節從軟件設計、文檔撰寫到軟件研發,形成課程間聯動效果,最后按照分組答辯驗收得到綜合實訓成績[5]。綜合實踐環節,可以有效訓練學生團隊協作和表達能力,讓學生提前了解企業真實軟件項目研發過程,為以后的就業奠定基礎。
傳統的課程考核方式,成績一般由平時成績+理論課成績+實驗課成績構成。對本課程實施“鏈”式教學模式后,改變了傳統授課的理論+實驗模式,相應地需要對考核方式進行調整。課程總成績構成調整為平時成績、理論課成績和綜合實訓成績3 部分構成,其中平時成績分為出勤、作業和課堂表現3 部分;理論課成績占50%,期末筆試形式進行;綜合實訓的總成績由實訓表現、文檔規范程度和答辯演示成績構成,占總成績的50%。課程考核重點在課程學習過程,強化實驗訓練,提高學生動手實踐能力,訓練團隊合作能力和表達能力,打破筆試成績定輸贏的傳統形式,切實提高學生的就業競爭力[6]。
Java Web 課程的教學改革充分考慮企業需求和學生職業發展需要,引進企業真實軟件項目,實施“鏈”式教學模式,改變課程考核方式,激發學生學習熱情和積極性,取得了較好的效果。在今后的教學過程中,還可以考慮充分利用學院校企聯合培養的優勢資源,加強專業基礎課實踐和應用結合,以激發學習興趣,增強學生學習能力和實踐能力,培養出更多高水平的軟件技術應用型人才。在遼寧工程技術大學軟件工程專業2014 級、2015 級、2016 級3 屆班級中的實踐表明,Java Web 課程的教學改革取得了較好效果。學生對本該課程具有濃厚的學習興趣,圓滿完成布置的綜合實訓項目。在第八學期的畢業設計環節,2014 級軟件工程專業307 名畢業生,有188 人的畢業選題以Java 作為開發技術,學生的就業簽約崗位中有157 人從事Java 相關工作;2015 級軟件工程專業378 名畢業生,有226人的畢業選題以Java 作為開發技術,學生的就業簽約崗位中有185 人從事Java 相關工作;在2019 年暑期合作教育中,2016 級共有203 名同學參加校外實習,156 人從事Java 相關實習工作。在近3 年的全國藍橋杯程序設計比賽中,筆者共指導49 人參加Java 組比賽,16 人獲遼寧省三等獎,8 人獲遼寧省二等獎,8 人獲遼寧省一等獎,4 人獲全國總決賽二等獎。對課程進行改革與實踐,提高了學生實踐能力,學生在實習和工作中能迅速融入企業團隊,受到大連華信、中軟國際等企業單位的肯定和歡迎。