馬華,彭思雨,秦宏毅
(湖南師范大學(xué)信息科學(xué)與工程學(xué)院,長沙 410081)
近年來,在線學(xué)習(xí)開始大規(guī)模普及,各類在線學(xué)習(xí)平臺發(fā)展迅速,在線學(xué)習(xí)一方面為教師提供了有力的線上實時教學(xué)支持,另一方面為學(xué)生開展個性化學(xué)習(xí)提供了豐富的學(xué)習(xí)資源。在個性化教學(xué)過程中,準確感知學(xué)生實時的知識狀態(tài)(即對知識點的掌握情況)尤為重要,而習(xí)題測試是主要的實現(xiàn)途徑[1]。傳統(tǒng)的習(xí)題測試系統(tǒng)僅統(tǒng)計學(xué)生在每道題上的得分總值,未分析學(xué)生對于習(xí)題所關(guān)聯(lián)的知識點的不同掌握程度。而現(xiàn)實中,總分值相同的學(xué)生知識狀態(tài)可能差異明顯。如果完全依靠教師的經(jīng)驗對學(xué)生的認知狀況進行人工判斷,不僅耗時耗力,其結(jié)果的準確度也可能難以得到保障。尤其面對當前大規(guī)模在線學(xué)習(xí)背景下龐大的學(xué)生規(guī)模,更凸顯出實現(xiàn)自動化的學(xué)生認知狀態(tài)診斷的必要性。
認知診斷理論是認知科學(xué)與心理測量學(xué)相結(jié)合并應(yīng)用于教育領(lǐng)域的結(jié)果[2]。認知診斷理論的蓬勃發(fā)展,產(chǎn)生了一系列認知診斷模型。傳統(tǒng)的認知診斷模型,例如DINA(deterministic inputs,noisy and-gate)模型[3],僅處理客觀題題型。為擴展實現(xiàn)認知診斷模型對于主觀題題型的支持,Liu等人提出了模糊認知診斷框架(fuzzy cognitive diagnosis framework,F(xiàn)uzzyCDF)[4]。
本文基于模糊認知診斷框架,設(shè)計并開發(fā)了一個基于認知診斷建模的個性化在線習(xí)題測試系統(tǒng),該系統(tǒng)實現(xiàn)了試題管理、課程管理、組卷管理、測驗管理、學(xué)情報告等功能模塊,系統(tǒng)基于學(xué)生對測試試題的作答情況,對學(xué)生進行個性化的認知診斷分析,獲得學(xué)生對不同知識點的掌握情況,生成學(xué)情分析報表,從而為教師實施因材施教和學(xué)生開展有針對性的自主學(xué)習(xí)提供重要支持。
認知診斷的主要任務(wù)是根據(jù)學(xué)生參與考試得到的分數(shù)反饋,挖掘出不同學(xué)生個體的認知結(jié)構(gòu)。最具有代表性的認知診斷模型是項目反應(yīng)理論(item response theory,IRT)[5]和DINA模 型[3]。其中,IRT將學(xué)生的認知狀態(tài)描述成一維的能力值,并結(jié)合難度、區(qū)分度等試題參數(shù)對學(xué)生進行建模。IRT存在單維性假定難以滿足、計算復(fù)雜、對測驗條件要求較嚴格等不足。不同于IRT,DI?NA模型不僅將學(xué)生在試題上的作答情況(X矩陣)作為輸入,同時結(jié)合試題知識點關(guān)聯(lián)矩陣(Q矩陣),將學(xué)生建模成一個在多維知識點上的掌握向量。X矩陣和Q矩陣定義為:①得分矩陣X。每行表示一名學(xué)生,每列表示某個學(xué)生在某個測試題上的得分情況,用0表示該學(xué)生在當前題目上未得分,1表示得了滿分。②知識點矩陣Q。它表示每個測試題與各個知識點之間的對應(yīng)關(guān)系。每行表示一道測試題,每列表示某個測試題與各個知識點的相關(guān)性。用1表示該題與某個知識點相關(guān),0表示不相關(guān)。
針對DINA模型僅支持客觀題的局限性,Liu等人設(shè)計了FuzzyCDF。它利用IRT的雙參數(shù)反應(yīng)模型[6]表達式計算學(xué)生對于知識點的認知狀態(tài),將學(xué)生對于知識點的認知能力表示為模糊集合的隸屬度,再采用模糊交和模糊并來建??陀^題和主觀題的認知作答模式。學(xué)生i對知識點k的掌握程度由知識點相關(guān)的模糊集的隸屬函數(shù)來確定,即:
上式中,αik表示學(xué)生i對知識點k的掌握程度,即學(xué)生i對知識點k的隸屬度i(k);a i k表示知識點的區(qū)分度;b ik表示知識點k對學(xué)生i的難度;θi表示學(xué)生i的潛在特質(zhì)水平;D為常數(shù)等于-1.7。
對于客觀題,學(xué)生只有掌握試題考察的所有知識點才能答對該試題。于主觀題,學(xué)生掌握的知識點越多,其對主觀題的掌握程度也越高,進而在主觀題上的得分也越高。客觀題和主觀題的計算公式如下。
其中,ηij表示學(xué)生i在試題j上的掌握程度;αi k表示學(xué)生i在知識點k上的掌握程度;q jk表示試題j是否考察了知識點k,取值為1代表考察了,取值為0代表未考察;∩和∪分別代表模糊理論中的模糊交和模糊并。
已知學(xué)生i的知識點掌握向量{αi1,αi2,αi=…,αik}時,可由式(4)計算學(xué)生i對試題j的掌握程度:
其中,q jk表示試題j是否考察了知識點k,取值為1代表考察了,取值為0代表未考察;ηij=0表示學(xué)生i無法正確回答試題j,ηij=1則認為學(xué)生i可以正確回答試題j。
本系統(tǒng)支持管理員、教師、學(xué)生三類用戶,管理員負責(zé)權(quán)限管理,教師負責(zé)試題、課程、組卷和學(xué)情報告管理,學(xué)生可進行試題測驗、查看個人學(xué)情報告??傮w功能包括用戶管理、試題管理、課程管理、組卷管理、學(xué)情報告、試題測驗、系統(tǒng)設(shè)置、個人中心等8個模塊。以下介紹核心的五個模塊。
(1)試題管理模塊。管理試題庫,支持選擇題和判斷題,教師可增、刪、改、查各個試題。
(2)知識點管理模塊。管理課程涉及的的知識點模型。教師可增、刪、改、查知識點,也可將測試題與知識點進行關(guān)聯(lián),從而生成Q矩陣。
(3)組卷管理模塊。教師可根據(jù)教學(xué)需要選取測試題組成一套試卷并發(fā)布,全體學(xué)生均需作答。教師可查看組卷歷史、試卷涉及的知識點數(shù)量以及覆蓋面。
(4)學(xué)情報告模塊。展示學(xué)生當前的學(xué)習(xí)情況,分為學(xué)生總體報告和學(xué)生個人報告兩個部分。學(xué)情報告由認知診斷模型根據(jù)學(xué)生歷次測驗答題情況生成,通過表格以及折線圖展示。總體報告僅供教師查看,學(xué)生只可查看個人的學(xué)情報告。
(5)試題測驗?zāi)K。分教師組卷測驗和自我測試兩部分。學(xué)生必須完成教師手工組卷發(fā)布的測驗,自我測試是由系統(tǒng)根據(jù)學(xué)生的學(xué)習(xí)狀態(tài)自動組卷編制而成,用于幫助學(xué)生自主學(xué)習(xí)。學(xué)生可查看歷次測驗的答題時間、總體得分,以及每道測試題的作答情況和正確答案。每次測驗試題提交后,系統(tǒng)即通過Flask框架請求認知診斷模型根據(jù)當前答題情況進行認知診斷,并更新當前學(xué)生的學(xué)情報告。
系統(tǒng)采用Java Swing開發(fā),使用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),以Python語言編碼的FuzzyCDF算法通過Flask框架發(fā)布成服務(wù)后,通過發(fā)送HTTP請求對FuzzyCDF進行調(diào)用,認知診斷完成后將認知結(jié)果更新到數(shù)據(jù)庫,并使用JFreechart在Java Swing界面對認知診斷結(jié)果以折線圖形式展示。
以下給出了本系統(tǒng)中的關(guān)鍵庫表的結(jié)構(gòu)設(shè)計,選擇題相關(guān)的數(shù)據(jù)庫表如表1和表2所示,其它題型的數(shù)據(jù)庫表不再贅述。與知識點、習(xí)題、試題、試卷等相關(guān)的關(guān)鍵數(shù)據(jù)庫如表3—表8所示。
表1 選擇題表choice
表2 選擇題選項表choice_items
表3 試題表exercise
表4 試卷表test
表5 試卷-試題映射表exam_exercise
表6 測試得分表grade
表7 知識點表knowledge
表8 習(xí)題-知識點關(guān)聯(lián)表Q
以《Java程序設(shè)計》課程為例,我們完成了一個實際系統(tǒng)的開發(fā)。以下重點介紹教師端模塊的實現(xiàn)情況。圖1為試題管理模塊進行選擇題管理的實現(xiàn)界面。
圖1 選擇題管理界面
圖2 為課程管理模塊中進行試題和知識點映射的操作界面。
圖2 知識點建模界面
圖3 為學(xué)情報告模塊中教師端的查看界面。
圖3 教師端學(xué)情報告界面
獲取學(xué)生實時的認知水平是實現(xiàn)精準的個性化教學(xué)的關(guān)鍵前提。如何更準確地對學(xué)生認知狀態(tài)進行分析是大家關(guān)注的焦點。本文通過引入認知診斷理論,設(shè)計并實現(xiàn)了一個基于模糊認知診斷框架的《Java程序設(shè)計》習(xí)題測試系統(tǒng)。該系統(tǒng)以學(xué)生在系統(tǒng)內(nèi)的測試數(shù)據(jù)為輸入,經(jīng)過認知診斷建模與分析,獲取學(xué)生當前的認知狀態(tài),從而為教師對學(xué)生進行針對性教學(xué)提供決策基礎(chǔ),也有利于學(xué)生根據(jù)自身認知水平對知識進行鞏固與加強。未來,我們將重構(gòu)該習(xí)題測試系統(tǒng)成客戶端-服務(wù)端模式,并完善對多種主觀和客觀題型的靈活支持機制。