丁曉進,朱曉榮
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
云計算課程作為操作系統(tǒng)原理、數(shù)據(jù)庫系統(tǒng)原理、Linux編程的后續(xù)課程,覆蓋的專業(yè)知識點主要包括Google文件系統(tǒng)GFS、分布式數(shù)據(jù)處理MapReduce、分布式鎖服務(wù)Chubby、分布式結(jié)構(gòu)化數(shù)據(jù)表BigTable、Hadoop 開源云架構(gòu)、虛擬化技術(shù)等[1-2]。然而,該課程授課學(xué)時僅為32 個學(xué)時,通常情況下需要授課教師引導(dǎo)學(xué)生自主學(xué)習(xí),并及時掌握學(xué)生學(xué)習(xí)情況。
目前,由于缺乏專門針對云計算的學(xué)習(xí)平臺,學(xué)生課后主要利用教材進行學(xué)習(xí),并輔以網(wǎng)頁、視頻APP 查詢資料,既使得學(xué)生難以有效評估自身學(xué)習(xí)效果,還難以激發(fā)學(xué)生學(xué)習(xí)興趣。此外,學(xué)生與授課教師間缺乏有效的交互,導(dǎo)致教師無法及時掌握學(xué)生學(xué)習(xí)情況。
由于設(shè)計云計算學(xué)習(xí)平臺既需要考慮學(xué)生利用Andriod、iOS、Windows 等系統(tǒng)進行學(xué)習(xí)的需求,又要基于Cordova[3-4]、Flutter[5-6]等跨系統(tǒng)開發(fā)框架,因此給平臺設(shè)計造成了一定的困難。在傳統(tǒng)小程序開發(fā)模式中,開發(fā)者不僅需要從小程序端額外引用軟件開發(fā)工具包(Software Development Kit,SDK)請求后端,還需關(guān)注彈性伸縮、異地容災(zāi)、網(wǎng)絡(luò)防護、安全加固等問題,這種前后端分離的模式需要在物理機托管、云主機、容器等方面投入較多人力資源,嚴(yán)重影響小程序的開發(fā)效率。然而,微信小程序在支持跨系統(tǒng)的同時,具有無需安裝、在線升級維護等優(yōu)點[7-8],極大降低了開發(fā)成本,使用者打開即用。云開發(fā)打通了微信生態(tài),無需搭建服務(wù)器,提供了云數(shù)據(jù)庫、云存儲、云函數(shù)、云托管、云調(diào)用、微信支付、環(huán)境共享、內(nèi)容管理等功能。
為此,本文利用云開發(fā)模式設(shè)計一個基于微信小程序的云計算學(xué)習(xí)平臺,旨在有效激發(fā)學(xué)生學(xué)習(xí)興趣、便于在生生、師生相互交互的同時提升學(xué)習(xí)平臺的開發(fā)效率。
微信小程序目錄結(jié)構(gòu)包括小程序頁面pages 和小程序app相關(guān)配置[9],如圖1所示。
Fig.1 WeChat Mini program directory structure圖1 微信小程序目錄結(jié)構(gòu)
圖1 中,pages 包含.js 頁面邏輯、.json 頁面配置、.wxml頁面結(jié)構(gòu)、.wxss頁面樣式和通過其他小程序框架編譯后的文件;app.js 為小程序的全局邏輯文件,可設(shè)置賬號環(huán)境、檢測更新、定義全局變量等功能;app.json 為小程序全局配置,不僅可定義相關(guān)pages 頁面保存后所生成的page 結(jié)構(gòu),還可定義全局組件及tabBar;app.wxss 為小程序公共樣式;utils 用于存放工具類;sitemap.json 配置是否允許被索引;project.config.json 為項目的配置文件。此外,還包括自定義的組件、引用的外部組件和云函數(shù)等。
Mpvue(Mini Program Vue)基于Vue.js 開發(fā)小程序前端框架,可在小程序環(huán)境中運行,形成了組件化開發(fā)能力,不僅能提升代碼復(fù)用性,還可利用Vuex 數(shù)據(jù)管理方案構(gòu)建復(fù)雜應(yīng)用或?qū)5代碼轉(zhuǎn)化成小程序目標(biāo)代碼[10]。
設(shè)計云計算學(xué)習(xí)平臺的核心是滿足師生教與學(xué)的真實需求,具備跨系統(tǒng)、易用性和低成本等特性。由于微信小程序具有跨系統(tǒng)、即開即用等優(yōu)點,本文基于微信小程序設(shè)計云計算學(xué)習(xí)平臺。
本文針對學(xué)習(xí)、答題和復(fù)習(xí)等環(huán)節(jié)的具體需求,基于微信小程序設(shè)計的云計算學(xué)習(xí)平臺包括登錄、答題、課件管理、教材管理、統(tǒng)計分析5 個主要模塊,開發(fā)工具包括微信開發(fā)者工具穩(wěn)定版1.05.2102020、TencentDB for MongoDB[11]、云數(shù)據(jù)庫[12]、Serverless Cloud Function、云函數(shù)、Cloud Object Storage、云存儲[13]、CloudBase CMS、內(nèi)容管理系統(tǒng)、Vant-weapp、組件庫、Mpvue、小程序框架[14,15],總體功能結(jié)構(gòu)如圖2 所示。用戶登錄后可選擇教材、課件和答題模塊進行學(xué)習(xí),學(xué)習(xí)后還可進一步選擇統(tǒng)計分析模塊查詢和分享自身學(xué)習(xí)情況,平臺具體操作流程如圖3所示。
Fig.2 Platform functional architecture圖2 平臺功能架構(gòu)
Fig.3 Platform operation process圖3 平臺操作流程
本文開發(fā)的學(xué)習(xí)平臺涉及的數(shù)據(jù)表包括學(xué)生集合(students)、用戶信息(profiles)、考試信息(exam)、考試內(nèi)容(questions)、教材集合(textbook)、作業(yè)集合(homework)、學(xué)生答題記錄(historys)、學(xué)生作業(yè)作答信息(homeworkcomment)、學(xué)生錯題記錄(notes)共9 張表。具體開發(fā)時,可在云開發(fā)控制臺創(chuàng)建數(shù)據(jù)表集合,也可在CMS 內(nèi)容管理系統(tǒng)中可視化創(chuàng)建[16,17]。例如,學(xué)生作業(yè)作答信息(homework-comment)表所需字段包括記錄id(系統(tǒng)自動生成)、用戶id、創(chuàng)建時間、更新時間、作業(yè)id、作業(yè)評分、作業(yè)內(nèi)容、用戶名、作業(yè)對應(yīng)章節(jié)等字段。
為了提升用戶體驗,讓用戶產(chǎn)生歸屬感,設(shè)計了主題明確的歡迎界面,并插入校驗功能,即非規(guī)定用戶名單內(nèi)的用戶無法進入學(xué)習(xí)平臺。其中,歡迎界面獲取、校驗用戶的微信授權(quán)信息,合法用戶可直接進入小程序并提醒登錄用戶使用小程序,非法用戶進入將提醒管理員;登錄界面獲取用戶微信授權(quán)信息,用戶未登錄時提示用戶登錄,登錄后顯示用戶頭像、名字,已登錄過的用戶可自動登錄,系統(tǒng)將獲取用戶唯一標(biāo)識并保存。
程序開發(fā)時,在微信開發(fā)者工具的Pages 中新建Start頁面,并在Start.wxml、Start.wxss 設(shè)計界面樣式。具體而言,在Start.js 生命周期onLoad 函數(shù)中調(diào)用onQuery()、on-GetOpenid()函數(shù),并在用戶點擊立即進入按鈕后綁定go-Home()函數(shù)。其中,onQuery 函數(shù)用于查詢Profiles 數(shù)據(jù)庫,并將結(jié)果按照Openid 和對應(yīng)的userInfo 分組保存在全局變量中,以便后期生成排行榜時獲得用戶信息;onGetOpenid 函數(shù)用于調(diào)用登錄Login 云函數(shù),以獲取用戶Openid并將其保存到全局變量中;goHome 函數(shù)用于獲取用戶授權(quán)信息,并根據(jù)授權(quán)名單校驗用戶信息并給予提示,合法用戶可進入小程序,否則無法進入。
答題模塊包括模擬考試和課后作業(yè)子模塊。模擬考試子模塊中,學(xué)生在規(guī)定時間內(nèi)答題,一旦時間結(jié)束后系統(tǒng)自動交卷并記錄作答信息,以便學(xué)生后期尋找未作答的題目,交卷后學(xué)生可選擇查看分?jǐn)?shù)排行榜、錯題或重做,還可將成績一鍵發(fā)送給授課教師;學(xué)生可在課后作業(yè)子模塊中完成課后作業(yè)。區(qū)別于常見的小程序,本文設(shè)計的學(xué)生答題模塊設(shè)計倒計時、答題自動批改和提交等功能,不僅能提升學(xué)生作題效率,還便于學(xué)生在答題后進行針對性復(fù)習(xí),以激發(fā)學(xué)生學(xué)習(xí)興趣。倒計時功能實現(xiàn)邏輯如下:
輸入:倒計時數(shù)值,即總分鐘數(shù)minute。
答題自動批改和提交功能流程圖如圖4 所示,學(xué)生答題時可自動批改并統(tǒng)計答題情況,在學(xué)生完成答題后立即將大體情況呈現(xiàn)給學(xué)生,學(xué)生既可選擇查看錯題及解析,也可選擇重新作答。
Fig.4 Platform question answering process圖4 平臺答題流程
答題模塊具體開發(fā)時,在微信開發(fā)者工具Pages 中定義了Home、Exam、ExamHome、ExamResult 共4 個頁面。其中,Home 頁面中onLoad 生命周期函數(shù)獲取全局變量Openid,調(diào)用Query()函數(shù)查詢試題信息,每道試題綁定Go()函數(shù)跳轉(zhuǎn)到ExamHome 頁面;Exam 業(yè)面主要包括倒計時、單選、多選、自動滑動下一題、結(jié)果記錄、交卷等功能;ExamResult 頁面在微信公眾平臺訂閱消息模塊配置完善模板消息內(nèi)容,將模板Id 配置到SendMessage 云函數(shù)和小程序?qū)?yīng)字段,并聯(lián)調(diào)小程序和云函數(shù)對應(yīng)的模板字段內(nèi)容,一旦學(xué)生發(fā)送消息,授課教師將收到微信推送的模板消息。
目前,高校課件通常為各學(xué)科代表收集后發(fā)布在班級群,很少分類、章節(jié)、目錄的管理課件,造成學(xué)生搜尋課件的時間成本較高、體驗較差。本文設(shè)計的學(xué)習(xí)平臺利用云存儲方法存儲、管理課件,教師可通過CMS 內(nèi)容管理系統(tǒng)上傳、下架課件,以便于學(xué)生在小程序端實時查看每章節(jié)對應(yīng)的課件,文件類型支持WORD、PDF、PPT 等多種格式。
具體開發(fā)時,在Pages文件夾新建BookShelf頁面,主要功能為打開、查看文件,核心代碼如下:
本文設(shè)計的學(xué)習(xí)平臺提供了教材管理,學(xué)生上課或課后均可打開平臺中的教材進行學(xué)習(xí),便于學(xué)生日常學(xué)習(xí)。相類似的,教材管理也通過CMS 內(nèi)容管理系統(tǒng)進行小程序的數(shù)據(jù)交互,支持文件類型也一致。開發(fā)時,在Pages 文件夾新建Book 頁面,主要功能與課件管理一致,但采用的布局和查詢數(shù)據(jù)庫不同,具體差異如下:
為了讓教師更好的掌握學(xué)生學(xué)習(xí)狀況或讓學(xué)生了解自身學(xué)習(xí)情況,本文設(shè)計的學(xué)習(xí)平臺基于數(shù)據(jù)庫記錄的答題、作業(yè)信息實現(xiàn)了統(tǒng)計分析模塊。通過該模塊教師可發(fā)現(xiàn)學(xué)生學(xué)習(xí)中存在的問題,方便因材施教和針對性地調(diào)整教學(xué)內(nèi)容;學(xué)生也可查看錯題和排名,將學(xué)習(xí)情況分享到朋友圈。
具體開發(fā)時,需在Pages 文件下新建History、Note 頁面,分別對應(yīng)成績記錄和錯題記錄。成績記錄包含答題時間、答題得分和答題用時,點擊記錄將顯示本次答題中錯誤的題目列表,若無錯題則提示返回。錯題記錄中分為答題模式和背題模式,復(fù)用了答題模塊組件。
學(xué)習(xí)平臺開發(fā)完成后,可在微信開發(fā)者工具中點擊上傳按鈕,填寫版本號和項目備注即可完成上傳,待官方人員審核通過后即可進行發(fā)布。為驗證平臺運行的穩(wěn)定性,在選修本課程的2021-2022 學(xué)年第1 學(xué)期184 名學(xué)生中試用所設(shè)計的學(xué)習(xí)平臺,經(jīng)測試各項功能均正常。
為進一步評估學(xué)習(xí)平臺在學(xué)生學(xué)習(xí)云計算課程方面的實際效果,將2020-2021 學(xué)年第1 學(xué)期選修本課程的149名學(xué)生的學(xué)習(xí)效果作為對照組進行比較。具體的,通過問卷調(diào)查2020-2021 學(xué)年第1 學(xué)期、2021-2022 學(xué)年第1 學(xué)期學(xué)生的課堂、課后學(xué)習(xí)興趣,并結(jié)合期末考試不及格率進行深入分析。
調(diào)查結(jié)果表明,該課程的學(xué)生學(xué)習(xí)興趣由45%提升到84%,原因是學(xué)習(xí)平臺的教材學(xué)習(xí)、課件學(xué)習(xí)、在線習(xí)題和錯題查看等模塊為學(xué)生學(xué)習(xí)提供了極大的便利。此外,師生間快速交互、學(xué)習(xí)排行榜查看、朋友圈分享等功能模塊能顯著提升學(xué)生學(xué)習(xí)興趣。一旦學(xué)生學(xué)習(xí)興趣提升,不僅會在課程學(xué)習(xí)中投入更多時間,還能明顯提升學(xué)習(xí)效率。實驗表明,該課程的及格率由22%降到4%左右。
綜上,實踐結(jié)果證實了所設(shè)計的平臺能切實提升學(xué)生學(xué)習(xí)興趣和效果,降低學(xué)生的不及格率。
本文基于熱門的微信小程序開發(fā)了一個云計算學(xué)習(xí)平臺,并將其應(yīng)用于云計算課程的學(xué)習(xí)過程中,支持學(xué)生通過安卓手機、蘋果手機、電腦等工具進行訪問,既讓學(xué)生能夠課后自主學(xué)習(xí)、完成相關(guān)答題,還生成了相關(guān)排行榜,允許學(xué)生將學(xué)習(xí)記錄分享到朋友圈。通過這些功能為生生、師生之間營造出良好的互動交流氛圍。
實踐結(jié)果表明,分析學(xué)生學(xué)習(xí)記錄可有效指導(dǎo)云計算授課教師進行更具針對性的教學(xué)安排,一方面能提升學(xué)生學(xué)習(xí)質(zhì)量,另一方面改善了學(xué)生學(xué)習(xí)體驗,對提升教學(xué)質(zhì)量具有一定的積極作用。
然而,平臺設(shè)計還在不斷更新迭代中,技術(shù)領(lǐng)域還有許多內(nèi)容亟待革新??傮w而言,平臺后期應(yīng)用范圍將逐步擴大,功能也會逐步健全,具有更加廣闊的發(fā)展空間。