陳丹琪 段 麗 孫旭光
(防災科技學院,河北 廊坊 065201)
軟件工程是一門聯系基礎理論與工程實踐的橋梁課程,對計算機相關專業學生具有重要指導作用,但其內容抽象繁雜,學習難度大,歷來都是教學難點。本文論述了在雨課堂教學環境下,將機器學習算法融入軟件工程教學中,幫助教師實時掌握學生學習效果,應用動態教學方法決策,提升教學效果的實踐過程。
隨著新一代信息技術發展而出現的智慧教學,實現了人工智能技術與教育核心業務的深度融合。雨課堂就是一套智慧教學解決方案,在防災科技學院已得到廣泛應用。它不僅提供了多樣化的教學手段,也產生了能夠實時反映學生課堂表現的豐富數據。以雨課堂選擇題的作答數據為例,包括本題完成人數、完成率、正確率、各選項選擇的人數占比等。應用雨課堂能輕松獲得多元數據,幫助教師更客觀地評價學生對知識的掌握程度,但授課中要求教師一邊講課、一邊整理分析零散數據顯然很難完成。于是,教師通過重構軟件工程教學內容各知識點,設計出能體現學生認知過程的不同題型,按照認知過程維度進行標注。這樣就可以運用機器學習算法,挖掘數據特征建立模型,實現教學數據生成與分析的聯動,以達到實時提供教學方法決策的目的。
這種智慧教學過程,能使教師更有針對性地以適合本班學生認知過程的教學方法講授知識,從主觀的經驗驅動轉變為精準的數據驅動,從而更好地幫助學生掌握課程內容。
智慧教育是融合現代教育理論與大數據分析、人工智能等信息技術的新教育信息化范式[1],機器學習則是智慧教育的核心算法。Kizilcec等人采用Fisher精確檢驗對MOOC學習軌跡數據進行了分析[2],Coetzee等人使用同樣方法分析了edX平臺中“軟件工程”課程的行為數據[3]。這都是通過對教育過程大數據進行挖掘、分析、融合,建立高度智能化學習生態系統的研究。作為智慧教學平臺,雨課堂能實時生成教學數據,但由于各知識點對應的教學目的要求不同,各題所體現的認知過程維度也不同,還需進一步應用機器學習技術挖掘數據資源中的學習特征[4],據此分析出有效的教學決策。
為體現學生的學習效果,針對不同知識點可設立三大類教學目的:復現知識(了解、復述)、基本思維操作(解釋、說明)和能產型思維(解答復雜問題)。教師先以學生必須掌握知識體系的形式提出針對不同知識點的教學目的,再根據教育目標2001版分類體系,按照認知過程維度習題分為六種:記憶、理解、應用、分析、評價和創造題。從下例可看出,這些習題會從不同側面反應教學目的的達成度。
表1為學生對某知識點習題的作答數據。教學中教師直接根據學生作答情況評價教學效果,但這個70分的成績足夠客觀嗎?
只有結合教學目的進行教學效果評判才是合理的。教師采用線性變換方法對學生學習行為進行評價,公式為,其中為學生對此知識點學習水平的評價值,向量(記憶,理解,應用,分析,評價,創造)為綜合評價因素,為各題型得分占比。知識點的教學目的不同,對應中各因素的權值也不同。若教學要求為復現知識,則“記憶”和“理解”的權值較大;若教學要求為能產型思維,則“評價”和“創造”的權值較大。三類教學目的對應三種權值:
x1=(0.6,0.2,0.1,0.1,0.0,0.0)x2=(0.3,0.2,0.2,0.1,0.1,0.1)x3=(0.2,0.2,0.1,0.1,0.2,0.2)
以表1為例對學生的學習行為進行評價。若本練習對應知識點教學目的要求為能產型思維,那么X=(0.2,0.2,0.1,0.1,0.2,0.2),線性變換如下:

表1 習題作答成績表

可見,變換后學習水平評價為64分,與變換前的70分是有差異的。用這種結合教學目的的評價結果選擇適合的教學方法,才能高效實現教學目標。教學中要從學生學習水平出發,根據學生對知識掌握程度的好壞,確定教學方法。決策樹正是可以從給定訓練集中學得一個模型,用以對新示例進行判斷,并完成樣本分類,區分為正例和反例的算法。這一決策過程的結論剛好對應判定結果,即當學習水平為反例時,就要運用對應的教學方法針對學生未掌握知識進行著重講解。
具體實現過程如下。依照認知過程維度對學生認知水平進行計分,并按所得分值劃為三段:高(80~100)、中(60~80)、低(60以下)。再把學習水平評價分為兩類:正例“好”(T)和反例“壞”(F)。表2記錄了執行教學方法1的教學過程數據。教師要從這30組訓練例中確定適合使用教學方法1的學生。

