任維 李偉 袁海娣



摘要:目前傳統的軟件類課程基本都是采用項目教學法,教師提出項目需求,學生分組完成項目,該模式下學生團隊之間的協同工作很難開展,本文提出一種基于GitHub平臺的軟件類課程教學方法,可以有效地提高高校軟件設計類課程的教學效果,并很好地解決了分組教學中的團隊協作問題。
關鍵詞:GitHub;協同工作;教學方法
中圖分類號:TP311? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2019)02-0081-02
1 引言
目前高校軟件設計類課程基本都采用分組+項目教學的方法,引入實際的項目案例來推動教學過程,然而分組教學中組員內部的分工協作一直困擾很多教師,根據以往的經驗基本都是由一個同學完成整個小組的任務,教師很難了解小組內部的分工情況,最終只能通過項目本身來驗證小組的工作情況[1]。其次就是溝通問題如何解決,教師如何與學生溝通,學生之間如何溝通,這個問題不解決分組協同工作也不能做好,所以說目前傳統的教學方法還是存在一定的問題,如何解決分組內部成員之間的協同工作,甚至是分組之間的相互溝通,就擺在的很多高校教師的面前,本文結合企業開發流程,提出一種基于GitHub平臺的軟件類課程教學方法,能夠很好地解決上面提出的問題。通過幾個學期的實際教學,發現該教學方法能夠很好地解決分組+項目教學方法中的協同工作問題。
2 GitHub簡介
Git是目前非常流行的分布式版本控制系統,基于Linux內核設計和開發。與傳統的版本控制系統如VSS,CVS,SVN等相比較,Git采用分布式的管理方式,不依賴于集中式服務器,具有更好的靈活性,同時Git支持代碼合并與跟蹤,對于大型項目來說管理和維護代碼更加方便,目前很多企業和個人都在使用Git進行源代碼管理[2]。
GitHub是基于Git系統的項目托管平臺,由于主要基于Git技術所以取名GitHub。2008年GitHub正式投入使用,除了基本的項目托管、源代碼管理外還提供在線編輯、項目訂閱、項目討論、代碼分享、數據報表等功能。國內外很多企業和個人都將項目托管在GitHub上,其中包括了很多知名項目如jQuery、Python等[3]。
3 基于GitHub平臺的教學方法
通過上面介紹可以了解到GitHub平臺的基本功能,也可以看出GitHub平臺能夠有效地解決多人協作開發的問題,但是如何與實際教學相結合還是需要根據學生的實際情況來制定教學方案。結合引言中的介紹,引入GitHub平臺重點是需要解決三個問題,一解決分組成員之間的溝通問題,二解決協作開發的問題,三解決項目開發進度控制的問題。下面我們就這三個問題具體分析一下。
3.1如何解決成員溝通問題
傳統方式下小組成員一般都是通過QQ來進行溝通,而QQ僅僅是一款聊天軟件,根本無法滿足專業軟件開發過程中的溝通要求,GitHub平臺作為一款專門面向軟件開發企業和個人的平臺,不僅僅適應基本的開發要求,還是一款社交溝通平臺[4]。目前軟件設計類課程基本都采用項目教學,教師首先提出項目需求,學生開展分組討論,開發過程中學生也需要相互交流。GitHub平臺提供Issues功能,教師和學生可以非常方便地在Issues實現溝通和交流,同時教師也可以了解學生交流的情況,教師在學生項目開發過程中的控制和管理更加的方便,測評也有了合理的依據。教師通過Issues功能向每個項目小組分發項目需求,學生通過Issues討論項目需求中的問題,教師再通過Issues了解學生討論情況,實時反饋給學生相關需求。既充分調動了學生學習的積極性、也方便教師在整個教學過程中的管理。GitHub平臺中Issues功能如圖1所示:
3.2如何解決協同開發問題
協同開發是GitHub平臺的基本功能,傳統方式下協同開發基本都是代碼的拷貝,很多學生相互之間拷貝代碼,等到提交項目時才發現很多代碼都是舊的,或者根本搞不清哪個版本的代碼是最新的。GitHub提供一套完善的協同開發流程,當然教師也需要根據具體的情況來制定合適的流程,如下圖所示:
首先教師在GitHub上創建實驗項目,本項目作為整個小組的主代碼庫,保存小組最新代碼,同時也是最終提交給教師的代碼。為確保主代碼庫的正確性,主代碼庫由教師和小組組長負責維護,同時也可以將項目相關文檔傳送到主代碼庫,方便小組成員之間共享資料,如下圖所示:
其次小組成員通過Fork方式獲取主代碼庫信息,并建立本地代碼庫,小組成員維護個人的本地代碼庫,當某個小組成員完成本人任務后,通過合并方式將本地代碼庫中的代碼合并到主代碼庫,當然教師或小組組長負責審核合并代碼是否符合要求[5]。
最后組長將組員所有代碼合并到主代碼庫,開展功能測試和集成測試,并對產生的BUG進行修改,最終按照需求內容將主代碼庫中的代碼提交給教師。教師可以通過需求核對學生完成的情況,并作為最后評價的指標[6]。
3.3如何解決進度控制問題
進度控制不僅僅是教學過程中存在的問題,也是企業開發面臨的一個重要問題。傳統方式下,教師需要定時與學生溝通,雖然也能解決一些問題,但是對于學生進度無法達到實時控制的目的。如何才能確保學生按時按量完成任務,需要依賴GitHub代碼審查與質量管理功能,教師即使不見面也可以通過代碼審查了解到學生開發中進度情況,并根據學生進度情況即使提醒學生,并對有疑問的學生即使進行回復,提高學生項目開發的進度。
4 基于GitHub平臺的教學評價
由于之前很多的工作已經在GitHub上完成,教學評價也變得非常容易,大量的數據作為支持,教師可以非常方便地完成教學評價。當然不同的高校具體的評價標準可以不同,可以通過學生代碼提交量、討論情況、BUG修改、代碼質量等確定評價分值。同時,教師也可以通過GitHub提供的圖表功能,直觀地了解到學生的具體情況以及存在的問題。
5 結束語
基于GitHub平臺高校軟件類課程教學方法不僅可以滿足教師對學生管理的需求,也鞥能讓學生進一步了解企業軟件開發流程,為學生更好地適應企業開發提供平臺。通過幾個學期的教學,也可以看出該教學方法適合高校軟件開發類課程,具有一定的教學意義。
參考文獻
[1] 曾少寧,李慧,袁秀蓮.基于GitHub平臺的問題驅動式編程實驗教學方法[J].計算機教育,2017(09):158-163.
[2] 曾少寧. 基于GitHub平臺的協同式實驗教學方法[J]. 計算機教育, 2016(12): 144-148.
[3] 楊紅.基于GitHub的開發人員提交評論情感分析[J].現代計算機(專業版),2018(08):39-43.
[4] 柯其壽. 基于改進DEA模型的GitHub開發者效率評估[D].武漢工程大學,2017.
[5] 字鳳芹. 基于Git的協作小組學習資源庫的建設與研究[D].云南大學,2016.
[6] 張智,鄭卉,蔣依伶,袁歡歡,等.使用Github實現高效的團隊協作開發[J].電腦知識與技術,2015,11(07):206-208.