周 圍,時慶國,陳連坤
(北京交通大學 計算機與信息技術學院,北京 100044)
從計算機能力培養到計算思維養成,是對高校計算機基礎教育的一個新的跨越和挑戰[1]。計算思維是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學廣度的一系列思維活動。計算機基礎課程對培養和訓練非計算機專業學生的計算思維起著重大的作用。由于計算思維教育著眼于一種思維模式的養成和訓練,因此對現有的教育觀念和方式提出了新的挑戰。設計構建基于開源軟件的實驗教學環境和云服務環境,可以讓實驗教學突破以往傳統單一軟件環境條件的束縛,提供良好的促進能力和思維訓練環境,讓學生思路開闊、心胸開闊,培養敢想、敢做、能做、做好的開放精神。
開源軟件(open source software, OSS)是一種源代碼可以任意獲取的計算機軟件,特征之一是源代碼自由再散布。軟件的版權持有人在軟件協議的規定之下保留一部分權利并允許用戶學習、修改,增進、提高軟件的質量。開源軟件的思想,對于推動計算機科學技術和應用發展起到了重要的作用。目前有數以千計的開源軟件項目涉及到操作系統、數字圖像編輯、文檔編輯等方面。開源軟件的不斷增長,給高校計算機基礎教學創造了許多新的機遇[2]。
現代化人才必須掌握信息技術,而計算機基礎教育是信息化普及的重要力量。關于計算機基礎教學和實驗的知識體系,教育部計算機科學與技術教學指導委員會(簡稱教指委)認為對于計算機基礎教學,它沒有數理化學科的深厚沉淀,沒有國外現成成果可搬,而且有著以應用為主的基礎實驗隨技術更新很快被淘汰等問題[3]。在計算機基礎知識學習過程中,實驗是知識傳播的重要工具,近來教育學者開始從重視教學轉向重視實驗,如何把知識點轉化為實驗資源,資源如何有效管理和傳播,學習者如何進行有效和個性化實驗學習,實驗如何體現重能力輕工具等問題,這些問題正在高校廣泛展開討論。
高校的計算機基礎教學實驗室一般是面向全校教學實驗,除擁有大規模計算機軟件實驗室之外、還設有硬件實驗室、網絡實驗室等多功能面向全校的開放實驗室,為全校在校生提供公共基礎課實驗環境以及課外上機、考試等服務。實驗環境以往都配有Windows系統作為教學實驗平臺,其上是支持各計算機實驗課程的相關軟件,如微軟的Office、VisualStudio編程系列,以及涉及到圖像視頻處理、科學研究等方面的軟件。這些軟件大多是公司產品,由于實驗室要滿足基礎教學實驗,需求規模較大,導致軟件投入成本和管理成本都較高。因此滿足實驗要求并節約成本的軟件管理配置環境也是實驗室需要考慮的問題。開源軟件在軟件使用授權、操作系統、數據庫、開發工具、基礎實驗教學應用以及在云服務的開發、實現方面有著巨大的優勢和開發基礎。
近幾年開源軟件發展迅猛,并且已得到廣泛應用。開放源碼對軟件的底層結構和核心部分提供基本的技術支持,一些眾所周知的商業軟件和網站(如谷歌)都是在開源軟件基礎上開發出來的,開源操作系統(如在1991年誕生的Linux)已成為僅次于Windows 操作系統的被廣泛使用的操作系統,而且它的用戶數還在不斷增長。有多種開源軟件的Linux操作系統可供選擇,包括:Ubuntu、FreeBSD、RedHat等,在操作系統之上又有很多開源的應用軟件供下載使用。以Ubuntu[4]為例,其“軟件中心”功能易于使用,它能讓用戶安裝和卸載許多流行的免費或開源軟件包,通過關鍵字搜索或瀏覽應用分類,然后選擇應用程序,即開始安裝軟件。表1是Ubuntu下常用的工具軟件,可以滿足大多數計算機基礎實驗課程需要。

表1 基于Linux操作系統下的教學實驗用開源軟件

