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