李 寧,張 曉,趙曉南,劉海龍,李戰懷
(西北工業大學 計算機學院,陜西 西安 710072)
隨著計算機技術的飛速發展,在線教育目前進入了 MOOC(massive open online course)時代[1]。特別是近年來,以MOOC + SPOC(small private online course)為代表的教學模式逐漸興起,并被越來越多的大學接受,該模式通過短視頻網絡在線學習、在線互動討論等手段,有效解決了學習受時間、空間、師資等方面限制的問題[2]。然而單純的視頻學習或在線測試等僅能有效緩解理論教學的問題,對提升實驗教學的效果幫助有限。實驗教學一直是高校本科人才培養工作中不可或缺的重要組成部分,關系著培養人才的工程實踐能力和工程創新能力[3]。因此探索適應MOOC環境下的虛擬實驗技術和教學模式,不僅對輔助在線理論課程的教學有非常重要的意義,同時,是線下實驗教學應對MOOC 沖擊的創新與變革。
現有MOOC 課程多以理論課程為主體,90%以上的輟學行為引起了研究者的廣泛關注[4-6]。經過對MOOC上的學生學習行為進行跟蹤,研究者發現在MOOC上學習文科類課程和計算機課程都比較容易,但是對于物理、生物、工程等學科,由于有實驗訓練的環節,若只提供線上理論課程教學,學生往往很容易放棄,只有一部分學習習慣非常好的學生才能夠堅持,導致MOOC學習者高輟學率[7]。而且即使學習者能夠堅持下來,因為缺乏實驗練習,所以很難收到良好的教學效果,無法達到課程的預期目標。
雖然文獻[7]提及計算機課程容易學習,但實際上計算機類課程的實踐性都較強,如計算機軟件專業核心課(包括程序設計語言、數據結構、數據庫原理及軟件工程等多門課程),每一門課程都需要學生通過大量的實驗練習來加深對知識點的理解,進而完全掌握課程內容。因此,提供良好的在線實驗環境和精心設計的實驗教學內容,對提升軟件課程MOOC教學效果的重要性不言而喻。
在目前的實驗教學中,有部分軟件編程類課程已經用OJ(online judge)等在線系統提交程序、自動對比程序結果等方式實現了實驗方式的改革,但是仍有很多與實驗環境緊密相關,涉及具體操作的實驗多是在專業實驗室實施,在輔導老師現場指導和答疑下,學生自主進行實驗,并進行相關實驗考核。這種傳統的實驗教學方式常常存在以下幾個方面的問題。
(1)資源使用效率低。學生只能在安裝了指定軟件的機房實驗,課余時間實驗室資源無法利用。在實驗課內未完成實驗任務的同學,只能中斷實驗。另一方面,教師在下課后通常無法查看學生的實驗進度,不能進一步指導和動態調整實驗任務,嚴重影響了實驗教學質量。
(2)實驗成果和相關數據的可利用性較差。學生在實驗過程中產生的實驗數據和行為特點(如操作中常犯的錯誤等),難以被有效地收集與積累。這使得教師難以通過統計分析等對教學內容和方法進行持續的調整和改善。
(3)維護和管理成本高。同一臺PC機需要反復安裝不同實驗所需的軟件和操作系統,造成機器設備損壞率增高,增加硬件投入和維護成本。對于不兼容的軟件需要反復卸載和重裝。計算機設備更新換代快,使用3~5年就需要重新購置新的機器,否則無法滿足性能要求。
(4)無法保證數據存儲的安全性和可靠性。實驗室由于安全性考慮,大多無法保存個人數據,導致教師和學生的個人文件和實驗數據容易丟失,長期使用移動存儲設備會帶來病毒入侵的風險。
針對以上問題,國內外學者積極探索和研究虛擬實驗系統的應用。目前已有一些虛擬實驗系統應用于實驗教學中的成果,如牛津大學開發的化學學科虛擬實驗系統[8]和美國約翰霍普金斯大學電子科學虛擬實驗[9]等,學習者可以通過開放的互聯網遠程訪問站點進行在線實驗。與國外相比,國內高校在該領域的研究起步較晚。當前,將實驗教學虛擬化以及融入MOOC環境還面臨許多困境,亟待發展。
參考其他虛擬實驗平臺設計方案與架構[3,7,10-11],通過構建一個適用于MOOC環境的基于云計算的計算機軟件核心課教學虛擬實驗平臺,可以充分發揮MOOC與虛擬實驗環境的優點,提高在線教學的質量。同時,若將該平臺推廣到線下的實驗教學中也可彌補傳統實驗教學的不足。
MOOC環境下的虛擬實驗系統主要包括MOOC系統平臺、實驗平臺、客戶端3部分,整體平臺構架如圖1所示。其中實驗平臺部分包括基于OpenStack云計算的虛擬實驗平臺和已有的其他在線實驗平臺(如OJ等在線測試系統)兩部分。該虛擬實驗平臺既可以在線下教學中直接使用,也可在MOOC系統中支持MOOC實驗。

