陳丹琪 段 麗 孫旭光
(防災(zāi)科技學(xué)院,河北 廊坊 065201)
軟件工程是一門(mén)聯(lián)系基礎(chǔ)理論與工程實(shí)踐的橋梁課程,對(duì)計(jì)算機(jī)相關(guān)專(zhuān)業(yè)學(xué)生具有重要指導(dǎo)作用,但其內(nèi)容抽象繁雜,學(xué)習(xí)難度大,歷來(lái)都是教學(xué)難點(diǎn)。本文論述了在雨課堂教學(xué)環(huán)境下,將機(jī)器學(xué)習(xí)算法融入軟件工程教學(xué)中,幫助教師實(shí)時(shí)掌握學(xué)生學(xué)習(xí)效果,應(yīng)用動(dòng)態(tài)教學(xué)方法決策,提升教學(xué)效果的實(shí)踐過(guò)程。
隨著新一代信息技術(shù)發(fā)展而出現(xiàn)的智慧教學(xué),實(shí)現(xiàn)了人工智能技術(shù)與教育核心業(yè)務(wù)的深度融合。雨課堂就是一套智慧教學(xué)解決方案,在防災(zāi)科技學(xué)院已得到廣泛應(yīng)用。它不僅提供了多樣化的教學(xué)手段,也產(chǎn)生了能夠?qū)崟r(shí)反映學(xué)生課堂表現(xiàn)的豐富數(shù)據(jù)。以雨課堂選擇題的作答數(shù)據(jù)為例,包括本題完成人數(shù)、完成率、正確率、各選項(xiàng)選擇的人數(shù)占比等。應(yīng)用雨課堂能輕松獲得多元數(shù)據(jù),幫助教師更客觀地評(píng)價(jià)學(xué)生對(duì)知識(shí)的掌握程度,但授課中要求教師一邊講課、一邊整理分析零散數(shù)據(jù)顯然很難完成。于是,教師通過(guò)重構(gòu)軟件工程教學(xué)內(nèi)容各知識(shí)點(diǎn),設(shè)計(jì)出能體現(xiàn)學(xué)生認(rèn)知過(guò)程的不同題型,按照認(rèn)知過(guò)程維度進(jìn)行標(biāo)注。這樣就可以運(yùn)用機(jī)器學(xué)習(xí)算法,挖掘數(shù)據(jù)特征建立模型,實(shí)現(xiàn)教學(xué)數(shù)據(jù)生成與分析的聯(lián)動(dòng),以達(dá)到實(shí)時(shí)提供教學(xué)方法決策的目的。
這種智慧教學(xué)過(guò)程,能使教師更有針對(duì)性地以適合本班學(xué)生認(rèn)知過(guò)程的教學(xué)方法講授知識(shí),從主觀的經(jīng)驗(yàn)驅(qū)動(dòng)轉(zhuǎn)變?yōu)榫珳?zhǔn)的數(shù)據(jù)驅(qū)動(dòng),從而更好地幫助學(xué)生掌握課程內(nèi)容。
智慧教育是融合現(xiàn)代教育理論與大數(shù)據(jù)分析、人工智能等信息技術(shù)的新教育信息化范式[1],機(jī)器學(xué)習(xí)則是智慧教育的核心算法。Kizilcec等人采用Fisher精確檢驗(yàn)對(duì)MOOC學(xué)習(xí)軌跡數(shù)據(jù)進(jìn)行了分析[2],Coetzee等人使用同樣方法分析了edX平臺(tái)中“軟件工程”課程的行為數(shù)據(jù)[3]。這都是通過(guò)對(duì)教育過(guò)程大數(shù)據(jù)進(jìn)行挖掘、分析、融合,建立高度智能化學(xué)習(xí)生態(tài)系統(tǒng)的研究。作為智慧教學(xué)平臺(tái),雨課堂能實(shí)時(shí)生成教學(xué)數(shù)據(jù),但由于各知識(shí)點(diǎn)對(duì)應(yīng)的教學(xué)目的要求不同,各題所體現(xiàn)的認(rèn)知過(guò)程維度也不同,還需進(jìn)一步應(yīng)用機(jī)器學(xué)習(xí)技術(shù)挖掘數(shù)據(jù)資源中的學(xué)習(xí)特征[4],據(jù)此分析出有效的教學(xué)決策。
為體現(xiàn)學(xué)生的學(xué)習(xí)效果,針對(duì)不同知識(shí)點(diǎn)可設(shè)立三大類(lèi)教學(xué)目的:復(fù)現(xiàn)知識(shí)(了解、復(fù)述)、基本思維操作(解釋、說(shuō)明)和能產(chǎn)型思維(解答復(fù)雜問(wèn)題)。教師先以學(xué)生必須掌握知識(shí)體系的形式提出針對(duì)不同知識(shí)點(diǎn)的教學(xué)目的,再根據(jù)教育目標(biāo)2001版分類(lèi)體系,按照認(rèn)知過(guò)程維度習(xí)題分為六種:記憶、理解、應(yīng)用、分析、評(píng)價(jià)和創(chuàng)造題。從下例可看出,這些習(xí)題會(huì)從不同側(cè)面反應(yīng)教學(xué)目的的達(dá)成度。
表1為學(xué)生對(duì)某知識(shí)點(diǎn)習(xí)題的作答數(shù)據(jù)。教學(xué)中教師直接根據(jù)學(xué)生作答情況評(píng)價(jià)教學(xué)效果,但這個(gè)70分的成績(jī)足夠客觀嗎?
只有結(jié)合教學(xué)目的進(jìn)行教學(xué)效果評(píng)判才是合理的。教師采用線性變換方法對(duì)學(xué)生學(xué)習(xí)行為進(jìn)行評(píng)價(jià),公式為,其中為學(xué)生對(duì)此知識(shí)點(diǎn)學(xué)習(xí)水平的評(píng)價(jià)值,向量(記憶,理解,應(yīng)用,分析,評(píng)價(jià),創(chuàng)造)為綜合評(píng)價(jià)因素,為各題型得分占比。知識(shí)點(diǎn)的教學(xué)目的不同,對(duì)應(yīng)中各因素的權(quán)值也不同。若教學(xué)要求為復(fù)現(xiàn)知識(shí),則“記憶”和“理解”的權(quán)值較大;若教學(xué)要求為能產(chǎn)型思維,則“評(píng)價(jià)”和“創(chuàng)造”的權(quán)值較大。三類(lèi)教學(xué)目的對(duì)應(yīng)三種權(quán)值:
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為例對(duì)學(xué)生的學(xué)習(xí)行為進(jìn)行評(píng)價(jià)。若本練習(xí)對(duì)應(yīng)知識(shí)點(diǎn)教學(xué)目的要求為能產(chǎn)型思維,那么X=(0.2,0.2,0.1,0.1,0.2,0.2),線性變換如下:
表1 習(xí)題作答成績(jī)表
可見(jiàn),變換后學(xué)習(xí)水平評(píng)價(jià)為64分,與變換前的70分是有差異的。用這種結(jié)合教學(xué)目的的評(píng)價(jià)結(jié)果選擇適合的教學(xué)方法,才能高效實(shí)現(xiàn)教學(xué)目標(biāo)。教學(xué)中要從學(xué)生學(xué)習(xí)水平出發(fā),根據(jù)學(xué)生對(duì)知識(shí)掌握程度的好壞,確定教學(xué)方法。決策樹(shù)正是可以從給定訓(xùn)練集中學(xué)得一個(gè)模型,用以對(duì)新示例進(jìn)行判斷,并完成樣本分類(lèi),區(qū)分為正例和反例的算法。這一決策過(guò)程的結(jié)論剛好對(duì)應(yīng)判定結(jié)果,即當(dāng)學(xué)習(xí)水平為反例時(shí),就要運(yùn)用對(duì)應(yīng)的教學(xué)方法針對(duì)學(xué)生未掌握知識(shí)進(jìn)行著重講解。
具體實(shí)現(xiàn)過(guò)程如下。依照認(rèn)知過(guò)程維度對(duì)學(xué)生認(rèn)知水平進(jìn)行計(jì)分,并按所得分值劃為三段:高(80~100)、中(60~80)、低(60以下)。再把學(xué)習(xí)水平評(píng)價(jià)分為兩類(lèi):正例“好”(T)和反例“壞”(F)。表2記錄了執(zhí)行教學(xué)方法1的教學(xué)過(guò)程數(shù)據(jù)。教師要從這30組訓(xùn)練例中確定適合使用教學(xué)方法1的學(xué)生。
表2 采用教學(xué)方法1的實(shí)例數(shù)據(jù)
訓(xùn)練模型描述為<D,U,A>,其中D是訓(xùn)練集,U是訓(xùn)練集的屬性集,A是訓(xùn)練集的分類(lèi),定義如下:
(1)D為學(xué)生訓(xùn)練集,選擇一個(gè)特征值A(chǔ)表示學(xué)習(xí)水平。
(2)D中包含屬性集U,共有六個(gè)屬性:U1、U2、U3、U4、U5、U6,依次代表記憶、理解、應(yīng)用、分析、評(píng)價(jià)和創(chuàng)造六種能力。U1~U6均有高、中、低三種取值。
(3)D依照特征A被劃分為兩類(lèi):T與F,分別代表正例和反例,即為A的2個(gè)取值。
訓(xùn)練過(guò)程中,為了避免對(duì)小概率訓(xùn)練實(shí)例的進(jìn)一步分支和處理,決策樹(shù)要進(jìn)行預(yù)剪枝,規(guī)則是:如果訓(xùn)練實(shí)例屬于同一個(gè)類(lèi)(T或F)的概率大于80%,則視這些訓(xùn)練實(shí)例屬于同一個(gè)類(lèi)。決策樹(shù)學(xué)習(xí)算法為:
決策樹(shù)初始狀態(tài)只含有一個(gè)樹(shù)根(X,U),其中X是全體訓(xùn)練實(shí)例集合,U是全體測(cè)試屬性集合,U={記憶能力,理解能力,應(yīng)用能力,分析能力,評(píng)價(jià)能力,創(chuàng)造能力};
若X'中的訓(xùn)練實(shí)例屬于同一個(gè)類(lèi)的概率大于80%,則視這些訓(xùn)練實(shí)例屬于同一類(lèi);
若決策樹(shù)所有子節(jié)點(diǎn)(X',U')具備下列條件中任何一個(gè),則停止執(zhí)行學(xué)習(xí)算法,學(xué)習(xí)結(jié)果為此決策樹(shù):
(1)U'為空;
(2)X'中的訓(xùn)練實(shí)例屬于同一個(gè)類(lèi);
否則,選擇一個(gè)不具備步驟3所述狀態(tài)的子節(jié)點(diǎn)(X',U');
對(duì)于U',選取Gain(X',b)最大的測(cè)試屬性b;
設(shè)X'被測(cè)試屬性b的不同分值分為m個(gè)不相交的子集X'i,1≤i≤m,從(X',U')伸出m個(gè)分支,每個(gè)分支代表b的一個(gè)不同取值,從而形成m個(gè)新的子節(jié)點(diǎn)(X',U'-)。轉(zhuǎn)到步驟2。
以表2數(shù)據(jù)推演算法實(shí)現(xiàn)過(guò)程。依據(jù)信息論原理,表2數(shù)據(jù)表示在訓(xùn)練構(gòu)建模型初始時(shí)刻屬于T類(lèi)和F類(lèi)的實(shí)例個(gè)數(shù)均為15,所以初始時(shí)刻信息熵為:
如果選取U1作為測(cè)試屬性,則條件熵為:
信息增益為:
類(lèi)似的,可以計(jì)算出其他屬性的信息增益:
顯然,屬性U1“記憶”的信息增益最大,即關(guān)于U1的信息對(duì)于分類(lèi)幫助最大,于是它被選為測(cè)試屬性。而U1有三種取值(高、中、低),可使訓(xùn)練例生成三個(gè)子節(jié)點(diǎn),各子節(jié)點(diǎn)具有屬性集U1={U2,U3,U4,U5,U6}。再依次對(duì)這三個(gè)子節(jié)點(diǎn)按照上述過(guò)程執(zhí)行操作。
對(duì)于U1取值為“高”的子節(jié)點(diǎn),因訓(xùn)練例中正例占比為7/8,超過(guò)80%,則所有訓(xùn)練例都屬于正例,停止執(zhí)行算法。
對(duì)于U1取值為“中”的子節(jié)點(diǎn),由于在U'中的信息增益最大的屬性是U6,因此選擇U6作為測(cè)試屬性,下一級(jí)子節(jié)點(diǎn)具有屬性集U'={U2,U3,U4,U5}。繼續(xù)按照上述過(guò)程求解。
對(duì)于U1取值為“低”的子節(jié)點(diǎn),因訓(xùn)練例中反例占比為9/10,超過(guò)80%,則所有訓(xùn)練例均為反例,算法停止執(zhí)行。
應(yīng)用上述算法生成了圖1決策樹(shù)。由這棵決策樹(shù)得到5個(gè)學(xué)習(xí)規(guī)則:
圖1 表2訓(xùn)練生成的決策樹(shù)
規(guī)則1:IF記憶能力=高THEN使用教學(xué)方法1
規(guī)則2:IF(記憶能力=中AND創(chuàng)造能力=中)THEN使用教學(xué)方法1
規(guī)則3:IF(記憶能力=中AND創(chuàng)造能力=高AND應(yīng)用能力=中)THEN使用教學(xué)方法1
規(guī)則4:IF(記憶能力=中AND創(chuàng)造能力=低AND理解能力=高)THEN使用教學(xué)方法1
規(guī)則5:IF記憶能力=低OR(記憶能力=中AND創(chuàng)造能力=高AND應(yīng)用能力=低)OR(記憶能力=中AND創(chuàng)造能力=低AND(理解能力=中OR理解能力=低))THEN不使用教學(xué)方法1
以上是對(duì)教學(xué)方法1進(jìn)行決策樹(shù)學(xué)習(xí)的過(guò)程,運(yùn)用同樣的算法對(duì)所有教學(xué)方法實(shí)施決策樹(shù)學(xué)習(xí),就能得出適合不同學(xué)習(xí)水平的各種教學(xué)方法。
我們教師在軟件工程教學(xué)中,應(yīng)用上述方法挖掘雨課堂學(xué)生學(xué)習(xí)特征行為數(shù)據(jù)作為訓(xùn)練集,建立了有效的教學(xué)決策模型。教師依照模型推薦的教學(xué)方法授課,能從全體學(xué)生教學(xué)效果最優(yōu)角度進(jìn)行剖析講解,確保了學(xué)生對(duì)重點(diǎn)、難點(diǎn)知識(shí)的掌握;同時(shí),利用訓(xùn)練集中的個(gè)性化數(shù)據(jù),為每位學(xué)生發(fā)布不同的實(shí)踐作業(yè),既可加強(qiáng)學(xué)生對(duì)自身薄弱知識(shí)點(diǎn)的練習(xí),又可減少同學(xué)間抄襲作業(yè)的現(xiàn)象。通過(guò)執(zhí)行以上各個(gè)教學(xué)環(huán)節(jié),學(xué)生從能聽(tīng)懂到愿意學(xué),逐步進(jìn)入主動(dòng)思考的學(xué)習(xí)狀態(tài),很好提升了學(xué)生的理論學(xué)習(xí)興趣及軟件工程的實(shí)踐能力。
追蹤兩個(gè)專(zhuān)業(yè)軟件工程課程四輪教學(xué)學(xué)生的期末平均成績(jī),計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)分別為:68.7分、67.9分、73.8分、75.2分,物聯(lián)網(wǎng)工程專(zhuān)業(yè)分別為:67.3分、65.1分、69.7分、72.6分。其中前兩輪是教師以經(jīng)驗(yàn)驅(qū)動(dòng)主觀選擇教學(xué)方法進(jìn)行的教學(xué),后兩輪教學(xué)中應(yīng)用了機(jī)器學(xué)習(xí)建模后智能推薦的教學(xué)方法。可見(jiàn),使用決策樹(shù)算法給出的教學(xué)決策取得了更好的教學(xué)效果,使學(xué)生期末成績(jī)有較大提高。
本文介紹了運(yùn)用機(jī)器學(xué)習(xí)決策樹(shù)方法訓(xùn)練雨課堂教學(xué)數(shù)據(jù),并建立模型獲取適合不同學(xué)習(xí)水平教學(xué)方法的具體過(guò)程。實(shí)踐證明該方法不僅能輔助教師實(shí)現(xiàn)教學(xué)策略的靈活運(yùn)用,也能很好幫助學(xué)生提升工程實(shí)踐能力。其他教師可根據(jù)所教課程特點(diǎn),按照認(rèn)知過(guò)程維度設(shè)置習(xí)題分類(lèi)屬性及與教學(xué)目的對(duì)應(yīng)的權(quán)值,亦可構(gòu)建相應(yīng)課程的教學(xué)決策模型,具有廣泛的應(yīng)用價(jià)值。