朱雪梅,李瑋璇
(廣東女子職業(yè)技術(shù)學(xué)院,廣東 廣州 510000)
目前,程序設(shè)計(jì)類課程根據(jù)線上騰訊課堂等教學(xué)經(jīng)驗(yàn)[1]會出現(xiàn)老師講解、學(xué)生操作難以同步解答的現(xiàn)象。傳統(tǒng)教學(xué)常態(tài)是師生在實(shí)訓(xùn)課室,教師講授理論并且操作演示,學(xué)生在實(shí)訓(xùn)平臺操作練習(xí),教師通過巡堂解答學(xué)生的疑難問題。由于多種因素影響,許多地區(qū)需要進(jìn)行線上教學(xué),教師和學(xué)生不能同空間溝通,導(dǎo)致教師輔導(dǎo)難,教學(xué)難點(diǎn)不能得以解決。因而,云實(shí)訓(xùn)平臺應(yīng)運(yùn)而生[2],但是根據(jù)調(diào)研發(fā)現(xiàn)[3],目前市面上能輔助程序設(shè)計(jì)類課程教師的云實(shí)訓(xùn)平臺都是需要定制開發(fā),靈活性較差,教師不能針對課堂的學(xué)情動態(tài)化調(diào)整實(shí)訓(xùn)內(nèi)容,更新重難點(diǎn)實(shí)訓(xùn)內(nèi)容,不能對學(xué)生實(shí)訓(xùn)數(shù)據(jù)進(jìn)行分析等。由此,為了實(shí)現(xiàn)線上教學(xué)學(xué)生不受限于時(shí)間空間,隨時(shí)進(jìn)行云端程序設(shè)計(jì)實(shí)訓(xùn),并且得到智能化測評,教師能夠隨時(shí)根據(jù)學(xué)情靈活調(diào)整線上實(shí)訓(xùn)平臺內(nèi)容,能夠?qū)W(xué)生實(shí)訓(xùn)數(shù)據(jù)進(jìn)行精準(zhǔn)分析的目標(biāo),本研究研發(fā)了“程序設(shè)計(jì)課程云智能實(shí)訓(xùn)系統(tǒng)”,著重從系統(tǒng)功能、系統(tǒng)設(shè)計(jì)等方面進(jìn)行闡述。
程序設(shè)計(jì)云智能實(shí)訓(xùn)系統(tǒng)的目標(biāo)是設(shè)計(jì)一個(gè)基于云端的程序設(shè)計(jì)虛擬實(shí)驗(yàn)室,該系統(tǒng)不限時(shí)間、空間和終端的限制,學(xué)生通過瀏覽器打開網(wǎng)址即可進(jìn)行實(shí)訓(xùn),該系統(tǒng)能對編程實(shí)驗(yàn)操作進(jìn)行智能評價(jià),并實(shí)時(shí)反饋評價(jià)結(jié)果;能后臺監(jiān)控所有實(shí)訓(xùn)數(shù)據(jù),通過大數(shù)據(jù)挖掘,對學(xué)生實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析,從而輔助教師調(diào)整教學(xué)。該系統(tǒng)從理論、方法、技術(shù)和系統(tǒng)實(shí)現(xiàn)具有一定的普適性,能夠推廣和應(yīng)用到其他課程和領(lǐng)域。
程序設(shè)計(jì)云智能實(shí)訓(xùn)系統(tǒng)主要包括實(shí)驗(yàn)智能測評、學(xué)習(xí)數(shù)據(jù)分析和互動學(xué)習(xí)3 個(gè)功能模塊。其中,實(shí)驗(yàn)智能測評和學(xué)習(xí)數(shù)據(jù)分析是系統(tǒng)的核心功能模塊。
該模塊根據(jù)功能需求包含實(shí)訓(xùn)題庫、實(shí)驗(yàn)操作、實(shí)驗(yàn)智能化測評3 個(gè)子模塊。實(shí)訓(xùn)題庫模塊是教師根據(jù)教學(xué)計(jì)劃和重難點(diǎn)設(shè)計(jì)一些實(shí)訓(xùn)題目的學(xué)習(xí)資源題庫,教師可以靈活設(shè)置,根據(jù)每個(gè)班級不同學(xué)情靈活更新和調(diào)整題庫內(nèi)容,也可以根據(jù)學(xué)生實(shí)訓(xùn)情況增加某類知識點(diǎn)的強(qiáng)化訓(xùn)練;實(shí)驗(yàn)操作是學(xué)生登錄網(wǎng)站,根據(jù)學(xué)習(xí)計(jì)劃以及自身能力選擇不同知識點(diǎn)對應(yīng)的題目進(jìn)行編制程序代碼,如有困難可以查詢提示,完成后提交源程序;實(shí)驗(yàn)智能化測評是系統(tǒng)對學(xué)生提交的源程序檢測評價(jià),如果正確,反饋答對信息,并給予鼓勵;如果出錯則反饋運(yùn)行錯誤信息, 并提示出錯的地方,引導(dǎo)學(xué)生排查錯誤,實(shí)現(xiàn)智能化評價(jià)。
該模塊根據(jù)功能需求包含實(shí)訓(xùn)題庫管理、學(xué)生數(shù)據(jù)記錄、學(xué)生答題排名和學(xué)習(xí)數(shù)據(jù)分析4 個(gè)子模塊。用戶排名模塊是根據(jù)學(xué)生學(xué)習(xí)數(shù)據(jù)情況,在每個(gè)班級下按照得分高低進(jìn)行排名,也可以針對某道題查看最快答題的同學(xué);實(shí)訓(xùn)題庫管理是教師可以靈活新增、刪減和設(shè)置題庫內(nèi)容,并且對題庫的使用賬戶信息和權(quán)限進(jìn)行管理;學(xué)生數(shù)據(jù)記錄是對學(xué)生在題庫里操作情況進(jìn)行記錄,答對情況、答錯次數(shù)等;學(xué)習(xí)數(shù)據(jù)分析是該系統(tǒng)的核心,可以實(shí)時(shí)分析學(xué)生學(xué)習(xí)的數(shù)據(jù),不僅答題情況的分析,還有所有學(xué)生操作記錄的分析,如選擇題目集中哪類知識點(diǎn),某道題答錯次數(shù),獲取提示的題目等,形成學(xué)生個(gè)人學(xué)習(xí)數(shù)據(jù)庫和班級學(xué)情數(shù)據(jù)庫,從而輔助教師調(diào)整教學(xué)策略。
該模塊根據(jù)功能需求包含在線答疑、討論協(xié)作和常見問題3 個(gè)子模塊。在線答疑是教師設(shè)置了問題交流窗口,學(xué)生遇到問題可以在線和教師進(jìn)行溝通交流討論;討論協(xié)作模塊是為小組討論設(shè)置的,小組成員可以在線上實(shí)行任務(wù)分配,對工作任務(wù)遇到問題時(shí)可以進(jìn)行溝通協(xié)作;常見問題模塊是后臺根據(jù)以往教學(xué)遇到的系統(tǒng)使用和題庫問題進(jìn)行了整理,用戶直接可以查看解決大眾問題,提高問題解決的效率。
系統(tǒng)前端使用業(yè)界流行的vue 框架開發(fā),后端使用node 框架開發(fā)Web 服務(wù)器。底層使用selenium/phanthomjs/chrome 等瀏覽器框架技術(shù)運(yùn)行上機(jī)代碼,實(shí)現(xiàn)核心功能[4]。系統(tǒng)運(yùn)行流程見圖2。
圖2 系統(tǒng)運(yùn)行流程示意
程序設(shè)計(jì)課程云智能實(shí)訓(xùn)系統(tǒng)采用B/S 模式開發(fā),運(yùn)用了3 層服務(wù)體系,分別是表示層、業(yè)務(wù)邏輯層以及數(shù)據(jù)訪問層,見圖1。表示層,系統(tǒng)通過Web 瀏覽器將業(yè)務(wù)邏輯層的數(shù)據(jù)按一定格式和界面呈現(xiàn)給用戶,并與用戶進(jìn)行交互。業(yè)務(wù)邏輯層,相當(dāng)于系統(tǒng)的Web 服務(wù)器,將表示層傳遞過來的用戶請求,進(jìn)行解析、分拆、重組,形成數(shù)據(jù)訪問需求,傳遞給數(shù)據(jù)訪問層。同時(shí),對來自數(shù)據(jù)訪問層的數(shù)據(jù)進(jìn)行梳理、匯合。數(shù)據(jù)訪問層,采用MySQL 網(wǎng)絡(luò)開源數(shù)據(jù)庫作為數(shù)據(jù)存儲數(shù)據(jù)庫,主要負(fù)責(zé)將業(yè)務(wù)邏輯層傳遞過來的數(shù)據(jù)請求,通過網(wǎng)絡(luò)的方式從數(shù)據(jù)文件中進(jìn)行檢索,并返回?cái)?shù)據(jù)結(jié)查。數(shù)據(jù)訪問層主要起到存儲數(shù)據(jù)、數(shù)據(jù)查詢、數(shù)據(jù)安全和數(shù)據(jù)分流的重要作用,數(shù)據(jù)庫的建立能更好的實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一性、完整性和持久化。
圖1 系統(tǒng)結(jié)構(gòu)
學(xué)生激活程序設(shè)計(jì)云智能實(shí)訓(xùn)系統(tǒng),進(jìn)行選題寫代碼,瀏覽器前端把上機(jī)代碼通過axios 異步技術(shù)發(fā)送到服務(wù)器端,服務(wù)器端收到瀏覽器請求后,使用瀏覽器模擬器運(yùn)行用戶編寫的上機(jī)代碼,根據(jù)代碼運(yùn)行的輸出及產(chǎn)生的作用,綜合從數(shù)據(jù)庫中加載的測試及結(jié)果數(shù)據(jù),進(jìn)行人工智能評價(jià)。結(jié)果以json 接口的形式封裝返回給瀏覽器;另一邊老師也可以通過管理員端口查詢到分析結(jié)果,隨時(shí)了解學(xué)生的學(xué)習(xí)情況。此外,系統(tǒng)還設(shè)計(jì)了問題提示功能,學(xué)生碰到困難點(diǎn)可以通過分值來換取提示,服務(wù)器會向數(shù)據(jù)庫發(fā)送請求查詢學(xué)生是否有足夠的分值,如果有提示以json 接口的形式封裝返回給瀏覽器,反則會提示無法獲取。
系統(tǒng)前端通過vue、element-ui 框架實(shí)現(xiàn),學(xué)生在對瀏覽器進(jìn)行操作時(shí),瀏覽器將請求通過json 封裝把數(shù)據(jù)發(fā)送至業(yè)務(wù)服務(wù)層,業(yè)務(wù)服務(wù)層通過數(shù)據(jù)存取層得到后端數(shù)據(jù)源的數(shù)據(jù)支持[5]。軟件模型圖見圖3。
圖3 系統(tǒng)軟件模型
3.4.1 服務(wù)端系統(tǒng)功能
a.身份判斷。用戶在系統(tǒng)登錄的時(shí)候,后臺會通過MySQL 數(shù)據(jù)庫存儲的數(shù)據(jù)判斷用戶是學(xué)生(s)還是管理員(a),完成后將結(jié)果返回給瀏覽器。b.智能評價(jià)。學(xué)生在系統(tǒng)提交題目代碼后,服務(wù)器會使用PhantomJS瀏覽器模擬器運(yùn)行學(xué)生編寫的上機(jī)代碼,根據(jù)代碼運(yùn)行的輸出及產(chǎn)生的作用,綜合從MySQL 數(shù)據(jù)庫中加載的測試數(shù)據(jù),結(jié)果以json 接口的形式封裝返回給瀏覽器。c.用戶注冊。學(xué)生通過Web 瀏覽器填寫個(gè)人信息,如姓名、學(xué)號、專業(yè)班級以及登錄密碼,完成后將數(shù)據(jù)交給MySQL 數(shù)據(jù)庫保存管理。d.修改個(gè)人信息。
3.4.2 網(wǎng)頁端的主要功能
a.用戶注冊登錄系統(tǒng)。b.瀏覽練習(xí)題目,預(yù)覽知識點(diǎn)。c.查看做題記錄,通過之前的記錄了解自己的做題思路。d.通過查看自己在班級的排名,激發(fā)學(xué)生的競爭心理。e.了解自己的學(xué)習(xí)情況,系統(tǒng)統(tǒng)計(jì)分析近期學(xué)習(xí)數(shù)據(jù)。f.修改個(gè)人信息。
3.5.1 數(shù)據(jù)加密技術(shù)提高安全性
由于JavaScript 程序設(shè)計(jì)云智能實(shí)訓(xùn)系統(tǒng)需要在學(xué)生登錄后才能使用,如學(xué)生上機(jī)途中離開別人可以通過操作后臺截取登錄密碼。所以對于網(wǎng)頁來說數(shù)據(jù)加密的工作是非常重要的,它能有效防范他人竊取信息和使用。云智能實(shí)訓(xùn)系統(tǒng)主要采用MD5 進(jìn)行數(shù)據(jù)加密處理,當(dāng)學(xué)生要進(jìn)入系統(tǒng)點(diǎn)擊登錄時(shí),服務(wù)器接收到數(shù)據(jù)后對登錄密碼進(jìn)行加密處理后再跟存放在數(shù)據(jù)庫里的數(shù)據(jù)做對比,如果數(shù)據(jù)相同則證明密碼正確。
3.5.2 實(shí)驗(yàn)結(jié)果智能評價(jià)技術(shù)
應(yīng)用前端自動化測試技術(shù),利用黑盒測試原理,對學(xué)生上機(jī)編程結(jié)果進(jìn)行量化,對程序結(jié)果進(jìn)行智能評價(jià)和實(shí)時(shí)反饋,提高學(xué)生的上機(jī)實(shí)驗(yàn)效率。
我們在系統(tǒng)使用瀏覽器模擬器開發(fā)了人工智能評價(jià)系統(tǒng)。智能評價(jià)關(guān)鍵代碼如下:
如果學(xué)生實(shí)訓(xùn)操作題沒有運(yùn)行錯誤,并且輸出結(jié)果與標(biāo)準(zhǔn)結(jié)果匹配一致,則反饋正確,否則反饋結(jié)果錯誤,見圖4。
圖4 智能評價(jià)界面
本研究針對程序設(shè)計(jì)類課程線上實(shí)訓(xùn)教學(xué)輔導(dǎo)效率低的弊端,開發(fā)設(shè)計(jì)了“程序設(shè)計(jì)課程云智能實(shí)訓(xùn)系統(tǒng)”,該實(shí)訓(xùn)平臺系統(tǒng)不限時(shí)間、空間和終端的受限,網(wǎng)頁端即可進(jìn)行實(shí)訓(xùn)并得到智能化輔導(dǎo)。該系統(tǒng)能夠推廣到編程類的各個(gè)專業(yè)課程,普適性較高,有效解決目前線上實(shí)訓(xùn)教學(xué)的困難。