王磊+趙曉永
摘 要:隨著云計算的興起和發(fā)展,云技術(shù)由最初的商業(yè)、工業(yè)應(yīng)用滲透至學(xué)術(shù)及教育領(lǐng)域,云計算課程已經(jīng)得到越來越多本科高等院校的重視和普及。不同于傳統(tǒng)的計算機學(xué)科,云計算課程所涉及的內(nèi)容新、知識結(jié)構(gòu)復(fù)雜、理論抽象、實踐性強,傳統(tǒng)教學(xué)模式無法與之適應(yīng)。本文在分析云計算課程教學(xué)現(xiàn)狀和問題的基礎(chǔ)上,借鑒工程教育CDIO模式,以項目為載體將云計算課程內(nèi)容分解至CDIO構(gòu)思、設(shè)計、實現(xiàn)和運作的工程項目生命周期各階段中,采取項目驅(qū)動+分組競爭的教學(xué)方法及考核機制。理論知識結(jié)合項目案例的組織模式大大提升了學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效果,使得云計算課程教學(xué)目標(biāo)更加具體、明確,教學(xué)過程更加敏捷、有效,對學(xué)生和教師都具有重要指導(dǎo)意義。
關(guān)鍵字:CDIO;項目驅(qū)動;分組競爭;云計算;教學(xué)模式
基金項目:北京信息科技大學(xué)2015年度教學(xué)改革立項資助(項目號2015KGYB33)
1 研究背景概述
近年來,信息技術(shù)的蓬勃發(fā)展和廣泛應(yīng)用對技術(shù)人才的需求逐年攀升。尤其對于云計算、大數(shù)據(jù)等新技術(shù)人才的需求呈井噴式增長。為此,高校必須在實踐中積極踐行前瞻教育的創(chuàng)新模式,逐步開設(shè)云計算、大數(shù)據(jù)等相關(guān)課程,力求貼合社會實際的人才需求,為行業(yè)輸出既有基本理論知識又有關(guān)鍵應(yīng)用技術(shù)的云計算、大數(shù)據(jù)處理專門人才。
比較契合的是,CDIO工程教育模式與應(yīng)用型技術(shù)人才培養(yǎng)的目標(biāo)如出一轍,非常符合云計算、大數(shù)據(jù)等新技術(shù)課程的授課需求及目標(biāo)[1],即以扎實理論基礎(chǔ)、強化工程實踐能力、提升應(yīng)用能力為目的,最終構(gòu)建起全面協(xié)調(diào)發(fā)展的云計算、大數(shù)據(jù)應(yīng)用型人才培養(yǎng)體系,使高校學(xué)生的新技術(shù)知識結(jié)構(gòu)和能力水平更符合社會的需要。
CDIO工程教育模式是近年來國際工程教育改革的最新成果,是麻省理工學(xué)院、瑞典皇家工學(xué)院等多所國際知名大學(xué)聯(lián)合成立跨國研究合作組織并創(chuàng)立的現(xiàn)代工程教育模式。CDIO代表構(gòu)思(Conceive )、設(shè)計(Design)、實現(xiàn)( Implement )和運作(Operate),它以產(chǎn)品研發(fā)到運行的生命周期為載體,讓學(xué)生以主動的、實踐的、課程之間存在有機聯(lián)系的方式學(xué)習(xí)工程理論和技能[2]。具體來說,就是選擇接近工程實際的涉及技術(shù)、經(jīng)濟、企業(yè)和社會的團(tuán)隊綜合類項目為教學(xué)案例,結(jié)合專業(yè)核心課程的教學(xué),使學(xué)生在CDIO的全過程中不斷地在工程基礎(chǔ)知識、個人能力、人際團(tuán)隊能力和工程系統(tǒng)能力4個方面得到全面的訓(xùn)練和提高。CDIO理念不僅繼承和發(fā)展了歐美20世紀(jì)90年代工程教育大改革的理念,更重要的是提出了系統(tǒng)的能力培養(yǎng)教學(xué)大綱,對工程教育應(yīng)達(dá)到的能力目標(biāo)給出全面、系統(tǒng)、具體的表述。全球多所院校采用CDIO工程教育理念和教學(xué)大綱,取得了良好效果,按CDIO模式培養(yǎng)的學(xué)生深受社會與企業(yè)歡迎。
2 問題的提出
目前國內(nèi)一部分高校開設(shè)了云計算、大數(shù)據(jù)等相關(guān)課程,高校力求為大數(shù)據(jù)市場培養(yǎng)出可熟練使用云計算、大數(shù)據(jù)技術(shù)解決實際問題的優(yōu)質(zhì)人才。但就目前的培養(yǎng)思路和教學(xué)模式來說,還存在一定的問題:
1)目前國內(nèi)高校人才培養(yǎng)仍然存在“重基礎(chǔ)理論-輕實踐”的現(xiàn)狀。與其他計算機課程不同,云計算課程的特點就是實踐性特別強。以教師講授為主、學(xué)生訓(xùn)練為輔,先理論后實踐的傳統(tǒng)課程教學(xué)模式往往學(xué)生學(xué)習(xí)興趣不高,學(xué)習(xí)效果不佳。
2)傳統(tǒng)實驗教學(xué)安排與設(shè)置不能滿足云計算(諸如Hadoop分布式云平臺搭建)實踐環(huán)節(jié)的需求,甚至出現(xiàn)脫節(jié)。
3)云計算學(xué)習(xí)過程涉及知識大而全(諸如Linux、Java等前驅(qū)課程),需要相關(guān)基礎(chǔ)知識預(yù)熱模塊。
4)基于不同的云計算應(yīng)用能力,其培養(yǎng)目標(biāo)和層次要求不明確。
針對以上問題需要為云計算新技術(shù)課程設(shè)計一種新的符合課程特點的CDIO教學(xué)模式,不僅能夠通過合理的教學(xué)項目拉動知識,讓知識服務(wù)于項目,同時又能兼顧知識的結(jié)構(gòu)性,循序漸進(jìn)地傳授技術(shù)以推動項目順利進(jìn)行。本文介紹的迭代式CDIO工程教學(xué)模式將實際軟件工程領(lǐng)域的迭代式開發(fā)過程與CDIO思想結(jié)合起來,有效地解決了這一難題。以下將詳細(xì)介紹基于CDIO工程思想的云計算課程授課的設(shè)計思想、實踐案例及考核方法。
3 設(shè)計思想
(一)教學(xué)內(nèi)容的選擇和設(shè)計
云計算平臺是支撐大數(shù)據(jù)分析應(yīng)用的分布式平臺架構(gòu)。其中,最重要也最具領(lǐng)跑性的分布式技術(shù)當(dāng)屬基于Hadoop的批數(shù)據(jù)處理模式。Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,以一種可靠、高效、可伸縮的方式進(jìn)行數(shù)據(jù)處理,尤其對于非結(jié)構(gòu)化數(shù)據(jù),有效解決了大數(shù)據(jù)的可靠存儲和處理,該模塊是云計算、大數(shù)據(jù)相關(guān)課程中分布式框架的基礎(chǔ),我們依據(jù)CDIO工程思想模式對該模塊進(jìn)行了重新設(shè)計開發(fā),緊緊圍繞:知識體系理論教學(xué)→技術(shù)能力培養(yǎng)→團(tuán)隊合作能力養(yǎng)成三大核心目標(biāo)組織教學(xué)。設(shè)計思路如下:首先,本課程選取航空公司真實案例(如,航班數(shù)據(jù)的統(tǒng)計)為載體,將所有需要學(xué)習(xí)和掌握的理論知識及技術(shù)實踐能力都圍繞該項目進(jìn)行構(gòu)思及設(shè)計,形成一個整體;其次,緊密聯(lián)系課程目標(biāo)和培養(yǎng)計劃,結(jié)合CDIO工程設(shè)計思想,將教學(xué)內(nèi)容按掌握程度和能力要求分為三級:1級為包含本課程主要核心內(nèi)容和能力要求的項目;2級為包含深入理解并使用相關(guān)技術(shù)解決具體場景下關(guān)鍵問題的能力要求項目;3級為增強該門課程能力與理解而設(shè)的應(yīng)用新工具、新思路、新方法的項目。基于上述分析,我們將教學(xué)內(nèi)容設(shè)置為一級項目、二級項目和三級項目共計3個類型來組織教學(xué)[1]。圖1為本文對云計算課程構(gòu)思與分析后的項目與知識模塊的映射。
具體依據(jù)為,Hadoop基于廉價硬件設(shè)備,在分布式文件系統(tǒng)HDFS上進(jìn)行,把應(yīng)用程序分割成許多小工作單元,使用MapReduce編程模型進(jìn)行處理,開啟了大數(shù)據(jù)處理的嶄新時代,其生態(tài)系統(tǒng)結(jié)構(gòu)如圖2所示。因此,課程緊密圍繞Hadoop的云編程介紹Hadoop平臺的核心模塊和關(guān)鍵技術(shù),重點夯實Hadoop基礎(chǔ)架構(gòu)及應(yīng)用知識,為后續(xù)深入學(xué)習(xí)大數(shù)據(jù)分析挖掘等復(fù)雜算法及具體應(yīng)用的實現(xiàn)打下良好基礎(chǔ)。endprint
進(jìn)一步拆分再合并云計算課程中相關(guān)知識內(nèi)容,確定授課單元模塊,梳理授課主線,本文提出云計算課程具體授課內(nèi)容如表1。
(二)項目的設(shè)計
CDIO教學(xué)模式突出實踐的重要性,要保證學(xué)生在“做中學(xué)”,“學(xué)中做”。通過設(shè)計合理的項目使得大多數(shù)學(xué)生能緊跟教師節(jié)奏,在項目由易到難逐步實現(xiàn)的過程中,學(xué)習(xí)并理解課程所涉及的各個知識模塊,深刻體會到學(xué)習(xí)云計算的積極性和樂趣[3]。本課程將提供一個大數(shù)據(jù)航班實際項目案例。通過一個具體的應(yīng)用場景將擬講授的知識、理論和技術(shù)融會貫通,旨在培養(yǎng)學(xué)生對云計算新技術(shù)的主動學(xué)習(xí)性及快速上手能力。本課程將每一單元模塊核心內(nèi)容圍繞項目案例展開教學(xué),通過航班項目將整個課程知識體系有機的、系統(tǒng)的整合起來,讓學(xué)生以有趣、主動、協(xié)作及有效的形式和方法學(xué)習(xí)云計算課程的相關(guān)內(nèi)容。
具體分析,本文考慮CDIO四階段作為授課載體,通過構(gòu)思(Conceive )、設(shè)計(Design)、實現(xiàn)( Implement )和運作(Operate),我們基于Hadoop大數(shù)據(jù)處理的相關(guān)授課內(nèi)容及大綱要求設(shè)計為2個1級項目:①教學(xué)前導(dǎo)案例《美國民航航班歷年數(shù)據(jù)統(tǒng)計》;②畢業(yè)設(shè)計《基于Hadoop平臺的云盤系統(tǒng)的設(shè)計與實現(xiàn)》;在此基礎(chǔ)上,將教學(xué)前導(dǎo)項目拆分為兩個2級項目和兩個3級項目,通過知識講解、理論體系梳理和動手實踐環(huán)節(jié)的設(shè)計,形成Hadoop大數(shù)據(jù)處理的知識全覆蓋,具體項目設(shè)計參照圖3。
(三)教學(xué)方法的設(shè)計
1)CDIO前導(dǎo)案例,貫穿課程
在CDIO中,構(gòu)思和設(shè)計的課堂教學(xué)項目應(yīng)滿足以下特點:a) 項目功能與需求易于理解,目標(biāo)和任務(wù)可覆蓋教學(xué)核心內(nèi)容、關(guān)鍵技術(shù);授課內(nèi)容容易拆分成相對獨立模塊進(jìn)行分時的進(jìn)階補充;b) 選擇學(xué)生感興趣且符合信息技術(shù)趨勢的項目,這樣可以和畢業(yè)設(shè)計、實習(xí)實訓(xùn)、實際工作等環(huán)節(jié)接軌,更能將學(xué)生的理論知識和經(jīng)驗積累拓展及推廣到實際應(yīng)用中;c) 項目任務(wù)分組完成,難度部署盡量合理,軟件項目規(guī)模適中,同時保證教學(xué)內(nèi)容能隨著難度實現(xiàn)由淺入深、由點及面、慢慢推進(jìn);d) 在實踐環(huán)節(jié),可以構(gòu)造一張知識理論與項目任務(wù)之間的映射圖譜,將理論與實踐端對端、點到點的對應(yīng)在一起,讓學(xué)生在理解的基礎(chǔ)上真正的對所學(xué)知識活學(xué)、活用。
2)查漏補缺、融會貫通
在基于Hadoop的云計算課程中,所涉及到的云計算、大數(shù)據(jù)相關(guān)理論,如虛擬化、分布式技術(shù)、Linux應(yīng)用、Java程序等開發(fā)的知識與技能方方面面,學(xué)生們即使在配置開發(fā)環(huán)境時都有可能遇到各種未知的問題和困難[4,6]。因此,在課程教學(xué)中,首先對于該任務(wù)單元模塊所涉及的核心知識進(jìn)行系統(tǒng)講解,同時根據(jù)課堂反映和先修課程的掌握情況查漏補缺,實時補充理論知識點,并將其融會貫通運用到現(xiàn)有的項目中來。
3)強化實踐、注重創(chuàng)新
云計算課程實踐性非常強,作為新技術(shù)本身就還在不斷的完善和發(fā)展中,因此課堂培養(yǎng)學(xué)生應(yīng)在用中學(xué)、做中學(xué)、切實做到理論聯(lián)系實際。同時培養(yǎng)創(chuàng)新意識,尤其要注重對學(xué)生在新方法、新技術(shù)及新思路應(yīng)用能力方面的培養(yǎng),提升大家對于信息技術(shù)軟、硬件及云計算體系架構(gòu)、大數(shù)據(jù)處理框架的認(rèn)知和理解。
4)緊跟前沿、與時俱進(jìn)
基于CDIO的各個環(huán)節(jié),課程設(shè)置時應(yīng)從構(gòu)思、設(shè)計、實現(xiàn)和運作四個階段進(jìn)行教學(xué)內(nèi)容和項目實施的設(shè)計與安排。在此過程中,項目設(shè)置和內(nèi)容編排不僅要基于信息技術(shù)不斷完善與發(fā)展的研究現(xiàn)狀,同時還要進(jìn)行IT、互聯(lián)網(wǎng)行業(yè)用人標(biāo)準(zhǔn)和技術(shù)要求的充分調(diào)研,盡力做到既加強計算機新技術(shù)運用能力的培養(yǎng),促進(jìn)信息技術(shù)與專業(yè)知識的融合,又提高學(xué)生應(yīng)用虛擬化、Hadoop分布式框架等技術(shù)進(jìn)行大數(shù)據(jù)處理的能力,同時兼顧層出不窮的主流框架、核心模型、主流大數(shù)據(jù)解決方案等[5]。
4 實踐案例
為了更好的引導(dǎo)和部署授課內(nèi)容和教學(xué)過程,本課程選用符合授課目標(biāo)和課程設(shè)置的基于Hadoop統(tǒng)計大數(shù)據(jù)航班架次的案例[7],項目目標(biāo)設(shè)置為:
基于美國民航航班的歷年數(shù)據(jù)(1987年-2008年),開發(fā)MapReduce應(yīng)用程序計算其中某一年各個航班的飛行數(shù)據(jù)。
最終統(tǒng)計結(jié)果以Web頁面方式呈現(xiàn)。
數(shù)據(jù)獲取來源如下:
http://stat-computing.org/dataexpo/2009/the-data.html
數(shù)據(jù)格式:
壓縮的BZipped CSV(以逗號分隔)格式
例:Year,Month, DayofMonth,DayOfWeek, DepTime, CRSDepTime, ArrTime, CRSArrTime, UniqueCarrier, FlightNum, TailNum, ActualElapsedTime, CRSElapsedTime, AirTime, ArrDelay, DepDelay, Origin, Dest, Distance, TaxiIn, TaxiOut, Cancelled, CancellationCode, Diverted, CarrierDelay, WeatherDelay, NASDelay, SecurityDelay, LateAircraft Delay
1987,10,14,3,741,730,912,849,PS,1451,NA,91,79,NA,23,11,SAN,SFO,447,NA,NA,0,NA,0,NA,NA,NA,NA,NA
1987,10,15,4,729,730,903,849,PS,1451,NA,94,79,NA,14,-1,SAN,SFO 447 NA NA 0 NA 0 NA NA NA NA NA ,447,NA,NA,0,NA,0,NA,NA,NA,NA,NA……endprint
以上迭代式CDIO教學(xué)模式已應(yīng)用于我院信息管理與信息系統(tǒng)三年級本科生的《云計算戰(zhàn)略及實施》的教學(xué)中,項目的構(gòu)思、設(shè)計、實現(xiàn)和部署運行,共計學(xué)時32個學(xué)時,全部在實驗室上課,教師邊講邊引導(dǎo),學(xué)生邊聽邊設(shè)計并實施。
5 考核方法的設(shè)計
云計算、大數(shù)據(jù)開發(fā)類課程以實踐和理論技術(shù)并重,因而課程的考核基于理論考查和項目實訓(xùn)匯報兩部分。學(xué)生需要參加理論筆試與實訓(xùn)答辯兩個環(huán)節(jié),最后進(jìn)行權(quán)重總評獲得該課程成績。理論部分由每個考生獨立完成;項目實訓(xùn)環(huán)節(jié)由3-4名學(xué)生
理論考核:掌握Hadoop系統(tǒng)架構(gòu)、HDFS分布式文件系統(tǒng)、MapReduce編程模型、大數(shù)據(jù)處理平臺Pig及Pig腳本應(yīng)用、數(shù)據(jù)倉庫工具Hive及無限大表數(shù)據(jù)庫HBase等基礎(chǔ)理論知識和關(guān)鍵技術(shù),期末進(jìn)行閉卷筆試。
項目開發(fā)及匯報:學(xué)生以小組為單位參照教學(xué)項目《美國民航航班歷年數(shù)據(jù)統(tǒng)計》進(jìn)行CDIO階段計劃并實施。項目各階段由小組集體討論、并將任務(wù)分工后分配至每個人,教師進(jìn)行檢查指導(dǎo)。最終,每個小組將課題所涉及的項目內(nèi)容、步驟、關(guān)鍵技術(shù)進(jìn)行歸納整理,以PPT形式進(jìn)行講解和匯報;同時,將所開發(fā)的Hadoop大數(shù)據(jù)處理系統(tǒng)部署到教師機上,進(jìn)行系統(tǒng)功能演示,教師由每組的這兩部分成績進(jìn)行綜合評價,如圖4所示,為課堂上學(xué)生進(jìn)行現(xiàn)場答辯的情景。
6 案例拓展
在該課程后續(xù)拓展案例中,我們進(jìn)一步設(shè)計了一級項目《基于Hadoop平臺的云盤系統(tǒng)》,既對先修云計算課程進(jìn)行理論梳理和項目實踐的拓展,又進(jìn)一步實現(xiàn)CDIO所主導(dǎo)的基本能力與素質(zhì)的提升。該項目旨在實現(xiàn)基于Hadoop平臺搭建云盤系統(tǒng),針對私人產(chǎn)生的海量數(shù)據(jù)進(jìn)行有效管理與存儲。具體來說,系統(tǒng)功能設(shè)計為登錄注冊模塊、系統(tǒng)管理、用戶管理、文件夾管理、文件管理、系統(tǒng)公告管理、留言管理共7個功能模塊[8],如圖5所示。
具體來說,圍繞項目需求和授課內(nèi)容的設(shè)置,本項目在系統(tǒng)中設(shè)計了用戶與管理員兩種角色:
管理員
功能:查看用戶信息、添加用戶信息、添加文件夾、查看文件夾信息、添加文件、查看文件信息、添加系統(tǒng)公告、查看系統(tǒng)公告、添加留言反饋、查看留言反饋、查看共享狀態(tài)、查看角色信息、修改個人密碼、查看登錄日志、查看在線用戶。
用戶
功能:查看個人信息、添加文件夾、查看文件夾信息、添加文件、查看文件信息、添加系統(tǒng)公告、查看系統(tǒng)公告、添加留言反饋、查看留言反饋、修改密碼。
基于這樣的項目設(shè)計,我們實施整個項目過程中涉及到的知識模塊見表2:
7 總結(jié)與展望
本文所涉及到的項目案例均已在授課實踐中進(jìn)行了嘗試和檢驗,盡管迭代式工程模式CDIO授課方法對教師的教學(xué)能力和實踐經(jīng)歷有著更高的要求,但卻給學(xué)生對云計算等新技術(shù)課程的學(xué)習(xí)帶來了較好的效果。相比于計算機類課程的傳統(tǒng)教學(xué)方法,CDIO的學(xué)習(xí)方法和模式,大大提升了學(xué)生學(xué)習(xí)的積極性、加速對前沿理論知識的快速理解、鍛煉新技術(shù)的實踐水平,最終培養(yǎng)學(xué)生對云計算、大數(shù)據(jù)等新技術(shù)的學(xué)習(xí)、掌握和運用能力。此外,分組競爭的考核方法和標(biāo)準(zhǔn)也為教學(xué)效果提供了重要的保障,加強了學(xué)生主動學(xué)習(xí)、團(tuán)隊協(xié)作以及項目管理中的基本能力與素質(zhì)。
在實際教學(xué)中,我們也可以基于校企合作產(chǎn)學(xué)研模式,與相關(guān)企業(yè)構(gòu)建實訓(xùn)基地,借鑒豐富的工程項目資源,促使CDIO教學(xué)模式中教學(xué)內(nèi)容與實際環(huán)境的需求和使用高度統(tǒng)一。本文所探討的CDIO教學(xué)模式中的案例、方法及設(shè)計思路將為云計算、大數(shù)據(jù)等相關(guān)課程的教學(xué)提供有益參考和補充。
參考文獻(xiàn)
[1] 羅福強,熊永福.基于CDIO的云計算與大數(shù)據(jù)專業(yè)人才培養(yǎng)方案[J].計算機教育.2015(1):52-56.
[2] 張小慶.云計算下基于CDIO的物聯(lián)網(wǎng)工程專業(yè)實踐教學(xué)體系研究[J].武漢輕工大學(xué)學(xué)報.2016,35(1):117-120.
[3] 王曉敏. 迭代式CDIO工程教育模式的研究與實踐[J].實驗技術(shù)與管理. 2015, 32(5):200-205
[4] 趙麗萍.基于CDIO的計算機專業(yè)項目課程體系構(gòu)建[J].電腦知識與技術(shù)2011(6X):4144-4147.
[5] 黃曼綺.基于CDIO的云計算專業(yè)導(dǎo)論改革[J].計算機教育.2015(9):79-82.
[6] 姜大志,孫浩軍.基于 CDIO的主動式項目驅(qū)動學(xué)習(xí)方法研究:以Java類課程教學(xué)為例[J].高等工程教育研究. 2012(4): 159-164.
[7] 盈佳科技. Hadoop大數(shù)據(jù)處理-BigData實訓(xùn)教材系列之一(內(nèi)部版本A).2016.
[8] 史瑞英. 基于Hadoop平臺的云盤系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京信息科技大學(xué).2017.endprint