表1(續)
基于開源軟件的數據庫系統有很多種,包括MySQL、PostgreSQL、InterBase等,其中MySQL使用非常廣泛,它是一個基于客戶/服務器體系的分布式數據庫管理系統,支持多用戶、多線程、跨平臺的關系型數據庫,用戶可以用多種語言編寫訪問MySQL數據庫的程序,它具有功能強、使用簡便、管理方便、安全可靠等優點,可以滿足大部分數據庫實驗的功能。
Matlab是著名的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,但價格不菲。與Matlab功能類似的開源軟件也有一些,例如Scilab,它是一種開源的科學工程計算軟件,其數據類型豐富,提供的語言轉換函數可以自動將用Matlab語言編寫的程序翻譯為Scilab語言,是很好的替代工具。
Visual Studio是微軟公司推出的開發環境,在Windows環境下應用廣泛。GCC和Code::Blocks運行在Linux環境下,可以提供輕便簡潔的C語言開發環境。另外,隨著編程語言的多樣化,Java開發環境、PHP開發環境在教學實驗中需求量也不斷增加。Eclipse通過插件組件可以構建面向C/C++、PHP的一致和統一的集成開發環境提供給用戶。這些開源軟件可以成為教學實驗的很好選擇。
高校在用的教學輔助系統大多采用傳統模式設計,存在著對軟硬件要求高、資源重復建設、系統擴充能力弱、可配置性差等難題?;谠朴嬎?cloud computing)的教學輔助和學習系統能夠統籌使用軟硬件資源,提供強大的信息服務和資源管理能力,提供最合理的服務[5]。云計算提供的服務有規模大、虛擬化、高可靠性、通用性、高可擴展性、按需服務、廉價、資源充分共享以及最大限度滿足學生個性化需求等特點,可以滿足大規模數據及學生資源訪問的控制能力。
云計算提供的服務可以分為3層。最底層稱為“基礎設施即服務”(infrastructure as a service,IaaS),IaaS將內存、I/O 設備、存儲和計算能力整合成一個虛擬的資源池為用戶群提供所需要的存儲資源和虛擬化服務器等服務;IaaS層的上面,是為特定需求定制的面向服務的主機環境平臺,稱為“平臺即服務”(platform as a service,PaaS);最上層為用戶提供其準備使用的應用,稱為“軟件即服務”(software as a service,SaaS)。對云計算平臺建設者而言,開源軟件是構建云計算平臺很重要的資源。近年來,隨著云計算的迅猛發展,大量用于構建云計算平臺的開源軟件相繼出現,每款軟件都具有各自的特色,可以解決不同的問題?,F在使用非常廣泛的軟件參見表2。

