關鍵詞: 大數據 學習評價系統 Python+Django 框架 多維度學習評價 MTV 模型
基于大數據的小規(guī)模限制性在線課程(SmallPrivate Online Course,SPOC)學習評價系統是廣東省職業(yè)技術教育學會2021—2022 年度科研規(guī)劃項目課題——《基于大數據的混合式學習評價體系》的研究成果之一。隨著線上教學的普及和信息技術應用能力提升工程2.0 工作的推廣,廣東生態(tài)工程職業(yè)學院教師紛紛采用混合式教學模式,形成了一批SPOC 課程,由于線上、線下學習數據呈現多樣性、零散性、復雜性的特點,教師往往難以全面地分析各項數據,總結學生的學習狀況。此系統旨在對學生所有的學習數據進行全面收集,包括線上學習平臺的數據,線下課堂的考勤、課堂表現、作業(yè)等,使用大數據的思維對學習數據進行處理、分析,將真實的學習數據作為樣本數據,借助Python強大的第三方資源包,通過訓練得到學習行為與各評價維度之間的關系模型,形成對學生的學習態(tài)度、學習方法、學習能力的多維度評價,并通過數據可視化的方法展現數據,為教師教學、學生學習活動的開展提供過程性的評價數據,也為最終的學業(yè)評價提供數據依據。此評價系統便于教師收集與整理教學資料,是專業(yè)數字化教學管理的平臺之一。
1 開發(fā)環(huán)境分析
1.1 Python 在數據分析上的優(yōu)勢
目前正是一個以數據為核心信息新時代,在云計算、大數據、物聯網、人工智能等各種新技術的推動下,全球科技與產業(yè)都開始“數字化轉型”。數字化帶來的海量數據為各行各業(yè)的發(fā)展提供了巨大的推動力,重塑了傳統產業(yè)的結構和形態(tài),是企業(yè)的核心資產,應用大數據是這個時代的必行之路。在教學中,數據也無處不在,這些數據能夠幫助教師和學生提升教學、學習效果。例如:可把學生的平時學習數據進行采集、分析和研究,并實時提供數據參考、結果分析和趨勢預測,不僅可用來分析學生的最終學習效果,還可以讓教師隨時掌握學情,及時調整教學方法和策略,同時也可以讓學生了解自己的情況,主動學習。
數據科學與大數據技術是整合計算機科學、統計學等多個學科領域,來抽取、理解和分析數據中所蘊含的知識和信息。采用計算機技術進行數據的采集、處理、存儲、分析和應用,最終的目的是通過數據分析從雜亂無章的數據背后,提取有用的信息,總結數據規(guī)律,為應用人員的決策提供依據。在學習評價中應用數據分析,從技術層面可以大略分為三類:第一類統計分析類,以基礎的統計分析為主,如對比分析法、環(huán)比分析法、結構分析法等,通過統計分析,把教學的情況進行實際的呈現;第二類為高級分析類,以建模理論為主,如回歸分析法、聚類分析法、時間序列分析法等,通過分析,發(fā)現和探討教與學數據中的關系、內在結構、變化規(guī)律;第三類是數據挖掘類,以機器學習、數據倉庫等復合技術為主。
學習評價系統開發(fā)面臨從數據采集、數據集成、數據清洗、數據存儲,到數據管理、數據分析、數據挖掘、數據展示等數據處理環(huán)節(jié),開發(fā)系統時選擇采用Python為工具,在于它是一種面向對象程序設計語言,具有可移植性、可擴展性等特點,更重要的是其免費開源性,使得Python 擁有豐富而強大的數據分析庫,而這些正是它在數據分析領域備受重用的關鍵。
1.2 Django 架構的分析
學習評價系統的開發(fā)的目標,面向對象不僅僅是教師,數據分析也不僅僅是最終期末的成績,而是希望面向教學中的教師、學生、教學管理人員,使他們在整個學習過程中可以實時去查看分析結果、知悉優(yōu)勢不足和趨勢預判,對學習過程出現的問題進行調整。基于系統易用性,學習評價系統的開發(fā)采用B/S 架構,即瀏覽器和服務器架構模式,教師、學生等用戶工作界面通過WWW 瀏覽器(Browser)來實現,主要事務邏輯在服務器端(Server)實現。
Django 是基于Python 的重量級開源Web 應用框架,采用了類似于MVC 的MTV 架構,即模型(Model)、模板(Template)和視圖(Views)3 個部分[1]。
“M”代表模型(Model),即數據存儲層,負責業(yè)務對象與數據庫的映射(ORM)[2]。該層處理與數據相關的事務,負責數據儲存在的服務器端基本結構,實現數據庫交互,存取、驗證有效性、處理數據之間的關系等內容。
“T”代表模板(Template),即模板層(也叫表現層),具體來處理頁面的顯示。該層處理與表現相關的決定,通過前端頁面(html),負責前端的數據與操作的交互操作,并把后端處理的數據在Web 前端展現。
“V”代表視圖(View),即業(yè)務邏輯層,處理具體的業(yè)務邏輯。該層負責存取模型Model 及調取模板Template 的相關邏輯,通過與數據庫做溝通增刪改查,加工數據并把結果傳到前端頁面,是模型與模板之間的橋梁。
圖1 為Django MTV 設計模式示意圖。
在Django 框架中,MTV 的工作流程中,還需要一個URL 分發(fā)器,它的作用是將一個個URL 的頁面請求分發(fā)給不同的View 處理,View 再調用相應的Model 和Template,URL 路由簡單地來說就是根據用戶請求的URL 鏈接來判斷對應的處理程序,并返回處理結果,也就是URL 與Django 的視圖建立映射關系。當Web 服務器端接收到一個用戶請求后,通過MTV 的設計模式,首先用戶請求會到達相應的視圖函數,那么視圖函數是通過路由系統找到相應的訪問資源。
1.3 Python+Django 的應用
學習評價系統的開發(fā),利用Python 在數據分析的優(yōu)勢,特別是利用其豐富的開源庫資源,再結合采用Django 的MTV 框架,實現系統的B/S 架構,是開發(fā)在線數據分析系統最合適的解決方案。
2 開發(fā)技術分析
2.1 數據采集
系統主要基于本專業(yè)教師的SPOC 課程教學數據的評價。由于前期教師采用信息化教學平臺沒有統一的標準[3],數據采集就需要針對用戶群體多且具有普遍性的數據。以廣東生態(tài)工程職業(yè)學院信息專業(yè)教學為例,超星平臺是近年來教師用戶最多的信息化教學平臺,因此線上平臺數據主要采集的是來自超星平臺的數據。課堂教學數據包括課堂上教師的上課實時練習評價數據、平時的階段測試、考試成績數據、課堂表現數據等。這些數據有些是教師課時自行收集,以Excel 表數據為主;有些是使用專業(yè)內部自主開發(fā)的課堂教學平臺進行記錄,以數據庫形式存在。針對這些此專業(yè)混合教學模式下產生的數據,主要分3 個模塊進行采集[4]。
2.1.1 課堂教學數據采集
課堂教學數據采集模塊,通過設計考勤登記系統、隨堂評價系統,采用Bootstrap 開發(fā)前端界面,方便教師通過教師利用電腦或手機的網頁進行課堂點名、課堂表現、隨堂作業(yè)評價等資料的錄入,教師也可指定助教,協助進行評價數據的收集。未使用平臺收集數據的,提供Excel 導入接口,將課堂學習數據導入系統。
2.1.2 線上學習平臺數據采集
平臺數據采集模塊,對于各種學習平臺,主要采用平臺導出的Excel 數據表進行上傳收集,而對于學習通平臺,在教師授權提供密碼及賬號的基礎,可以通過爬蟲技術,自動獲取網頁數據,實現平臺數據的收集。
2.1.3 校內教務系統數據采集
校內教務系統數據采集模塊,因為校內教務系統數據庫可查詢,通過數據庫訪問相關的學生信息、成績表、課程信息等數據,進行相關數據采集。
2.2 數據處理
采集的數據主要來源于Excel 表和數據庫,這些數據中包含著一些干擾數據、不完整的數據,因此還需要進行數據清洗、數據集成、數據規(guī)約和數據變換[5]。
2.2.1 數據清洗
由于評價數據的來源規(guī)范性不足,主要是Excel表和數據庫的抽取數據,存在大量記錄過程不完整、重復,甚至是錯誤的數據。針對這些情況,通過“ORM+Pandas”進行初步數據處理。Pandas 是基于NumPy 的一種開源數據處理工具,納入了大量庫和一些標準的數據模型,提供了高效操作大型數據集所需的工具。使用Pandas 可以很輕松地進行數據清洗,刪除掉不需要的字段、完善或刪除缺失值、處理重復數據、統一數據格式等,最終實現完整數據的轉換。
2.2.2 數據集成
由于數據來自不同的源,因此要解決如何將兩個不同的字段名指向同一實體的問題,這里采用數據庫中的元數據(關于數據的數據)來解決,避免模式集成時產生錯誤。同時,也要處理數據值的沖突,如出現大量空值的列的數據,當該列中空值所占比例大于70% 時,認為該列評價數據無效,做刪除處理;對于不符合數據格式的數據,進行正確格式的轉換。
2.2.3 數據規(guī)約
為了提高學習分析效率,對原有的數據集采用維度規(guī)約、維度變換、數值規(guī)約等方法進行規(guī)約處理,減小數據集規(guī)模。如超星學習平臺中的任務完成數、任務點完成百分比、任務點完成時間等數據存一定的冗余,可以通過維度變換原則,將現有數據降低到更小的維度,在保證數據信息完整性的前提下,構造新的數據,提高建模的效率。
2.2.4 數據變換
數據變換主要是對數據進行規(guī)范化處理,不同評價方式的量綱不同,數值間的差別會比較大,因此需要對數據按照一定的比例進行縮放,使之投射到一個特定的范圍。系統中采用Min-Max 規(guī)格化方法,將成績映射到[0,1]區(qū)間,再進行百分制的轉換。
2.3 數據存儲
在數據存儲上采用MySQL 數據庫系統,相對其他數據庫,MySQL 成本低,是開源的數據庫系統,在授權方面是首選。MySQL 體積小、速度快、移植性強、可以支持大型的數據庫、多線程,是實用性強的數據庫,在學習評價系統中,是最合適的數據存儲系統。
Django 的對象關系映射(Object Relational Mapping,ORM)框架為系統開發(fā)提供了強大的支持,通過ORM 實現使用操作對象的方式來操作數據庫中的數據,在ORM 中,類對應著數據庫的表,對象對應數據庫的數據行,屬性對應數據庫的字段,使數據操作變成了通過Python 面向對象的操作,ORM 框架會根據對接的數據庫引擎,翻譯成對應的SQL 語句,支持單表、多表和聚合查詢。使用ORM 框架減輕了開發(fā)人員的壓力,為以后因使用環(huán)境的變更,為數據庫遷移提供支持。
采用Django 框架進行學習評價系統開發(fā),首先通過settings 進行數據庫的配置,在_init_.py 中配置使用pymysql,然后使用Model 在Models.py 注冊App,并通過定義類來與數據庫中的數據進行映射。最后在系統開發(fā)中,使用ORM 的增刪改查語句,很容易實現跨數據庫平臺的數據操控。
2.4 數據分析
在評價模型中使用了sklearn 庫進行主成分分析(Principal Component Analysis,PCA)特征提取,從學習數據中發(fā)現學生有價值的信息,形成學習態(tài)度、學習方法、學習能力以及學習效果等多維度的學習評價。在技術上采用基于Python 的TensorFlow 平臺建立多層全連接神經網絡模型。在為學習評價系統建立神經網絡評價模型中,包含輸入層、隱藏層和輸出層3 個部分。輸入層把學生的一串相互聯系的特征數據組織成一個向量,根據評價的方向,確定多個向量節(jié)點作為輸入層。隱藏層是描述神經網絡模型結構中最重要的部分,通過設計多個隱藏層,每一層中有神經元節(jié)點,接收到輸入層傳來的數據,通過神經元節(jié)點的運算,得到結果,向下一層傳輸數據。在多層全連接神經網絡中,隱藏層的各個節(jié)點與上一層的每個節(jié)間都有連線,使用矩陣乘法實現隱藏層的全連接層形式。輸出層是神經網絡模型的最后一層,是結果層。在數據模型形成過程中,還需要準備訓練數據,從前期實踐中的一些學生數據文件中載入訓練數據,編寫完整的訓練代碼,使用均方誤差作為計算誤差的方法,對模型進行訓練,最終完成評價模型的建立[6]。
2.5 數據可視化
學習評價最終目的是為教師的教學、學生的學習提供數據支撐,學生評價數據生成后,評價結果以數據和圖表方式展示。Echarts 是一個開源的純JS 的數據可視化庫,而Pyecharts 是Echarts 的Python 封裝版本,因此在學習評價系統中引入Pyecharts 來進行評價圖表的輸出。在Template 的html 模板中,準備文檔對象型(Document Object Model,DOM)相關代碼渲染這個元素,在View 中,利用Pyecharts 將數據生成圖表對象json格式的全局options,前端JS 部分用AJAX 通信獲取后端json,并刷新圖表元素呈現可視化結果。圖2 為某位學生的學習記錄及學習效果預測展示。
3 結語
基于Django 的學習評價系統開發(fā),實現了線下、線上課堂數據的采集、異構數據的整合與存儲、數據的清洗、分析和展示等功能,達到了預期的目的,可以有效分析SPOC 混合式教學中學生的學習數據,形成合理的過程性評價,為教師教學、學生學習提供參考性數據。此系統的應用有利于教師和學生及時了解學習情況,對學生學習有一定的督促效果,在一定程度上提高了學生學習的積極性,形成主動學習的意愿;同時也大大減少教師的重復性工作量,提高評價效率。由于本系統主要基于本專業(yè)混合式教學情況進行開發(fā),系統存在一定的局限性,對于跨專業(yè)、跨平臺的學習評價不太適用,因此評價系統的通用性還有待進一步完善。