圖1 MOOC環境中的虛擬實驗系統MOOCElab
基于OpenStack的虛擬實驗平臺是該系統的核心,主要包括資源管理、存儲管理、用戶管理、安全管理等部分。OpenStack主要通過虛擬化技術提供用戶自管理和自服務的虛擬計算環境。
1)云計算平臺搭建。
由于大部分的實驗需要以個人或者小組為單位擁有獨立的一個或者若干個虛擬機,所以該虛擬實驗系統的核心是云計算平臺。本例中使用開源軟件OpenStack,包含keystone、glance、nova、dashboard、neutron等組件。OpenStack可管理多種虛擬化平臺,本系統中搭建在CentOS的KVM平臺上,具體搭建過程參考OpenStack的官方網站。系統由一個控制節點和多個計算節點組成,根據虛擬機核數的不同,每個計算節點可提供20~50個虛擬機服務。
2)OpenStack平臺中創建虛擬實驗模板。
OpenStack平臺搭建完成之后,利用其中flavor(虛擬機模板)創建各門軟件核心實驗課程所需的虛擬機模板,包括操作系統以及相關的軟件環境。在具體實驗中,學生可利用虛擬機模板創建虛擬機。這些虛擬機的操作系統和軟件環境都已滿足相關課程需要,可以即開即用。該步結束后,該系統就可以單獨運行以支持非MOOC模式的虛擬實驗。
3)開源MOOC平臺搭建。
在虛擬機或實體機上搭建開源MOOC平臺。本方案中使用開源軟件OpenEdx,具體試安裝版本為bitnami-edx-ginkgo.2-6-linux-x64,安裝包下載地址https://bitnami.com/stack/edx/installer。
4)開源MOOC平臺與虛擬實驗系統集成。
在開源MOOC平臺上創建不同的MOOC課程。在不同課程中將虛擬實驗平臺(如云計算OpenStack平臺)鏈接加入課程內容中,并進行相應的用戶管理與授權,完成開源MOOC平臺與虛擬實驗系統的集成。
MOOCElab平臺管理的重點是用戶管理、資源管理、安全管理等。系統擁有3種類型用戶:教師用戶、學生用戶和管理員用戶。教師用戶是維護MOOC課程信息的人員,包括課程內容發布、教學過程推進、學生作業實驗查看批閱等。學生用戶選修MOOC課程,完成課程要求的學習內容和實驗內容,參加在線測試。管理員用戶管理和配置開源MOOC系統和虛擬實驗平臺的資源和安全等。其中MOOC平臺用戶與虛擬實驗平臺的用戶同步是用戶管理的關鍵。資源管理主要指由管理員對支撐虛擬實驗系統的物理機、虛擬機等設備資源進行管理,并對整個系統進行維護管理。安全管理主要指根據用戶和訪問對象的屬性,設定不同用戶的權限。
MOOC課程以及實驗環境準備完畢之后即可以投入使用。該系統的主要使用者是教師和學習者。教師使用MOOCElab平臺的流程如圖2所示。

圖2 教師使用MOOCElab平臺流程
MOOC學習者使用MOOCElab平臺的流程如圖3所示。
(1)彌補現有單獨MOOC平臺課程學習中缺乏實驗教學的不足,可以有效提高MOOC課程的整體學習質量。
(2)克服傳統實驗環境下硬件環境使用排他性而導致的實驗時間、實驗內容受限的缺點,虛擬實驗可以同時開展多門課程的實驗教學,學習者也可以隨時隨地利用該平臺開展相關課程的實踐。
(3)可以方便地進行實驗環境的部署、存儲和復用,節約實驗成本。
(4)為教師對實驗的有效指導提供可能性,教師可以隨時、異地利用虛擬環境指導學生實驗。
(5)可以集中存儲實驗程序、測試數據,為自動統計實驗進展數據、檢驗實驗結果等提供數據支撐,便于教師對學生實驗情況進行基于教學大數據的分析,推進教學質量的持續提升。