表2 面向云計算的開源軟件
IaaS軟件位于云計算服務的最底層,此類軟件向用戶提供虛擬機(VM)、虛擬存儲、集群管理和虛擬網絡等基礎設施資源。例如Eucalyptus,它是一種開源的軟件基礎結構,用來通過計算集群或工作站群實現彈性的云計算。PaaS軟件位于平臺服務層,此類軟件向用戶提供開發、運行和測試應用的環境,向用戶提供編程語言、編程框架、數據存儲和對laaS平臺的適應能力。例如Hadoop技術[6],它是Apache基金會開發的一個分布式系統基礎架構,用戶可以在不了解分布式底層細節的情況下開發分布式程序,充分利用集群的威力高速運算和存儲。SaaS軟件把應用作為服務提供給用戶,用戶不用再購買軟件,而改用向提供商租用基于Web的軟件來管理自己的經營活動,且無需對軟件進行維護。它可部署在IaaS和PaaS之上,可供用戶使用平臺提供的應用服務,而不需關心應用程序的具體運行情況。例如Zimbra[7],其構建的云計算平臺可以將用戶的多個郵箱集中起來,同時支持日歷、通訊錄和Web文檔管理,構成一個綜合辦公軟件環境。
但是每款軟件在解決問題時又都具有一定的局限性,這使得云計算平臺建設者在利用開源軟件構建云計算平臺時,需要在眾多的開源軟件中做出合理的抉擇。如何利用云計算平臺開源軟件構建符合特定需要的云計算平臺,是建設者面臨的一個問題。
通過云服務環境不但可以進行教學管理等輔助工作,還可向社會公眾提供專業特色的教學實驗資源等學習服務。云計算的無限擴展能力和虛擬化技術為多種應用系統并行大規模服務奠定堅實的基礎。搭建教學輔助和學習的云服務環境有許多方式,可以通過Iaas技術搭建集群服務器來構建一個大規模運行的硬件環境;可以選擇合適的PaaS平臺和技術,把開發環境、服務器平臺、硬件資源等服務集成給用戶,使用戶可在此基礎架構基礎上開發應用;也可以選擇SaaS,選擇現有的服務補充、擴展自己的既有應用,不再需要購置傳統的硬件服務器。因此需要結合自身實際,選擇合適的云計算方案和開源技術來設計新型的教學輔助和學習系統,將云計算技術的優勢應用到教育領域。
目前基于開源軟件的教學輔助與學習環境如Moodle、Sakai等軟件應用非常廣泛。Moodle(modular object-oriented dynamic learning environment,模塊化面向對象的動態學習環境)是一個基于建構主義教育理論開發的課程管理開源系統,自發布以來被迅速在教育領域推廣且不斷升級[8-9]。隨著Moodle的廣泛應用,一些如大規模部署、個性化支持等需求也隨之出現。傳統的單一站點提供全局服務的Moodle部署方式一般適用于小型教學部門這一層面,難于涵蓋大中小各層次粒度的使用需求。從配置個性化的角度,如果均部署單獨的系統來滿足班級乃至個別教師的獨立Moodle系統需要,會造成大量的資源浪費,并且在設備性能和安全性方面都存在一定的風險。基于云計算的部署可提供多種途徑滿足這些需求[10]。云計算的IaaS層提供按需分配資源的能力,為快速部署和大規模細粒度部署提供了保證;云計算通過虛擬化技術可以支持各種虛擬機映像,為服務可免配置(配置定制化)和穩定性提供保證;云計算支持私有云方式,允許企業和組織構筑屬于自己的Moodle云,確保數據的安全性;云計算的3層體系為系統提供足夠的伸縮性和性能擴展能力[11-12]。
利用開源軟件構建計算機基礎教學實驗環境和云服務平臺是大勢所趨。在計算機基礎教學實驗環節中構建開源環境,可以使高校實驗教學突破以往傳統單一軟件環境條件的束縛,提供良好的促進能力和思維訓練的環境,培養學生敢想、敢做、能做、做好的開放精神。隨著基礎教學建設和云計算技術的進一步成熟和普及,基于開源軟件的云服務教學實驗平臺會早日廣泛使用。文中所列舉出的開源軟件只是很少的一部分,隨著開源進程的全球推動,用于實驗教學服務的開源軟件會越來越豐富。
[1] 王移芝,魯凌云,周圍.以計算思維為航標拓展計算機基礎課程改革的新思路[J].中國大學教育,2012(6):39-41.
[2] 趙國棟,黃永中.開源軟件在高校的應用與推廣策略研究[J].中國遠程教育, 2007(1):62-67.
[3] 教育部高等學校計算機基礎課程教學指導委員會.計算機基礎課程教學基本要求[M].北京:高等教育出版社, 2011.
[4] Ubuntu[EB/OL].(2013-06-14)[2013-07-20].http://www.ubuntu.org.cn/
[5] 張建勛,古志民,鄭超.云計算研究進展綜述[J].計算機應用研究,2010,27(2):430-433.
[6] Hadoop[EB/OL].(2012-10-04)[2013-07-20].http://hadoop.apache.org/.
[7] Zimbra[EB/OL].(2012-10-05)[2013-07-20].http://www.zimbra.com/.
[8] Moodle[EB/OL].(2011-07-08)[2013-07-20].https://moodle.org/.
[9] Sakai[EB/OL].(2013-02-20)[2013-07-20].http://www.sakaiproject.org.
[10] 鄒建梅,原變青.利用云計算技術構筑大規模Moodle應用系統的研究[J].中國教育技術裝備,2011(29):56-59.
[11] 劉貫南.云計算時代學習環境的整合研究Moodle與Google Apps的整合[D].上海:上海師范大學,2010.
[12] 牟占生,路高輝,封娜娜.基于EyeOs+Moodle的個人學習云環境的構建研究[J].現代教育技術,2012,22(5):93-96.