表2 采用教學方法1的實例數據
訓練模型描述為<D,U,A>,其中D是訓練集,U是訓練集的屬性集,A是訓練集的分類,定義如下:
(1)D為學生訓練集,選擇一個特征值A表示學習水平。
(2)D中包含屬性集U,共有六個屬性:U1、U2、U3、U4、U5、U6,依次代表記憶、理解、應用、分析、評價和創造六種能力。U1~U6均有高、中、低三種取值。
(3)D依照特征A被劃分為兩類:T與F,分別代表正例和反例,即為A的2個取值。
訓練過程中,為了避免對小概率訓練實例的進一步分支和處理,決策樹要進行預剪枝,規則是:如果訓練實例屬于同一個類(T或F)的概率大于80%,則視這些訓練實例屬于同一個類。決策樹學習算法為:
決策樹初始狀態只含有一個樹根(X,U),其中X是全體訓練實例集合,U是全體測試屬性集合,U={記憶能力,理解能力,應用能力,分析能力,評價能力,創造能力};
若X'中的訓練實例屬于同一個類的概率大于80%,則視這些訓練實例屬于同一類;
若決策樹所有子節點(X',U')具備下列條件中任何一個,則停止執行學習算法,學習結果為此決策樹:
(1)U'為空;
(2)X'中的訓練實例屬于同一個類;
否則,選擇一個不具備步驟3所述狀態的子節點(X',U');
對于U',選取Gain(X',b)最大的測試屬性b;
設X'被測試屬性b的不同分值分為m個不相交的子集X'i,1≤i≤m,從(X',U')伸出m個分支,每個分支代表b的一個不同取值,從而形成m個新的子節點(X',U'-{b})。轉到步驟2。
以表2數據推演算法實現過程。依據信息論原理,表2數據表示在訓練構建模型初始時刻屬于T類和F類的實例個數均為15,所以初始時刻信息熵為:

如果選取U1作為測試屬性,則條件熵為:


信息增益為:

類似的,可以計算出其他屬性的信息增益:

顯然,屬性U1“記憶”的信息增益最大,即關于U1的信息對于分類幫助最大,于是它被選為測試屬性。而U1有三種取值(高、中、低),可使訓練例生成三個子節點,各子節點具有屬性集U1={U2,U3,U4,U5,U6}。再依次對這三個子節點按照上述過程執行操作。
對于U1取值為“高”的子節點,因訓練例中正例占比為7/8,超過80%,則所有訓練例都屬于正例,停止執行算法。
對于U1取值為“中”的子節點,由于在U'中的信息增益最大的屬性是U6,因此選擇U6作為測試屬性,下一級子節點具有屬性集U'={U2,U3,U4,U5}。繼續按照上述過程求解。
對于U1取值為“低”的子節點,因訓練例中反例占比為9/10,超過80%,則所有訓練例均為反例,算法停止執行。
應用上述算法生成了圖1決策樹。由這棵決策樹得到5個學習規則:

圖1 表2訓練生成的決策樹
規則1:IF記憶能力=高THEN使用教學方法1
規則2:IF(記憶能力=中AND創造能力=中)THEN使用教學方法1
規則3:IF(記憶能力=中AND創造能力=高AND應用能力=中)THEN使用教學方法1
規則4:IF(記憶能力=中AND創造能力=低AND理解能力=高)THEN使用教學方法1
規則5:IF記憶能力=低OR(記憶能力=中AND創造能力=高AND應用能力=低)OR(記憶能力=中AND創造能力=低AND(理解能力=中OR理解能力=低))THEN不使用教學方法1
以上是對教學方法1進行決策樹學習的過程,運用同樣的算法對所有教學方法實施決策樹學習,就能得出適合不同學習水平的各種教學方法。
我們教師在軟件工程教學中,應用上述方法挖掘雨課堂學生學習特征行為數據作為訓練集,建立了有效的教學決策模型。教師依照模型推薦的教學方法授課,能從全體學生教學效果最優角度進行剖析講解,確保了學生對重點、難點知識的掌握;同時,利用訓練集中的個性化數據,為每位學生發布不同的實踐作業,既可加強學生對自身薄弱知識點的練習,又可減少同學間抄襲作業的現象。通過執行以上各個教學環節,學生從能聽懂到愿意學,逐步進入主動思考的學習狀態,很好提升了學生的理論學習興趣及軟件工程的實踐能力。
追蹤兩個專業軟件工程課程四輪教學學生的期末平均成績,計算機科學與技術專業分別為:68.7分、67.9分、73.8分、75.2分,物聯網工程專業分別為:67.3分、65.1分、69.7分、72.6分。其中前兩輪是教師以經驗驅動主觀選擇教學方法進行的教學,后兩輪教學中應用了機器學習建模后智能推薦的教學方法。可見,使用決策樹算法給出的教學決策取得了更好的教學效果,使學生期末成績有較大提高。
本文介紹了運用機器學習決策樹方法訓練雨課堂教學數據,并建立模型獲取適合不同學習水平教學方法的具體過程。實踐證明該方法不僅能輔助教師實現教學策略的靈活運用,也能很好幫助學生提升工程實踐能力。其他教師可根據所教課程特點,按照認知過程維度設置習題分類屬性及與教學目的對應的權值,亦可構建相應課程的教學決策模型,具有廣泛的應用價值。