圖3 MOOC學習者使用MOOCElab平臺流程
我校數據庫原理課程的實驗傳統都是在實驗室PC機上事先準備好的操作系統和DBMS環境下進行。由于實驗室PC機配置為網絡啟動,每次計算機重新啟動時都會重置軟件環境,無法保存學生前一次的實驗結果。此外學生通常都會在本人的計算機上安裝實驗環境,用于在課余時間完成實驗課內未完成的部分。這使得學生在實驗環境準備上花費大量的時間,也增加了輔導教師的輔導工作量,降低了學生實驗的效率。
在數據庫原理實驗課的探索實踐中,我們選出部分學生試用該虛擬實驗平臺。實驗課開始之前,教師團隊首先創建準備好該課程的虛擬機模板,其中包括Windows操作系統、DBMS、基礎編程軟件和實驗課所需要的全部支撐資料。學生只需在首次實驗時創建個人賬戶,并利用數據庫原理實驗課的虛擬機模板創建各自的虛擬機,該虛擬機同時作為本地數據庫的服務端和數據庫訪問的客戶端。學生的全部實驗都在該虛擬機環境下進行。由于這些虛擬機的存續周期貫穿一個學期,學生在初次申請后無需再做配置,實驗課操作的連續性得到更好的保證。同時,學生也可以在課堂以外的任意空閑時間,在任意地點登錄虛擬機繼續實驗。在學生實驗課進展過程中,輔導教師可以通過登錄虛擬機等方式完成輔導工作,并可以查詢學生使用虛擬機時間的長短和時間段等統計信息,更好地掌握學生的學習情況。經過一年的試點應用,學生實驗效率明顯提高,教學效果也得到了改善。
留學生教學是我校本科教學中的重要環節。由于留學生普遍存在基礎知識薄弱,動手能力不強,漢語水平較低等問題,在實驗教學環節也面臨著更多問題。傳統實驗環境是以面向中國學生,實驗室PC機上的操作系統和應用軟件全部是中文版本,這使留學生在實驗環境準備上需要花費更多的時間。在面向留學生開設的軟件工程英文實驗課程中,我們也試用了該虛擬實驗系統。
由于本年度軟件工程實驗課留學生人數較少,將其分成兩個小組展開實驗。實驗之前由教師創建面向留學生的實驗環境的全英文版虛擬機模板,其中包括Windows操作系統、UML工具、基礎編程軟件、DBMS、版本管理工具等。學生只需在首次實驗時創建小組賬戶,并利用該課程的英文實驗模板創建各自的虛擬機。后續實驗均在各自小組的虛擬機上完成。由于每個小組的虛擬機也是各組的版本管理服務器,因此各種設計文檔、程序的開發設計過程均得到完整保留。經過一個學期的實踐,該系統可以有效改善留學生的實驗環境,有利于實驗課成果的展示與交流。
在數據結構實驗課程的實踐中,我們采用直接在MOOC系統中集成已有的數據結構課程實驗系統OJ。由于該OJ系統在我校的教學中已使用多年,取得了較好的應用效果,因此在與MOOC系統中集成時,僅需要關注兩部分的用戶信息同步。
在計算機軟件核心課的MOOC或SPOC教學中引入實驗教學是在線教育發展的趨勢,也是提高該類課程在線教育質量必須考慮的內容。將MOOC平臺與基于云計算的虛擬實驗平臺有機融合是實現線上實驗教學的有效方案之一。該方案可支持MOOC學習者完成課程實驗內容,合理共享實驗環境,降低實驗成本,促進實驗教學的持續改革。MOOC環境下的虛擬實驗平臺既可為MOOC或SPOC等線上教育提供實驗支撐,也可單獨作為線下實驗教學中的替代方案,解決傳統計算機軟件實驗課程中的問題。我們在計算機軟件專業的幾門課程教學中進行了初步實踐,取得的良好教學效果證明了該平臺的有效性。