周 圍,時(shí)慶國(guó),陳連坤
(北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044)
從計(jì)算機(jī)能力培養(yǎng)到計(jì)算思維養(yǎng)成,是對(duì)高校計(jì)算機(jī)基礎(chǔ)教育的一個(gè)新的跨越和挑戰(zhàn)[1]。計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)廣度的一系列思維活動(dòng)。計(jì)算機(jī)基礎(chǔ)課程對(duì)培養(yǎng)和訓(xùn)練非計(jì)算機(jī)專業(yè)學(xué)生的計(jì)算思維起著重大的作用。由于計(jì)算思維教育著眼于一種思維模式的養(yǎng)成和訓(xùn)練,因此對(duì)現(xiàn)有的教育觀念和方式提出了新的挑戰(zhàn)。設(shè)計(jì)構(gòu)建基于開源軟件的實(shí)驗(yàn)教學(xué)環(huán)境和云服務(wù)環(huán)境,可以讓實(shí)驗(yàn)教學(xué)突破以往傳統(tǒng)單一軟件環(huán)境條件的束縛,提供良好的促進(jìn)能力和思維訓(xùn)練環(huán)境,讓學(xué)生思路開闊、心胸開闊,培養(yǎng)敢想、敢做、能做、做好的開放精神。
開源軟件(open source software, OSS)是一種源代碼可以任意獲取的計(jì)算機(jī)軟件,特征之一是源代碼自由再散布。軟件的版權(quán)持有人在軟件協(xié)議的規(guī)定之下保留一部分權(quán)利并允許用戶學(xué)習(xí)、修改,增進(jìn)、提高軟件的質(zhì)量。開源軟件的思想,對(duì)于推動(dòng)計(jì)算機(jī)科學(xué)技術(shù)和應(yīng)用發(fā)展起到了重要的作用。目前有數(shù)以千計(jì)的開源軟件項(xiàng)目涉及到操作系統(tǒng)、數(shù)字圖像編輯、文檔編輯等方面。開源軟件的不斷增長(zhǎng),給高校計(jì)算機(jī)基礎(chǔ)教學(xué)創(chuàng)造了許多新的機(jī)遇[2]。
現(xiàn)代化人才必須掌握信息技術(shù),而計(jì)算機(jī)基礎(chǔ)教育是信息化普及的重要力量。關(guān)于計(jì)算機(jī)基礎(chǔ)教學(xué)和實(shí)驗(yàn)的知識(shí)體系,教育部計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會(huì)(簡(jiǎn)稱教指委)認(rèn)為對(duì)于計(jì)算機(jī)基礎(chǔ)教學(xué),它沒(méi)有數(shù)理化學(xué)科的深厚沉淀,沒(méi)有國(guó)外現(xiàn)成成果可搬,而且有著以應(yīng)用為主的基礎(chǔ)實(shí)驗(yàn)隨技術(shù)更新很快被淘汰等問(wèn)題[3]。在計(jì)算機(jī)基礎(chǔ)知識(shí)學(xué)習(xí)過(guò)程中,實(shí)驗(yàn)是知識(shí)傳播的重要工具,近來(lái)教育學(xué)者開始從重視教學(xué)轉(zhuǎn)向重視實(shí)驗(yàn),如何把知識(shí)點(diǎn)轉(zhuǎn)化為實(shí)驗(yàn)資源,資源如何有效管理和傳播,學(xué)習(xí)者如何進(jìn)行有效和個(gè)性化實(shí)驗(yàn)學(xué)習(xí),實(shí)驗(yàn)如何體現(xiàn)重能力輕工具等問(wèn)題,這些問(wèn)題正在高校廣泛展開討論。
高校的計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)室一般是面向全校教學(xué)實(shí)驗(yàn),除擁有大規(guī)模計(jì)算機(jī)軟件實(shí)驗(yàn)室之外、還設(shè)有硬件實(shí)驗(yàn)室、網(wǎng)絡(luò)實(shí)驗(yàn)室等多功能面向全校的開放實(shí)驗(yàn)室,為全校在校生提供公共基礎(chǔ)課實(shí)驗(yàn)環(huán)境以及課外上機(jī)、考試等服務(wù)。實(shí)驗(yàn)環(huán)境以往都配有Windows系統(tǒng)作為教學(xué)實(shí)驗(yàn)平臺(tái),其上是支持各計(jì)算機(jī)實(shí)驗(yàn)課程的相關(guān)軟件,如微軟的Office、VisualStudio編程系列,以及涉及到圖像視頻處理、科學(xué)研究等方面的軟件。這些軟件大多是公司產(chǎn)品,由于實(shí)驗(yàn)室要滿足基礎(chǔ)教學(xué)實(shí)驗(yàn),需求規(guī)模較大,導(dǎo)致軟件投入成本和管理成本都較高。因此滿足實(shí)驗(yàn)要求并節(jié)約成本的軟件管理配置環(huán)境也是實(shí)驗(yàn)室需要考慮的問(wèn)題。開源軟件在軟件使用授權(quán)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、開發(fā)工具、基礎(chǔ)實(shí)驗(yàn)教學(xué)應(yīng)用以及在云服務(wù)的開發(fā)、實(shí)現(xiàn)方面有著巨大的優(yōu)勢(shì)和開發(fā)基礎(chǔ)。
近幾年開源軟件發(fā)展迅猛,并且已得到廣泛應(yīng)用。開放源碼對(duì)軟件的底層結(jié)構(gòu)和核心部分提供基本的技術(shù)支持,一些眾所周知的商業(yè)軟件和網(wǎng)站(如谷歌)都是在開源軟件基礎(chǔ)上開發(fā)出來(lái)的,開源操作系統(tǒng)(如在1991年誕生的Linux)已成為僅次于Windows 操作系統(tǒng)的被廣泛使用的操作系統(tǒng),而且它的用戶數(shù)還在不斷增長(zhǎng)。有多種開源軟件的Linux操作系統(tǒng)可供選擇,包括:Ubuntu、FreeBSD、RedHat等,在操作系統(tǒng)之上又有很多開源的應(yīng)用軟件供下載使用。以Ubuntu[4]為例,其“軟件中心”功能易于使用,它能讓用戶安裝和卸載許多流行的免費(fèi)或開源軟件包,通過(guò)關(guān)鍵字搜索或?yàn)g覽應(yīng)用分類,然后選擇應(yīng)用程序,即開始安裝軟件。表1是Ubuntu下常用的工具軟件,可以滿足大多數(shù)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)課程需要。
表1 基于Linux操作系統(tǒng)下的教學(xué)實(shí)驗(yàn)用開源軟件
表1(續(xù))
基于開源軟件的數(shù)據(jù)庫(kù)系統(tǒng)有很多種,包括MySQL、PostgreSQL、InterBase等,其中MySQL使用非常廣泛,它是一個(gè)基于客戶/服務(wù)器體系的分布式數(shù)據(jù)庫(kù)管理系統(tǒng),支持多用戶、多線程、跨平臺(tái)的關(guān)系型數(shù)據(jù)庫(kù),用戶可以用多種語(yǔ)言編寫訪問(wèn)MySQL數(shù)據(jù)庫(kù)的程序,它具有功能強(qiáng)、使用簡(jiǎn)便、管理方便、安全可靠等優(yōu)點(diǎn),可以滿足大部分?jǐn)?shù)據(jù)庫(kù)實(shí)驗(yàn)的功能。
Matlab是著名的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語(yǔ)言和交互式環(huán)境,但價(jià)格不菲。與Matlab功能類似的開源軟件也有一些,例如Scilab,它是一種開源的科學(xué)工程計(jì)算軟件,其數(shù)據(jù)類型豐富,提供的語(yǔ)言轉(zhuǎn)換函數(shù)可以自動(dòng)將用Matlab語(yǔ)言編寫的程序翻譯為Scilab語(yǔ)言,是很好的替代工具。
Visual Studio是微軟公司推出的開發(fā)環(huán)境,在Windows環(huán)境下應(yīng)用廣泛。GCC和Code::Blocks運(yùn)行在Linux環(huán)境下,可以提供輕便簡(jiǎn)潔的C語(yǔ)言開發(fā)環(huán)境。另外,隨著編程語(yǔ)言的多樣化,Java開發(fā)環(huán)境、PHP開發(fā)環(huán)境在教學(xué)實(shí)驗(yàn)中需求量也不斷增加。Eclipse通過(guò)插件組件可以構(gòu)建面向C/C++、PHP的一致和統(tǒng)一的集成開發(fā)環(huán)境提供給用戶。這些開源軟件可以成為教學(xué)實(shí)驗(yàn)的很好選擇。
高校在用的教學(xué)輔助系統(tǒng)大多采用傳統(tǒng)模式設(shè)計(jì),存在著對(duì)軟硬件要求高、資源重復(fù)建設(shè)、系統(tǒng)擴(kuò)充能力弱、可配置性差等難題。基于云計(jì)算(cloud computing)的教學(xué)輔助和學(xué)習(xí)系統(tǒng)能夠統(tǒng)籌使用軟硬件資源,提供強(qiáng)大的信息服務(wù)和資源管理能力,提供最合理的服務(wù)[5]。云計(jì)算提供的服務(wù)有規(guī)模大、虛擬化、高可靠性、通用性、高可擴(kuò)展性、按需服務(wù)、廉價(jià)、資源充分共享以及最大限度滿足學(xué)生個(gè)性化需求等特點(diǎn),可以滿足大規(guī)模數(shù)據(jù)及學(xué)生資源訪問(wèn)的控制能力。
云計(jì)算提供的服務(wù)可以分為3層。最底層稱為“基礎(chǔ)設(shè)施即服務(wù)”(infrastructure as a service,IaaS),IaaS將內(nèi)存、I/O 設(shè)備、存儲(chǔ)和計(jì)算能力整合成一個(gè)虛擬的資源池為用戶群提供所需要的存儲(chǔ)資源和虛擬化服務(wù)器等服務(wù);IaaS層的上面,是為特定需求定制的面向服務(wù)的主機(jī)環(huán)境平臺(tái),稱為“平臺(tái)即服務(wù)”(platform as a service,PaaS);最上層為用戶提供其準(zhǔn)備使用的應(yīng)用,稱為“軟件即服務(wù)”(software as a service,SaaS)。對(duì)云計(jì)算平臺(tái)建設(shè)者而言,開源軟件是構(gòu)建云計(jì)算平臺(tái)很重要的資源。近年來(lái),隨著云計(jì)算的迅猛發(fā)展,大量用于構(gòu)建云計(jì)算平臺(tái)的開源軟件相繼出現(xiàn),每款軟件都具有各自的特色,可以解決不同的問(wèn)題?,F(xiàn)在使用非常廣泛的軟件參見(jiàn)表2。
表2 面向云計(jì)算的開源軟件
IaaS軟件位于云計(jì)算服務(wù)的最底層,此類軟件向用戶提供虛擬機(jī)(VM)、虛擬存儲(chǔ)、集群管理和虛擬網(wǎng)絡(luò)等基礎(chǔ)設(shè)施資源。例如Eucalyptus,它是一種開源的軟件基礎(chǔ)結(jié)構(gòu),用來(lái)通過(guò)計(jì)算集群或工作站群實(shí)現(xiàn)彈性的云計(jì)算。PaaS軟件位于平臺(tái)服務(wù)層,此類軟件向用戶提供開發(fā)、運(yùn)行和測(cè)試應(yīng)用的環(huán)境,向用戶提供編程語(yǔ)言、編程框架、數(shù)據(jù)存儲(chǔ)和對(duì)laaS平臺(tái)的適應(yīng)能力。例如Hadoop技術(shù)[6],它是Apache基金會(huì)開發(fā)的一個(gè)分布式系統(tǒng)基礎(chǔ)架構(gòu),用戶可以在不了解分布式底層細(xì)節(jié)的情況下開發(fā)分布式程序,充分利用集群的威力高速運(yùn)算和存儲(chǔ)。SaaS軟件把應(yīng)用作為服務(wù)提供給用戶,用戶不用再購(gòu)買軟件,而改用向提供商租用基于Web的軟件來(lái)管理自己的經(jīng)營(yíng)活動(dòng),且無(wú)需對(duì)軟件進(jìn)行維護(hù)。它可部署在IaaS和PaaS之上,可供用戶使用平臺(tái)提供的應(yīng)用服務(wù),而不需關(guān)心應(yīng)用程序的具體運(yùn)行情況。例如Zimbra[7],其構(gòu)建的云計(jì)算平臺(tái)可以將用戶的多個(gè)郵箱集中起來(lái),同時(shí)支持日歷、通訊錄和Web文檔管理,構(gòu)成一個(gè)綜合辦公軟件環(huán)境。
但是每款軟件在解決問(wèn)題時(shí)又都具有一定的局限性,這使得云計(jì)算平臺(tái)建設(shè)者在利用開源軟件構(gòu)建云計(jì)算平臺(tái)時(shí),需要在眾多的開源軟件中做出合理的抉擇。如何利用云計(jì)算平臺(tái)開源軟件構(gòu)建符合特定需要的云計(jì)算平臺(tái),是建設(shè)者面臨的一個(gè)問(wèn)題。
通過(guò)云服務(wù)環(huán)境不但可以進(jìn)行教學(xué)管理等輔助工作,還可向社會(huì)公眾提供專業(yè)特色的教學(xué)實(shí)驗(yàn)資源等學(xué)習(xí)服務(wù)。云計(jì)算的無(wú)限擴(kuò)展能力和虛擬化技術(shù)為多種應(yīng)用系統(tǒng)并行大規(guī)模服務(wù)奠定堅(jiān)實(shí)的基礎(chǔ)。搭建教學(xué)輔助和學(xué)習(xí)的云服務(wù)環(huán)境有許多方式,可以通過(guò)Iaas技術(shù)搭建集群服務(wù)器來(lái)構(gòu)建一個(gè)大規(guī)模運(yùn)行的硬件環(huán)境;可以選擇合適的PaaS平臺(tái)和技術(shù),把開發(fā)環(huán)境、服務(wù)器平臺(tái)、硬件資源等服務(wù)集成給用戶,使用戶可在此基礎(chǔ)架構(gòu)基礎(chǔ)上開發(fā)應(yīng)用;也可以選擇SaaS,選擇現(xiàn)有的服務(wù)補(bǔ)充、擴(kuò)展自己的既有應(yīng)用,不再需要購(gòu)置傳統(tǒng)的硬件服務(wù)器。因此需要結(jié)合自身實(shí)際,選擇合適的云計(jì)算方案和開源技術(shù)來(lái)設(shè)計(jì)新型的教學(xué)輔助和學(xué)習(xí)系統(tǒng),將云計(jì)算技術(shù)的優(yōu)勢(shì)應(yīng)用到教育領(lǐng)域。
目前基于開源軟件的教學(xué)輔助與學(xué)習(xí)環(huán)境如Moodle、Sakai等軟件應(yīng)用非常廣泛。Moodle(modular object-oriented dynamic learning environment,模塊化面向?qū)ο蟮膭?dòng)態(tài)學(xué)習(xí)環(huán)境)是一個(gè)基于建構(gòu)主義教育理論開發(fā)的課程管理開源系統(tǒng),自發(fā)布以來(lái)被迅速在教育領(lǐng)域推廣且不斷升級(jí)[8-9]。隨著Moodle的廣泛應(yīng)用,一些如大規(guī)模部署、個(gè)性化支持等需求也隨之出現(xiàn)。傳統(tǒng)的單一站點(diǎn)提供全局服務(wù)的Moodle部署方式一般適用于小型教學(xué)部門這一層面,難于涵蓋大中小各層次粒度的使用需求。從配置個(gè)性化的角度,如果均部署單獨(dú)的系統(tǒng)來(lái)滿足班級(jí)乃至個(gè)別教師的獨(dú)立Moodle系統(tǒng)需要,會(huì)造成大量的資源浪費(fèi),并且在設(shè)備性能和安全性方面都存在一定的風(fēng)險(xiǎn)?;谠朴?jì)算的部署可提供多種途徑滿足這些需求[10]。云計(jì)算的IaaS層提供按需分配資源的能力,為快速部署和大規(guī)模細(xì)粒度部署提供了保證;云計(jì)算通過(guò)虛擬化技術(shù)可以支持各種虛擬機(jī)映像,為服務(wù)可免配置(配置定制化)和穩(wěn)定性提供保證;云計(jì)算支持私有云方式,允許企業(yè)和組織構(gòu)筑屬于自己的Moodle云,確保數(shù)據(jù)的安全性;云計(jì)算的3層體系為系統(tǒng)提供足夠的伸縮性和性能擴(kuò)展能力[11-12]。
利用開源軟件構(gòu)建計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)環(huán)境和云服務(wù)平臺(tái)是大勢(shì)所趨。在計(jì)算機(jī)基礎(chǔ)教學(xué)實(shí)驗(yàn)環(huán)節(jié)中構(gòu)建開源環(huán)境,可以使高校實(shí)驗(yàn)教學(xué)突破以往傳統(tǒng)單一軟件環(huán)境條件的束縛,提供良好的促進(jìn)能力和思維訓(xùn)練的環(huán)境,培養(yǎng)學(xué)生敢想、敢做、能做、做好的開放精神。隨著基礎(chǔ)教學(xué)建設(shè)和云計(jì)算技術(shù)的進(jìn)一步成熟和普及,基于開源軟件的云服務(wù)教學(xué)實(shí)驗(yàn)平臺(tái)會(huì)早日廣泛使用。文中所列舉出的開源軟件只是很少的一部分,隨著開源進(jìn)程的全球推動(dòng),用于實(shí)驗(yàn)教學(xué)服務(wù)的開源軟件會(huì)越來(lái)越豐富。
[1] 王移芝,魯凌云,周圍.以計(jì)算思維為航標(biāo)拓展計(jì)算機(jī)基礎(chǔ)課程改革的新思路[J].中國(guó)大學(xué)教育,2012(6):39-41.
[2] 趙國(guó)棟,黃永中.開源軟件在高校的應(yīng)用與推廣策略研究[J].中國(guó)遠(yuǎn)程教育, 2007(1):62-67.
[3] 教育部高等學(xué)校計(jì)算機(jī)基礎(chǔ)課程教學(xué)指導(dǎo)委員會(huì).計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求[M].北京:高等教育出版社, 2011.
[4] Ubuntu[EB/OL].(2013-06-14)[2013-07-20].http://www.ubuntu.org.cn/
[5] 張建勛,古志民,鄭超.云計(jì)算研究進(jìn)展綜述[J].計(jì)算機(jī)應(yīng)用研究,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] 鄒建梅,原變青.利用云計(jì)算技術(shù)構(gòu)筑大規(guī)模Moodle應(yīng)用系統(tǒng)的研究[J].中國(guó)教育技術(shù)裝備,2011(29):56-59.
[11] 劉貫?zāi)?云計(jì)算時(shí)代學(xué)習(xí)環(huán)境的整合研究Moodle與Google Apps的整合[D].上海:上海師范大學(xué),2010.
[12] 牟占生,路高輝,封娜娜.基于EyeOs+Moodle的個(gè)人學(xué)習(xí)云環(huán)境的構(gòu)建研究[J].現(xiàn)代教育技術(shù),2012,22(5):93-96.