劉浩文,李 兵,桂 浩,李清安,朱衛(wèi)平,林 馥
(武漢大學(xué) 計算機(jī)學(xué)院,湖北 武漢 430072)
云計算技術(shù)是近年來計算機(jī)和互聯(lián)網(wǎng)領(lǐng)域的研究和應(yīng)用熱點,被視為科技產(chǎn)業(yè)的下一次革命,它將帶來企業(yè)工作方式和商業(yè)模式的根本性改變。工信部2018年印發(fā)的《推動企業(yè)上云實施指南(2018-2020年)》指出,云計算是信息技術(shù)發(fā)展和服務(wù)模式創(chuàng)新的集中體現(xiàn),是信息化發(fā)展的重大變革和必然趨勢。支持企業(yè)上云,有利于推動企業(yè)加快數(shù)字化、網(wǎng)絡(luò)化、智能化轉(zhuǎn)型[1]。
隨著云計算技術(shù)的迅速發(fā)展,國內(nèi)外云計算平臺呈現(xiàn)多樣化局面,云計算市場也呈現(xiàn)出繁榮之勢,這對高校培養(yǎng)具備跨界整合能力的高素質(zhì)復(fù)合型和創(chuàng)新型技術(shù)人才提出了更高要求。因此,云計算相關(guān)課程正成為計算機(jī)類專業(yè)的核心課程,甚至是其他專業(yè)的熱門選修課程。
目前,國內(nèi)越來越多的高校根據(jù)新工科建設(shè)需求,開設(shè)了云計算相關(guān)課程,培養(yǎng)學(xué)生對相關(guān)前沿技術(shù)進(jìn)行實踐和應(yīng)用的能力。部分走在前面的高校和學(xué)院甚至根據(jù)各自實際情況開展了各式各樣的教學(xué)探索與實踐。
早在2015年,電子科技大學(xué)以CDIO為指導(dǎo)思想,從工程化的角度確定了人才培養(yǎng)標(biāo)準(zhǔn)和能力培養(yǎng)矩陣,對課程體系進(jìn)行梳理,并進(jìn)行相應(yīng)教學(xué)改革[2]。2017年,河海大學(xué)物聯(lián)網(wǎng)工程學(xué)院就開設(shè)了云計算技術(shù)與應(yīng)用課程,并采用IBM OpenStack Solution for System X云平臺解決方案設(shè)計企業(yè)級私有云架構(gòu),構(gòu)建基于OpenStack的云計算實驗平臺,并提供虛擬實驗環(huán)境[3]。2018年起,中國石油大學(xué)與亞馬遜AWS產(chǎn)學(xué)合作共建“云創(chuàng)學(xué)院”,在課程內(nèi)容建設(shè)、題庫建設(shè)、形成性平時成績考核方面進(jìn)行改革[4]。2019年,華南理工大學(xué)與亞馬遜AWS合作,以實際應(yīng)用為出發(fā)點,對云計算課程進(jìn)行合理劃分,并利用沙箱環(huán)境開展實驗教學(xué)[5]。2021年,中國地質(zhì)大學(xué)基于云計算產(chǎn)業(yè)鏈的劃分與區(qū)分,將云計算相關(guān)的就業(yè)崗位大致劃分為云系統(tǒng)架構(gòu)師、云應(yīng)用開發(fā)工程師、云平臺部署與運維工程師,然后梳理崗位對能力的要求,提出一套虛擬化及云計算實踐培養(yǎng)體系[6]。
然而,云計算技術(shù)體系龐雜,具有多學(xué)科交叉、實用性強(qiáng)、內(nèi)容抽象且更新較快等特點。筆者通過調(diào)研及與同行交流發(fā)現(xiàn),在云計算課程教學(xué)過程中,仍然存在比較多的問題,教學(xué)效果不甚理想。
(1)人才培養(yǎng)方案未及時更新,課程體系不健全。部分高校對于課程設(shè)置缺乏較為成熟和體系化的思路,往往獨立設(shè)置課程,既無法利用和銜接現(xiàn)有課程,也無法對現(xiàn)有體系起到深化和促進(jìn)作用,導(dǎo)致課程嵌入過于突兀,內(nèi)在關(guān)聯(lián)性不強(qiáng),無法成為整個課程體系的有機(jī)組成部分。
(2)課程深淺不一,內(nèi)容無序混亂。學(xué)生基礎(chǔ)水平不統(tǒng)一,加上學(xué)分學(xué)時等因素,導(dǎo)致內(nèi)容選取、深度和廣度都大不相同。有的課程側(cè)重于講授云計算理論,有的課程側(cè)重于講授虛擬化技術(shù),有的課程則側(cè)重于講授容器技術(shù),還有的課程拓展性講授大數(shù)據(jù)方面的理論和實踐,甚至是云安全方面的知識。
(3)教學(xué)方法落后,課程內(nèi)容與實際脫節(jié)。有的課程以純導(dǎo)論式和課堂教學(xué)方式展開。一方面,部分云計算實驗對環(huán)境的搭建和計算機(jī)性能要求較高,往往只能學(xué)習(xí)理論知識,缺乏實踐經(jīng)驗;另一方面,一些復(fù)雜的實驗無法在課堂上進(jìn)行,從而導(dǎo)致在課堂上很難去積累豐富的實踐經(jīng)驗。有的課程是以純實驗指導(dǎo)代替教學(xué)。一方面,云計算課程實踐性很強(qiáng),導(dǎo)致部分教師和學(xué)生都認(rèn)為沒有理論可講;另一方面,大部分云計算實驗都是驗證性實驗,部分實驗指導(dǎo)教師沒有做到與時俱進(jìn),導(dǎo)致實驗內(nèi)容千篇一律,而在進(jìn)行課堂實驗指導(dǎo)時,也只能提供一些驗證性問題,而不能逐一指導(dǎo)。
(4)教學(xué)資源單一。一方面,一個高?;?qū)W院內(nèi)兼具云計算相關(guān)豐富理論和實踐經(jīng)驗的高校教師較少,需要投入非常多的精力才能組織起具有一定質(zhì)量的教學(xué)課件、實驗案例等資源,導(dǎo)致愿意投入時間和精力的優(yōu)秀教師少,優(yōu)秀的教學(xué)資源自然有限;另一方面,受到人員、場地、資金、影響力等因素,能夠與行業(yè)內(nèi)云計算頭部企業(yè)進(jìn)行合作,甚至與多個有影響力的企業(yè)同時合作,開展課程共建、資源共享的機(jī)會也不多,能參考的優(yōu)秀案例也自然有限。
武漢大學(xué)計算機(jī)學(xué)院有3個專業(yè):計算機(jī)科學(xué)與技術(shù)、軟件工程、人工智能。在2018年培養(yǎng)方案中設(shè)置了云計算相關(guān)課程,但直到2021年春季才對大三學(xué)生正式講授云計算相關(guān)課程,開設(shè)云計算課程時間較晚也較短,且面臨諸多問題:①各專業(yè)課程設(shè)置不一樣。軟件工程專業(yè)認(rèn)為云計算技術(shù)代表著軟件工程未來新的開發(fā)與運維新工具、新方向,因此將該課程設(shè)置成專業(yè)教育必修課程,共60學(xué)時。人工智能專業(yè)和計算機(jī)科學(xué)與技術(shù)專業(yè)則將該課程設(shè)置成專業(yè)教育選修課,均為48學(xué)時。不同專業(yè)的指導(dǎo)思想不同,最終導(dǎo)致學(xué)生的重視程度和積極性都有較大差異;②開課對象的層次和水平不一。開課對象主要包括計算機(jī)學(xué)院3個專業(yè)的普通班,還包括計算機(jī)弘毅班、軟件工程專業(yè)卓工班,也包括非計算機(jī)相關(guān)專業(yè)學(xué)生的雙學(xué)位班以及外國留學(xué)生班,不僅對象多、課頭多、課時不同,而且要求也不一樣。對教師選取教材、選取授課內(nèi)容、把握實驗教學(xué)深度和考核程度都造成特別大的困難:③教學(xué)資源并不太豐富。由于開課時間短,并沒有積累特別豐富的課程課件、實驗案例。
在新工科背景下,課程體系的制定應(yīng)堅持變與不變,抓住人才培養(yǎng)的核心能力與素養(yǎng),保持核心基礎(chǔ)課程不變,基礎(chǔ)內(nèi)容不變,同時以行業(yè)需求為導(dǎo)向,不斷將一線行業(yè)或企業(yè)所需要的新技術(shù)、新標(biāo)準(zhǔn)補(bǔ)充到教學(xué)內(nèi)容中甚至新開設(shè)課程中。唯有如此,才能保證教學(xué)質(zhì)量、教學(xué)效果,更好地培養(yǎng)國家所需的高素質(zhì)復(fù)合型和創(chuàng)新型技術(shù)人才。
(1)梳理相關(guān)前導(dǎo)課程。由于云計算平臺搭建與運維涉及操作系統(tǒng)尤其是Linux操作系統(tǒng)知識,以及網(wǎng)絡(luò)通信原理,而云計算的應(yīng)用大部分是具有分布式使用場景的互聯(lián)網(wǎng)應(yīng)用或微服務(wù),而這部分應(yīng)用程序的基礎(chǔ)技術(shù)是基于J2EE架構(gòu)的。因此,云計算平臺與技術(shù)的前導(dǎo)課程應(yīng)包括操作系統(tǒng)原理、計算機(jī)網(wǎng)絡(luò)、J2EE架構(gòu)程序設(shè)計。
(2)整理云計算相關(guān)核心知識模塊。根據(jù)定義,云計算是分布式計算的一種,指通過網(wǎng)絡(luò)“云”為用戶提供按需使用共享資源的一種IT服務(wù)模式,現(xiàn)在大家討論云計算,已經(jīng)不單單是一種分布式計算,而是分布式計算、效用計算、負(fù)載均衡、并行計算、網(wǎng)絡(luò)存儲、熱備份冗余和虛擬化等計算機(jī)技術(shù)混合演進(jìn)并躍升的結(jié)果,用云服務(wù)表達(dá)可能更加貼切,也即通過整合云計算硬件資源和各類云計算平臺和應(yīng)用資源提供云服務(wù)。因此,分布式、虛擬化作為云計算使能的核心技術(shù),應(yīng)是講授的基礎(chǔ)。而隨著Docker技術(shù)的成熟,容器化成為解決傳統(tǒng)虛擬化所帶來障礙的解決方案,因此容器化技術(shù)也應(yīng)作為講授的核心內(nèi)容。
此外,為了保持與時俱進(jìn),課程組還選擇當(dāng)前云原生領(lǐng)域的一些前沿技術(shù),將其作為軟件工程專業(yè)的特色內(nèi)容,最終形成如表1所示的課程模塊和知識結(jié)構(gòu)。
Table 1 Course module and knowledge structure表1 課程模塊與知識結(jié)構(gòu)
在整理并確定好上課程體系和知識模塊之后,課程組采取分工協(xié)作的形式,分頭準(zhǔn)備相應(yīng)的教學(xué)課件和實驗案例,構(gòu)建較為完備且成體系的課件庫和實驗案例庫,方便教學(xué)實施。
在實施過程中,可以根據(jù)不同的專業(yè)、不同的授課對象和學(xué)時情況,進(jìn)行相應(yīng)的靈活搭配和調(diào)整,在課堂授課時或酌情精簡概述或展開細(xì)講。例如:針對計科和人工智能專業(yè)的學(xué)生,將更加聚焦于虛擬化技術(shù)和容器技術(shù),確保學(xué)生會搭建云平臺并使用云平臺以輔助將來可能從事的理論和實踐研究;而針對軟件工程專業(yè)的學(xué)生,則將更加聚焦于容器化技術(shù)、云原生其他核心技術(shù),讓學(xué)生體會更加復(fù)雜的工程應(yīng)用場景和技術(shù)挑戰(zhàn)。
課程組會跟蹤云原生的生態(tài)體系發(fā)展,每年安排人員和時間,將新的較為成熟的技術(shù)充實到教學(xué)內(nèi)容和實驗案例中,保持課程的長效滾動建設(shè)。
為了加強(qiáng)師資力量建設(shè),引入企業(yè)實際案例。課程組與華為合作,參與CMOOC聯(lián)盟-華為技術(shù)公司“智能基座”產(chǎn)教融合協(xié)同育人基地的課程建設(shè)項目。
首先派教師參與學(xué)習(xí)華為云開發(fā)者學(xué)堂提供的《云計算》課程方案[7],獲取相關(guān)方案介紹、理論課件、實驗指導(dǎo)書和云計算/云服務(wù)認(rèn)證學(xué)習(xí)材料。其中,對實驗指導(dǎo)書中的驗證性實驗,都親自完成一遍,形成一線感性認(rèn)識的同時,也了解到其所需要的知識結(jié)構(gòu)和可能需要的時長,方便實驗教學(xué)實施和對學(xué)生的考核。
然后與華為云協(xié)商,在每年開學(xué)季之前,為每個學(xué)生批量申請一定金額的代金券,讓學(xué)生只需要注冊并實名認(rèn)證,就能通過代金券購買華為云平臺上的資源,包括彈性云主機(jī)ECS、彈性公網(wǎng)EIP、云數(shù)據(jù)庫RDS、對象存儲服務(wù)OBS、彈性伸縮AS、負(fù)載均衡ELB、容器鏡像服務(wù)SWR、云容器引擎CCE等開展實驗。
針對當(dāng)前行業(yè)內(nèi)經(jīng)常使用的場景應(yīng)用上云和大數(shù)據(jù)以及移動應(yīng)用開發(fā),目前引入的實驗內(nèi)容有鯤鵬云上應(yīng)用高可用部署、鯤鵬云容器實驗、鯤鵬云大數(shù)據(jù)實驗、鯤鵬云手機(jī)實驗和Kubernetes實驗。
其中,鯤鵬云上應(yīng)用高可用部署實驗從易到難可劃分為3個小實驗,分別是鯤鵬平臺部署OA系統(tǒng),鯤鵬平臺數(shù)據(jù)庫遷移與部署和鯤鵬平臺應(yīng)用高可用部署,在高可用部署中需要應(yīng)用到彈性負(fù)載均衡和彈性伸縮服務(wù)。而鯤鵬云容器實驗從易到難也可劃分為3個小實驗,分別是Docker容器的基本操作、DockerFile的基本操作和鯤鵬平臺OA系統(tǒng)容器化部署。鯤鵬云大數(shù)據(jù)實驗可劃分為Hadoop集群搭建和Spark集群搭建兩個小實驗,引入的目的主要是引導(dǎo)學(xué)生了解如何基于云平臺搭建大數(shù)據(jù)環(huán)境,更深層次的大數(shù)據(jù)分析與處理實驗需要在其他課程中開展。引入鯤鵬云手機(jī)實驗的目的是讓學(xué)生了解手機(jī)虛擬化、應(yīng)用云開發(fā)(DevCloud)、項目管理(ProjectMan)、代碼托管(CodeHub)、編譯構(gòu)建(CloudBuild)、發(fā)布(CloudRelease)、部署調(diào)試等流程。
Kubernetes實驗由18個小實驗組成,該實驗部分內(nèi)容多、復(fù)雜、耗時長,幾乎不可能在課堂內(nèi)完成,也不可能長期占用云平臺資源。因此,不建議在華為云平臺上開展線上實驗,而是建議學(xué)生線下安裝虛擬機(jī)構(gòu)建實驗環(huán)境,首先搭建Kubernetes集群并部署Dashboard應(yīng)用,然后開展擴(kuò)展實驗,包括Deployment實驗、Service實驗、Pod實驗、Kubernetes網(wǎng)絡(luò)實驗、Kubernetes存儲實驗等。
在每次課堂授課時,將時間劃分為理論授課時段、實驗說明與演示時段,以及學(xué)生動手實驗與教師指導(dǎo)時間。由于課時、實驗難易程度以及資源有限等原因,課程組采取了以下策略:
(1)團(tuán)隊協(xié)作。每兩人一組,特別優(yōu)秀的可以一個人成組,兼顧到動手能力存在差異的學(xué)生可以互相幫助、互相檢查,能夠在實驗內(nèi)容多、時間跨度長的情況下應(yīng)對華為云平臺代金券不夠的現(xiàn)狀。
(2)公有云平臺資源與自建虛擬機(jī)相結(jié)合。雖然在目前階段,可以借用與華為云合作的機(jī)會拿到一些代金券,在公有云平臺上開展實驗,但每年能拿到的代金券金額是不確定的,而且學(xué)生經(jīng)常忘記關(guān)機(jī)或釋放資源導(dǎo)致資源前期浪費而后期不夠用的情況。因此,要求學(xué)生必須自建虛擬機(jī),并且將該虛擬機(jī)做克隆備份,以防虛擬機(jī)中環(huán)境配置或?qū)嶒炇r,可以快速重復(fù)實驗,還可以針對實驗的分布式環(huán)境需求,快速準(zhǔn)備虛擬機(jī)資源。
(3)課內(nèi)時間不夠課外補(bǔ)。由于講授理論知識和演示實驗過程需要占用一定時間,每一次課留給學(xué)生動手實驗的時間不夠,有必要要求學(xué)生利用課外時間完成課堂內(nèi)沒有完成的必做實驗和一些選做實驗。
由于要使用的資源并不是固定在實驗室機(jī)房環(huán)境中,要么使用的是公有云平臺資源,要么是自建的虛擬機(jī)資源,因此在任何時間、任何地點都可以開展相應(yīng)的實驗。
為了加強(qiáng)對學(xué)生的過程管理,提高學(xué)生的積極性和主動性,課程組采取了以下措施對學(xué)生的實驗進(jìn)行檢查考核,并記入到最終總成績中。
(1)小實驗與綜合實驗相結(jié)合。對于每個知識單元的小實驗,如應(yīng)用高可用部署、云容器實驗、云手機(jī)實驗,授課教師都會逐個團(tuán)隊檢查,并打分。對按時完成、完成質(zhì)量較高、回答問題正確的實驗給A+;對雖然不按時完成但完成質(zhì)量教高且回答問題正確的實驗給A;對不按時完成,且完成質(zhì)量一般、回答問題也比較含糊的實驗給A-。在期末時,經(jīng)過課程組討論協(xié)商,給出幾個綜合性的大實驗選題,讓學(xué)生自由選擇;而每個綜合大實驗,都相應(yīng)地設(shè)置了必做部分和選做部分。對于完成必做部分和選做部分,且完成質(zhì)量較好的實驗給A+;對于完成必做部分,且完成質(zhì)量較好的實驗給A;對于完成必做部分,但完成質(zhì)量一般的實驗給A-。
(2)學(xué)習(xí)匯報與綜合實驗報告相結(jié)合。在課堂授課過程中,課程組還會提前布置一些自主學(xué)習(xí)選題,如分布式算法、分布式系統(tǒng)、服務(wù)器虛擬化技術(shù)、容器化虛擬技術(shù)、云原生技術(shù)、公有云平臺等。每一組學(xué)生將有一周的時間去調(diào)研并確定選題,然后按照一定的時間順序,在課堂上做交流匯報。這種方式不僅可提高學(xué)生學(xué)習(xí)的自主性,還能讓學(xué)生之間互相交流并學(xué)習(xí)課本上學(xué)不到的內(nèi)容。教師會根據(jù)學(xué)生的學(xué)習(xí)情況和匯報情況進(jìn)行打分。在綜合性實驗完成后,每一組學(xué)生要根據(jù)選題完成相應(yīng)實驗報告,且在實驗報告中明確說明個人所做的不同工作及貢獻(xiàn),此外也要錄制一個視頻,包含關(guān)鍵的實驗過程及最終效果,還要制作相應(yīng)的PPT。在正常情況下,要根據(jù)學(xué)生公開集體演示講解情況進(jìn)行打分,在疫情特殊情況下,可以直接根據(jù)學(xué)生的實驗報告、視頻和PPT進(jìn)行打分。
課程組對2021年春和2022年春兩個學(xué)期的軟件工程專業(yè)卓工班和普通班的學(xué)生課堂實驗完成情況(完成率)、期末綜合實驗情況(實驗選擇占比)進(jìn)行了統(tǒng)計,并通過調(diào)查問卷方式收集了2022年春季班的學(xué)生對課程知識模塊的反饋意見,結(jié)果如表2—表4所示。
Table 2 Completion of classroom experiment表2 課堂實驗完成情況
從表2可知,在每一個學(xué)期,隨著課堂實驗案例的逐漸開展,實驗難度在逐漸加大,學(xué)生完成率有略微下降趨勢。但2022年春比2021年春多布置一個實驗,在壓縮了其他課堂實驗時間的情況下,當(dāng)堂完成率都有不同程度的提高。主要原因在于,實驗案例更加成熟完善,所用到的華為云平臺使用體驗更加流暢,而課程組教師的課堂指導(dǎo)也更加到位。
從表3可知,隨著實驗案例的不斷豐富,學(xué)生在完成期末綜合實驗時有了更多選擇。而部分學(xué)習(xí)能力較強(qiáng)的學(xué)生更愿意挑戰(zhàn)新的實驗和更高難度的實驗。其中,2022年春卓工班的學(xué)生全部選擇了難度最大的實驗(基于k8s的云原生應(yīng)用部署與服務(wù)治理),且完成情況都較為理想。
Table 3 Selection of comprehensive experiment at the end of semester表3 期末綜合實驗選擇
從表4可知,大部分學(xué)生認(rèn)為課程所涉及的知識模塊都很重要且必要,其中分布式技術(shù)模塊的必要性相對較低,云原生技術(shù)模塊的必要性最高。可能原因是學(xué)生認(rèn)為分布式技術(shù)在其他選修課程中有所涉及,而云原生技術(shù)是當(dāng)前比較主流的技術(shù),應(yīng)該占用更多學(xué)時。同時,云計算基礎(chǔ)理論與概念模塊滿意度最低,云原生技術(shù)模塊其次,主要原因是相對于理論學(xué)習(xí),學(xué)生更喜歡動手實驗,但云原生技術(shù)相關(guān)的實驗難度最大,實驗周期最長,需要課程組教師給予更多直接指導(dǎo)。
Table 4 Survey of course module necessity and satisfaction表4 課程模塊必要性與滿意度調(diào)查
大量軟件運行在云環(huán)境中,持續(xù)集成、持續(xù)交付、持續(xù)部署成為常態(tài),IT相關(guān)的開發(fā)活動逐漸向“云化”發(fā)展,也對高校培養(yǎng)具備跨界整合能力的高素質(zhì)復(fù)合型和創(chuàng)新型技術(shù)人才提出了更高要求。
在新工科背景下,課程組結(jié)合自身實際情況,梳理課程體系、知識體系,組建相對穩(wěn)定且有層次的課程教學(xué)隊伍,分工協(xié)作,共同開展課程建設(shè)。在課程建設(shè)過程中,堅持課程核心內(nèi)容不變的原則,并采取比較靈活的策略與行業(yè)內(nèi)頭部企業(yè)合作,充實實驗案例和實驗資源。
上述舉措在實施過程中取得了一定成效,得到了學(xué)生認(rèn)可。課程組教師也在探索實踐過程中,提高了理論與實踐相結(jié)合的水平,形成了教學(xué)成果,為課程的滾動建設(shè)打下了良好基礎(chǔ)。但同時,由于開課時間短、內(nèi)容繁多,很多嘗試性工作還在開展之中,課程組下一步還將嘗試借鑒OBE理念[8]開展更深層次的探索與實踐。