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