陳俊
(合肥師范學院數學與統計學院,安徽合肥 230601)
個性化學習的概念早在20世紀初就已經出現,它是根據學習者的個性特點和發展潛能,采取靈活、適合的方式充分滿足學習者個體需求的學習[1]。隨著互聯網技術的迅速發展,國內教育信息化水平的不斷提高,知識獲取與知識傳播的方式發生了根本變化,在線學習的熱度不斷升高,逐漸被師生和家長所認可,不僅是因為在線學習能夠實現終身學習、寬生學習和深生學習,從時空維度和內容維度描繪出立體化的學習情景,學生可以獲取到更多豐富優質的學習資源,而且通過在線學習可以深入挖掘學習者學習習慣、學習狀態和學習水平等信息,在線學習可以幫助學生輕松實現個性化學習,可以有效提高學生學習主動性[2]。在線學習系統不但突破了傳統課堂教學的時空限制,而且為學習者提供了豐富的網絡資源,學習者只需要一部手機或電腦就可以實現在線網絡學習。隨著在線學習系統中學習資源的不斷增加,學生往往會花費很多時間和精力去查找所需要的學習資源,這就導致出現了學習資源過載的現象[3]。將基于協同過濾的個性化資源推薦算法應用于在線學習系統,可以有效解決此問題,從而提高學生的學習效率和系統體驗效果。本系統采用基于Python 的經典Web 框架Django來設計開發,用MySQL數據庫來存儲系統數據。
Python 由吉多范羅·蘇姆于1989 年底發明,被廣泛應用于處理系統管理任務和科學計算,是最受歡迎的程序設計語言之一。在TIOBE 最近公布的2022 年6月編程語言指數排行榜中,Python排第一位。Python語言簡單易學易用,擁有許多標準庫,在Windows 或Unix 等平臺上具有很好的兼容性。Python 完全支持面向對象程序設計,并擁有豐富的成熟擴展庫支持各種領域的應用開發。在Web 系統開發和科學計算等領域,Python具有很好的應用。
Django 是一個免費開源的Web 框架,可以用于快速搭建網站。Django 借鑒了經典的MVC 模式,它也將交互的過程分為了3個層次,也就是MTV 設計模式;其采用模型(Model) ,視圖(View) 和模板(Template)。模型處理與數據相關的事務,以及各數據之間的關系[4]。模板處理與表現層相關的事務,視圖負責捕獲URL、存取模型、調取恰當模板、處理相關業務邏輯,視圖層是模型層與模板層的橋梁。通過配置較少的功能代碼即可實現復雜的功能。Django MTV 設計模式如圖1所示。

圖1 Django MTV設計模式
MySQL 是一個開源的小型關系型數據庫管理系統,由瑞典MySQL AB 公司開發。由于MySQL是開源軟件,軟件安裝使用完全免費,安裝使用較為簡單,同時支持多個平臺(Windows、Unix和Macintosh),是最流行的關系型數據庫管理系統之一。由于MySQL 數據庫運行速度快和安裝使用簡單等優點,一般都選擇MySQL 作為網站開發的首選數據庫。
作為世界使用排名第一的Web 服務器軟件,Apache 支持多個平臺,包括Windows、Unix 和Macintosh,由于Apache 支持跨平臺和安全性等特點,因此被互聯網公司廣泛使用,也是最流行的Web服務器端軟件之一。Apache服務器具有運行速度快、安全穩定等特點。通過簡單的API 擴展,就可以將Python/Perl等解釋器編譯到服務器中。
本系統采用基于Web 的B/S 三層體系結構,Web服務器采用Apache,數據庫采用MySQL,采用Python的Django 框架進行設計開發。
系統整體上采用模塊化方式進行,系統分為教師模塊、學生模塊和管理員模塊。教師模塊主要供教師使用,教師用賬號和密碼登錄系統后可以先上傳優質的課程章節視頻和多媒體課件等學習資料,然后給學生布置一定的課程學習任務,學生只要每完成一個課程單元學習任務后就進行知識單元測試,教師也可以對學生的答題和作業進行批改。
學生模塊主要是供學生用戶使用的子系統,學生用戶登錄系統后可以在線觀看課程視頻和課件,課程學習結束后可以進行在線考試,在課程學習過程中遇到疑難問題,可以隨時在系統中向老師提問或者跟其他同學討論交流,可以有效提高學生自主學習的主動性。
管理員模塊主要是供系統管理員登錄的后臺系統,系統管理員擁有系統最高權限,系統管理員不僅可以有效管理師生的系統登錄賬號密碼等信息,而且可以設置教師用戶的系統訪問權限,還可以對系統的所有功能進行定制。
系統總體功能框架圖如圖2所示。

圖2 在線學習系統框架圖
數據庫設計是開發數據庫應用系統的基礎,在設計數據庫時,應當要充分考慮每個模塊之間的關系,要創建大小合適、冗余度低和數據讀取效率高的數據模型。本系統數據庫包括學生信息表、教師信息表、章節信息表、視頻信息表、課程信息表、評論信息表、試題信息表等。

表1 學生信息表

表2 課程信息表

表4 視頻信息表

表5 試題信息表

表6 評論信息表
1)根據學習者對學習資源的顯式評分,可以建立學習者-學習資源評分矩陣,如表8所示。其中第i行第j列Xij表示第i個學習者對第j個資源的評分[5]。
2)先給矩陣稀疏性設定閾值μ,再計算學習者-學習資源評分矩陣的稀疏性。矩陣稀疏性計算公式如下所示:
3)采用余弦相似度方法計算學習者相似度,通過計算兩個向量間的夾角余弦來度量學習者間的相似度,計算公式如下:
通過學習者相似度計算,可以得到與學習者相似度最鄰近n個用戶的鄰居集:Z={stu_1,stu_2,stu_3,stu_4,...,stu_n}。
4)根據最近鄰數據集中的學習者對學習資源的評分,就可以預測目標學習者對該學習資源的評分,產生最終的推薦結果,將學習資源推送給目標學習者。
本系統首頁提供了教師和學生或者系統管理員登錄系統的登錄界面,系統登錄模塊會檢查用戶輸入的賬號和密碼是否正確,只有輸入正確的賬號密碼,才可以進入在線學習系統。如果輸入錯誤的賬號密碼,系統則提示用戶登錄失敗,需要重新輸入賬號密碼。在線學習系統登錄界面如圖3所示。

圖3 C語言在線學習系統登錄界面
本系統運行需要大量的課程視頻數據和資料,教師需要定期對課程視頻資料進行管理和維護,系統實現了教師可以上傳C語言程序設計課件、視頻等學習資源,可供學生下載和在線觀看。
學生用戶登錄系統后可以進行在線測試,只要點擊學生頁面的在線測試按鈕,即可打開在線測試的頁面,在線測試時間為45分鐘,頁面顯示剩余答題時間,只要在線測試結束,系統會自動提交試題,等待教師批閱試題后,學生可以查詢本次測試成績。
在線學習已經成為目前主流的學習手段,在線學習系統為人們在網絡上進行在線學習和交流提供了平臺,基于協同過濾推薦算法設計了在線學習系統的個性化推薦模型,可以根據每位學生的學習行為和習慣差異,系統可以推薦個性化的學習資源供其學習,從而實現了C語言程序設計課程的個性化在線學習,也提高了學生的學習效率。本系統主要面向開設C語言程序設計課程的理工科專業,為學生提供一個可以C語言在線學習和在線測試的網絡教學平臺,滿足學生利用課外時間自主學習C語言,系統可以滿足師生在線交流討論的需要,以提高學生自主探究能力。