劉梅 卜言彬 劉小群 曹海燕
摘要:針對企業(yè)對Java開發(fā)人才的需求,高校Java EE課程教學過程中,存在著學生缺少企業(yè)項目實戰(zhàn)經(jīng)驗和技術、缺少團隊協(xié)作開發(fā)經(jīng)驗、教學開發(fā)工具滯后以及教學過程考評不精準等問題。通過介紹代碼托管平臺Gitee的高校教學管理功能,提出了一種基于Gitee+項目協(xié)作開發(fā)的Java EE課程教學方法。通過教學案例,展示了在教學過程中模擬企業(yè)項目開發(fā)流程的步驟和方法,并分析了教學實踐效果。
關鍵詞:Gitee平臺; 協(xié)作開發(fā); 企業(yè)項目; Java EE課程; 教學方法
中圖分類號:G642 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)31-0033-03
1 引言
Java EE(Java Platform Enterprise Edition) 是Sun公司為企業(yè)級應用推出的標準平臺,在企業(yè)開發(fā)中廣泛應用。為對接企業(yè)需求,國內外很多高校乃至職業(yè)院校將該課程作為軟件工程專業(yè)高年級的選修或必修課程[1-2]。
1.1 Java EE課程教學研究現(xiàn)狀
馮君在《基于三階段教學模式的Java EE框架技術教學改革》一文中指出了Java EE教學過程經(jīng)歷的三個階段,并對三階段需要培養(yǎng)的能力做出說明[3]。黎才茂,陳少凡介紹了CDIO的課程能力培養(yǎng)目標,采用了翻轉課堂和項目引領方式驅動學習,實現(xiàn)項目引領與混合教學模式的Java EE課程教學能力培養(yǎng)目標與內容的設計過程[4]。Sukru Eraslan指出軟件工程課程旨在使學生具備各種軟件工程實踐所需的技能,學生通常需要與其他學生合作完成項目,文中將集成了軟件版本管理工具的GitHub平臺引入課程中,通過實踐教學證明該方法有助于提高學生的成績,有助于學生獲得與行業(yè)相關的技能[5]。
1.2 人才培養(yǎng)的要求
對IT行業(yè)的多家企業(yè)進行用人需求調研的結論顯示:企業(yè)迫切希望招聘具備企業(yè)項目開發(fā)經(jīng)驗的畢業(yè)生。為讓學生畢業(yè)應聘時更具競爭力,高校亟須加強培養(yǎng)學生扎實的編程能力和熟練使用Java EE(如Spring、Spring MVC、Spring Boot、Spring Cloud等框架)進行開發(fā)的能力。在培養(yǎng)學生能力的過程中,不僅需要重點培養(yǎng)學生的企業(yè)級項目的實際編碼能力、企業(yè)開發(fā)工具的使用能力和團隊協(xié)作開發(fā)的能力,還需要培養(yǎng)學生良好的編碼習慣、歸納總結以及編寫技術文檔的能力。
1.3 Java EE教學存在的問題
通過對同類院校培養(yǎng)方案研究,目前高校此類課程教學普遍存在以下問題:1) 企業(yè)級編碼能力普遍薄弱。2) 教學中使用的開發(fā)工具滯后于企業(yè)。3) 缺少協(xié)同編程經(jīng)驗,學生對團隊分工協(xié)作意識淡薄。4) Java EE實驗課的過程考核無法精確化。結合多年企業(yè)項目開發(fā)經(jīng)驗和Java EE課程特點,本文提出了基于Gitee+項目協(xié)同編程的Java EE實踐課程教學方案,可以很好地解決上述問題。
2 Gitee平臺介紹
Git是一個分布式的源代碼版本管理工具,用于敏捷高效地管理項目代碼。Gitee是國內的基于Git構建的代碼托管平臺,是企業(yè)軟件項目管理的行業(yè)標準工具,具有連接穩(wěn)定、速度快等優(yōu)點。Gitee高校版提供全新編程教學實踐環(huán)境,可輕松實現(xiàn)課程作業(yè)管理、結對編程、小組協(xié)作開發(fā),賦能高校軟件工程人才培養(yǎng),已有高校將其引入Java EE課程教學中[6]。
2.1 Gitee平臺的教學管理功能
Gitee高校版提供強大的教學管理功能,主要的功能如圖1所示。教師可以在云平臺上創(chuàng)建、檢查、批改作業(yè),也可以進行教學回顧和總結等活動,而學生可以在平臺上獲取作業(yè)、提交作業(yè)、查看教師評語等操作。
2.2 Gitee平臺的教學優(yōu)勢
借助Gitee平臺應用于教學具有以下優(yōu)勢:1) 教學內容以企業(yè)項目的形式展開,有助于學生熟悉實際企業(yè)項目開發(fā)流程。2) 有利于實施精準的過程化考核,整個教學過程教師都可以通過查看學生的任務量,代碼的提交記錄,評估學生的參與度和積極度,保證認真完成作業(yè)的學生獲得高分,同時找出濫竽充數(shù)的學生,及時督促學生參與學習。3) 有助于學生協(xié)同編碼和師生交流。4) 培養(yǎng)學生學習主流的開發(fā)工具,學習Git命令,積累Git使用經(jīng)驗,以便畢業(yè)后盡快適應企業(yè)開發(fā)。
3 基于Gitee的實踐教學——以傳媒數(shù)據(jù)管理和分析項目為例
本課程(2021 年秋季)共有2個班級81名學生選課。教學過程中基于企業(yè)真實項目的工程源碼進行刪減,保留工程中核心的(Spring Boot+Vue) 框架代碼和一套完整業(yè)務流程的代碼,將其作為教學示例。通過模擬企業(yè)各個真實開發(fā)流程,設置相應的教學任務,學生自行分組,以小組為單位協(xié)作開發(fā)完成任務。
3.1 項目教學設計
模擬企業(yè)項目開發(fā)流程設計教學活動:1) 項目總體需求分析階段:教師講解本門課程需要完成項目的功能框圖,梳理主要的功能接口,分析接口開發(fā)的難度系數(shù),教學項目節(jié)點時間安排。2) 系統(tǒng)需求分析和概要設計階段:講授本項目開發(fā)環(huán)境搭建,項目開發(fā)涉及的技術和項目框架結構,通過分析需求引導學生進行前端主體頁面設計和數(shù)據(jù)庫設計。3) 模塊詳細設計階段:講解模塊具體功能,引導學生自行設計頁面和數(shù)據(jù)庫以及業(yè)務邏輯梳理,組織小組為單位展示自己的前端和數(shù)據(jù)庫設計,取長補短、形成最終的頁面、業(yè)務和數(shù)據(jù)庫設計文檔。4) 功能分解與項目分工階段:講解如何功能分解,學生自行分組與分工。5) 開發(fā)與測試階段:針對概要設計文檔進行需求分析,形成詳細設計文檔,然后編碼、測試、代碼入庫、更新代碼,迭代開發(fā)其他功能。6) 回顧與總結階段:組織小組作品展示,同學互評等教學活動,最后教師結合Gitee平臺提供的統(tǒng)計信息對每個學生的學習情況進行評價。針對這六個階段以傳媒管理分析項目為例,在Gitee設置11個任務如圖2所示。
每個任務設置相應的任務要求和時間節(jié)點,培養(yǎng)學生按照要求及時完成相應的任務,幫助學生熟悉企業(yè)項目開發(fā)流程。
3.2 Gitee平臺的項目教學流程
借助Gitee的教學管理功能和協(xié)作開發(fā)功能組織教學的具體教學流程如圖3所示。
對應于企業(yè)的項目開發(fā)流程,圖3中的步驟step1~step4為項目教學的前期準備,主要開發(fā)環(huán)境搭建。步驟step5~step7為系統(tǒng)需求分析和概要設計階段。步驟step8~step9為模塊詳細設計階段。步驟step10~step12為開發(fā)與測試階段,采用迭代循環(huán)完成教師在Gitee平臺下發(fā)的任務。步驟step13~step14為回顧與總結階段。
3.3 基于的Gitee的協(xié)作開發(fā)教學
版本管理工具Git具備多人協(xié)作開發(fā)的功能[7],將Gitee平臺引入到教學活動中,可以實現(xiàn)教師和學生之間或小組成員之間的多人項目協(xié)作開發(fā)。具體步驟如圖4所示。
上游倉庫由教師創(chuàng)建,教師直接往該庫提交代碼,小組責任人可申請合入代碼。下游倉庫由小組責任人創(chuàng)建,可以拉取上游倉庫的代碼和接受學生提交的代碼。每個學生擁有一個本地倉庫,在本地倉庫上,學生可獨立編碼、提交和更新代碼。三層倉庫既相互協(xié)同,又相對獨立,可實現(xiàn)多人協(xié)作開發(fā)。
3.3.1 師生之間的協(xié)同編碼
教師在Gitee平臺創(chuàng)建項目代碼倉庫(nanjing-institute-of-media/mediaanalysissystem) 并推送項目框架代碼到倉庫中(upstream repository,上游倉庫),小組負責人進行Fork操作拷貝,得到一個遠程服務端下游倉庫,學生可以在下游倉庫自由進行開發(fā),及時更新上游倉庫的最新內容,學生也可以通過Pull Request操作,將新增代碼貢獻給上游倉庫,從而達到師生之間協(xié)作開發(fā)。
3.3.2 學生之間的協(xié)同編碼
小組負責人通過Fork獲得上游倉庫項目資料,小組成員git clone操作拷貝代碼到本地,成員在自己本地進行編寫代碼,通過git pull和git push進行更新和提交到下游倉庫[8]。其他成員提交的代碼Git工具會自動合并,達到多人同時操作同一個庫,完成協(xié)作開發(fā)。
3.4 基于Gitee的過程考評
本門課借助Gitee倉庫監(jiān)控臺提供的倉庫統(tǒng)計和倉庫動態(tài)功能對學生的學習進行考評。
3.4.1 倉庫的統(tǒng)計功能
Gitee平臺提供了倉庫統(tǒng)計功能,該功能按天統(tǒng)計學生的提交代碼數(shù)量,以及項目任務完成的情況,并且支持按月讀取信息,以圖表的形式展示。比如班上一位學生10月的代碼上庫情況如圖4所示。
通過該功能可以查看學生提交項目代碼的次數(shù)和每次提交的代碼量,同時可以分析學生的過程參與度,方便進行課程宏觀考核。
3.4.2 Gitee倉庫動態(tài)功能
Gitee平臺提供了倉庫動態(tài)功能,該功能提供了項目中所有人對倉庫的操作情況,可以查看到某次學生提交的具體代碼。教師通過查看學生提交的代碼,可分析出學生項目功能完成情況、代碼質量情況,從而做到精細化考查。
3.5 實踐結果分析
本次基于Gitee+項目協(xié)同開發(fā)的Java EE教學實踐,8個教學周64課時完成了git命令、企業(yè)開發(fā)基本流程、Spring框架下的Java EE企業(yè)級代碼的編寫方法講解,組織學生完成了傳媒數(shù)據(jù)管理與分析系統(tǒng)的用戶模塊、視頻模塊、分析推薦模塊等11個功能模塊的教學任務。20個小組共提交263次代碼,累計代碼552103行。從代碼提交的時間、次數(shù)以及代碼量來分析,班級絕大部分學生能跟上教學進度并完成項目任務要求。
3.5.1 學生掌握情況
本門課程2020年秋季采用傳統(tǒng)的教學方式教學,2021年秋季采用Gitee+項目協(xié)作開發(fā)方式教學,通過對理論知識點和編程能力進行綜合對比,按照掌握情況進行統(tǒng)計分析得到學生綜合考評對比如表1所示。
從表1中數(shù)據(jù)可知:在Java EE課程實踐教學過程中,使用Gitee+項目協(xié)作開發(fā)方式相對傳統(tǒng)的教學方式有很大的優(yōu)勢,熟練掌握Java EE企業(yè)級開發(fā)能力學生大幅提升。
3.5.2 學生就業(yè)與回訪
為檢驗教學效果,在課程結束后的第四個月,對81位學生發(fā)起了問卷調查,42名學生肯定了使用Gitee平臺為依托模擬企業(yè)項目開展Java EE實踐教學的模式。在知識點的實用性方面,52.8%學生認為Git操作非常實用,25%的學生認為Spring Boot +Vue框架開發(fā)頗為重要,22.2%學生認為在企業(yè)項目的開發(fā)流程和編碼能力上收獲頗豐。本課程項目模擬了企業(yè)項目的開發(fā)流程,對學生找工作有很大的幫助。在新冠肺炎疫情肆虐的情況下,有1/5左右學生在課程結束的2個月內獲得較好的工作機會,其中不少同學獲得萬人規(guī)模的軟件公司的工作邀請,相比之前傳統(tǒng)的教學方式,教學效果和就業(yè)質量均得到明顯的提升。
4 結束語
采用基于Gitee+項目協(xié)作開發(fā)的教學方法,有助于學生熟悉企業(yè)項目管理和開發(fā)流程;有助于實踐類課程的精準過程考核。分組協(xié)作開發(fā)項目也有助于培養(yǎng)學生團隊合作精神,對學生就業(yè)以及將來工作有很大的幫助。
參考文獻:
[1] 謝景明,孫庚.項目驅動的進階式J2EE課程教學設計探討[J].計算機教育,2009(22):57-59,50.
[2] 王新穎,婁艷麗,屈俊峰.基于項目驅動的《Java EE框架技術》教學改革與實踐[J].輕工科技,2019,35(8):174-175.
[3] 馮君.基于三階段教學模式的Java EE框架技術教學改革[J].大學教育,2013,2(17):111-112,120.
[4] 黎才茂,陳少凡.項目引領與翻轉課堂的Java EE課程教學模式設計[J].計算機教育,2019(3):77-80.
[5] Eraslan S,Kopec-Harding K,Jay C,et al.Integrating GitLab metrics into coursework consultation Sessions in a software engineering course[J].Journal of Systems and Software,2020,167:110613.
[6] 盧華燈,李婷妤.基于Gitee的理實一體化迭代式項目驅動教學法應用研究[J].計算機教育,2019(7):117-120.
[7] 王真.版本控制工具在軟件開發(fā)項目管理中的應用——以GIT為例[J].項目管理技術,2020,18(6):131-134.
[8] Chacon S,Straub B.Pro Git[M].Apress,2014
【通聯(lián)編輯:王力】
收稿日期:2022-02-25
基金項目:江蘇省哲學社會科學研究一般項目資助(2022SJYB0672) ;江蘇省高校自然科學研究面上項目資助(18KJD520006) ;江蘇省高等教育學會專項課題支持項目(2021JDKT065) ;全國高等院校計算機基礎教育研究會立項支持(2021-AFCEC-550)
作者簡介:劉梅(1985—) ,女,江蘇南京人,工程師,碩士,主要研究方向為計算機應用、智能算法;卜言彬(1984—) ,男,江蘇南京人,副教授,碩士,主要研究方向為機器學習、計算機視覺;劉小群(1985—) ,女,江蘇南京人,工程師,碩士,主要研究方向為人工智能、軟件測試技術;曹海燕(1985—) , 女,江蘇南京人,講師,碩士,主要研究方向為人工智能、嵌入式開發(fā)技術。