陳丁
摘要:當今工程教育越來越注重培養(yǎng)工科學(xué)生的工程實踐能力,以項目為基礎(chǔ)的教學(xué)方法得到越來越多的認同。本文通過分析和討論計算機工程實踐課程教學(xué)的現(xiàn)狀及問題,結(jié)合GitLab項目管理平臺的特點,分別從實踐的體系結(jié)構(gòu)、教學(xué)模式、過程考核管理、團隊組織等方面入手,提出了利用Gitlab平臺開展高校計算機工程實踐課程教學(xué)的解決方案,最后分析這種模式的意義和影響。
關(guān)鍵詞:Gitlab;開源軟件;工程實踐;項目驅(qū)動
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2015)52-0123-02
一、背景及現(xiàn)狀
工程實踐教學(xué)是地方高校培養(yǎng)應(yīng)用型人才的重要環(huán)節(jié),工程實踐教學(xué)可以促進學(xué)生鞏固知識,鍛煉學(xué)生分析問題、解決問題的能力,其效果直接影響著課程的教學(xué)質(zhì)量。在計算機工程實踐教學(xué)中,以項目驅(qū)動的教學(xué)方法在越來越多的工科院校中運用,這種教學(xué)模式通過運用來自現(xiàn)實工程項目或模擬現(xiàn)實項目的案例,創(chuàng)造真實或接近真實的工程環(huán)境,以實現(xiàn)傳授工程學(xué)科知識、鍛煉學(xué)生工程技能的目標。在以項目驅(qū)動的工程實踐教學(xué)過程中,首先教師布置多個項目題目,并對每個項目的背景和要求等做出說明,同學(xué)們根據(jù)自己的能力和愛好選擇某個題目來完成,在同學(xué)們完成項目實踐的過程中,教師對其進行相關(guān)指導(dǎo),最后教師根據(jù)同學(xué)們的完成情況做出評價和打分。但在運用這種教學(xué)模式過程中也暴露出如下問題。
1.項目過程不透明,過程化考核管理難。過程化考核是現(xiàn)代教育改革發(fā)展趨勢之一,但由于參加工程實踐的同學(xué)多,教師沒法做到一對一的教學(xué)管理和跟蹤,一般只能根據(jù)平時的考勤和學(xué)生提問。由于無法進行過程化的考核和監(jiān)督,會出現(xiàn)部分學(xué)生利用網(wǎng)上類似的代碼來完成項目。
2.一人一題,無法提高團隊協(xié)作。為避免出現(xiàn)抄襲和窩工的現(xiàn)象,在選題過程中我們盡量讓學(xué)生獨立完成一個題目,但是由于一個真實工程項目的工作量普遍偏大,因此學(xué)生沒法在2~3周的時間內(nèi)獨立完成所有功能要求,而且做出來的東西也相對比較粗糙。但如果一個題目讓多個學(xué)生去完成,又會出現(xiàn)一些能力差的同學(xué)窩工偷懶,無法真實鍛煉和評價出每個學(xué)生的能力。
3.編碼混亂,代碼質(zhì)量不高。雖然在選題前教師就給出了編碼規(guī)范,但是由于項目工作量偏大以及考評要求,大部分學(xué)生都把精力集中到完成項目的功能要求上,而忽視了代碼規(guī)范和質(zhì)量。
4.項目代碼保存度較差,后續(xù)應(yīng)用價值不大。目前對學(xué)生完成的工程項目代碼,只是上交給相關(guān)負責(zé)教師,在學(xué)院級別沒有一個集中統(tǒng)一的管理,一些完成較好的項目作業(yè)沒法作為案例分享給下一屆學(xué)生,并且學(xué)生們完成的項目作業(yè)也沒法二次開發(fā)并應(yīng)用到現(xiàn)實場景中。
針對以上問題,我們提出了利用工業(yè)級的Gitlab代碼管理平臺對學(xué)生們完成的工程實踐項目進行跟蹤管理及評估,以適應(yīng)現(xiàn)代工程教育不斷發(fā)展的要求,培養(yǎng)出符合社會需求的應(yīng)用型人才,提高計算機工程實踐課程的教學(xué)效果。
二、基于Gitlab平臺教學(xué)實施的可行性
GitLab是一個利用Ruby on Rails開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的Git項目倉庫,可通過Web界面進行訪問公開或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋,可以管理團隊對倉庫的訪問。它非常易于瀏覽提交過的版本并提供一個文件歷史庫,團隊成員可以利用內(nèi)置的簡單聊天程序(Wall)進行交流。它還提供了一個代碼片段收集功能可以輕松實現(xiàn)代碼復(fù)用,便于日后有需要時進行查找。
1.Gitlab的特點。①它是使用Git進行分布式的版本控制項目,具備代碼審查、問題追蹤、活動信息、維基和持續(xù)集成。②它能容納25000+的用戶群同時在一臺服務(wù)器上,LDAP/AD組同步和日志審計。③它是一個開源軟件,由社區(qū)驅(qū)動、700+貢獻者檢查完善代碼,方便集成。④在業(yè)界內(nèi)具有很多成功應(yīng)用的案例,如開源中國代碼托管平臺等。
2.對學(xué)生能力的要求。除了要求學(xué)生熟練掌握使用Git對項目代碼進行版本管理,項目的實施也可以是以團隊小組為單位來展開,在碰到疑惑和問題時,除了向教師求教外,還應(yīng)該通過自學(xué)或同學(xué)間的互相幫助,廣泛開展交流、溝通與互相合作來解決問題。在合作過程中,還可以提高學(xué)生的人際交往和溝通表達能力。
3.對教師能力的要求。應(yīng)用型大學(xué)的雙師型教師不僅具有專業(yè)的理論知識,還要具有相當?shù)墓こ添椖拷?jīng)驗,需要熟悉企業(yè)項目開發(fā)的工作流程和管理模式,具有作為系統(tǒng)分析員(系統(tǒng)架構(gòu)師)的系統(tǒng)分析與設(shè)計能力,才能有效地組織工程實踐內(nèi)容,培養(yǎng)學(xué)生的理論知識與專業(yè)技能,以及職業(yè)素質(zhì)及社會適應(yīng)能力。
三、基于Gitlab平臺教學(xué)的實施
通過Gitlab平臺,把實踐教學(xué)的學(xué)習(xí)和互動延伸到課外,教師無需到實驗室就能掌握整個項目的進展情況,項目進行中可以及時對代碼進行評審,保證代碼質(zhì)量,項目完成后可以對項目進行統(tǒng)計分析,對項目小組成員工作進行評價。
1.項目發(fā)布。教師首先在gitlab平臺上建立好一個基本的項目結(jié)構(gòu)框架,并邀請選題的學(xué)生成為該項目的開發(fā)人員,這時學(xué)生就可以使用Git工具將Gitlab上的代碼克隆到本地代碼倉庫中。項目成員就可以根據(jù)任務(wù)分工,在自己的機器上完成其對應(yīng)的項目功能。
2.項目過程跟蹤管理。教師可以要求項目成員必須每天晚上10點前提交項目代碼,每天提交的代碼記錄情況將作為過程化考核的依據(jù)。這樣就可以實時發(fā)現(xiàn)團隊成員中開放進度偏慢的學(xué)生,及時找出原因,避免窩工。
3.代碼質(zhì)量分析。教師可以根據(jù)編碼規(guī)范,利用系統(tǒng)對提交的代碼進行審核,對不符合代碼規(guī)范和要求的系統(tǒng)可以拒絕其提交,同時也可以利用系統(tǒng)的質(zhì)量分析功能,對已提交的代碼進行質(zhì)量評審。
4.項目貢獻評價。當整個實踐項目完成后,教師需要分別對項目團隊成員的工作進行評價。通過gitlab的統(tǒng)計功能,教師可以依據(jù)其貢獻率客觀、公正的對項目成員進行打分。
四、遇到的問題和下一步的研究方向
目前我們對Gitlab在工程實踐教學(xué)的應(yīng)用探索還處在起步階段,在應(yīng)用中遇到了很多的問題,例如:由于gitlab是針對企業(yè)級的代碼版本管理軟件一些流程,并不一定適合我們的教學(xué)要求,因此界面可用性問題,工具比較獨立,很難整合使用,項目在線部署功能還有待加強;個別工具的性能還有待優(yōu)化;等等。針對這些問題,我們制訂了下一階段的研究計劃。
1.代碼相似度分析。為規(guī)避抄襲現(xiàn)象,需要對學(xué)生上傳代碼進行相似度分析,這是在Gitlab所沒有實現(xiàn)的。
2.在線實時項目部署。根據(jù)學(xué)生上傳的項目代碼,可以在線對項目進行發(fā)布,及時跟蹤檢查項目的完成情況。
3.對代碼活動進一步數(shù)據(jù)分析。這可以幫助教師全面掌握學(xué)生在學(xué)習(xí)中遇到的問題,針對教學(xué)資源和支持服務(wù)的質(zhì)量反饋等數(shù)據(jù),為下一步的決策提供有利的數(shù)據(jù)支持。
4.優(yōu)化實時聊天功能,為學(xué)生支持服務(wù)提供有利的工具保證。
5.界面可用性優(yōu)化。優(yōu)化界面設(shè)計,使其更加符合中國人的使用習(xí)慣和審美觀。
五、結(jié)論
通過采用業(yè)界流行Gitlab代碼版本管理平臺作為計算機工程實踐項目的嘗試,為在工程實踐教學(xué)中的問題找到了一條新的解決途徑,并且可以利用開源系統(tǒng)開放的特點在此基礎(chǔ)上做二次開發(fā),既能節(jié)省軟件的開發(fā)和維護的使用成本,又能比較完全的滿足各學(xué)校實際的需求,還能隨著開源軟件的升級而得到升級服務(wù)。
參考文獻:
[1]劉海山,郭偉.工程管理專業(yè)實驗實踐課程教學(xué)的探索[J].實驗室科學(xué),2015,(01).
[2]宋冬生.Git——版本管理之利器[J].程序員,2007,(11).