摘? ?要:文章以加權(quán)無向圖的連通性作為量化評價指標(biāo),在鞏固復(fù)習(xí)階段實現(xiàn)了基于知識點網(wǎng)絡(luò)的學(xué)習(xí)內(nèi)容最優(yōu)推薦,能對全部知識點做整體掌控性練習(xí)。知識點網(wǎng)絡(luò)具有固有權(quán)值、已練習(xí)權(quán)值和待練習(xí)權(quán)值,通過遍歷待練習(xí)知識點能得到待練習(xí)權(quán)值及知識點網(wǎng)絡(luò)的最優(yōu)連通性指標(biāo)。文章對49個知識點的小型Linux腳本題庫給出了求取連通性指標(biāo)的前后端兩種實現(xiàn)方法,并在應(yīng)用場景下實現(xiàn)了針對學(xué)生個體的一步和多步最優(yōu)推薦,以及針對班級和學(xué)習(xí)小組的最優(yōu)推薦。實踐結(jié)果表明:最優(yōu)推薦的有效性與教師的直覺相吻合,學(xué)生反映知識結(jié)構(gòu)性明顯增強(qiáng),學(xué)習(xí)的主動性也增強(qiáng),并獲得較好的知識遷移能力。該案例為教育信息化軟件應(yīng)用于素質(zhì)教育的內(nèi)涵式提升給出了有益的借鑒。
關(guān)鍵詞:知識點網(wǎng)絡(luò);圖的連通性;最優(yōu)推薦策略;矩陣特征值
中圖分類號:G434 文獻(xiàn)標(biāo)志碼:B 文章編號:1673-8454(2021)12-0085-07
一、引言
以《國家職業(yè)教育改革實施方案》等文件作為指引,教師、教材和教法的研究已經(jīng)成為教育界各級各類教師普遍關(guān)注的熱點[1],尤其在當(dāng)前線上教育蓬勃發(fā)展的大背景下,改進(jìn)線上個性化學(xué)習(xí)效果更是教法研究的重中之重。個性化學(xué)習(xí)能破解優(yōu)質(zhì)教師資源不足的難題,又能充分利用現(xiàn)代信息技術(shù),特別是大數(shù)據(jù)和人工智能等技術(shù),來加速推動教育信息化,提高教育的效率和質(zhì)量,實質(zhì)上相當(dāng)于用技術(shù)手段有效擴(kuò)大優(yōu)質(zhì)教師資源的影響力。
理想的個性化學(xué)習(xí)一般需要兩個前提:一是富于經(jīng)驗的教師設(shè)計好電子題庫,庫中諸多基礎(chǔ)知識點和應(yīng)用類型知識點聯(lián)系緊密,形成關(guān)系復(fù)雜的網(wǎng)狀連接即知識點網(wǎng)絡(luò);二是有適合學(xué)生當(dāng)前學(xué)習(xí)階段的知識點推薦策略。知識點網(wǎng)絡(luò)形式的電子題庫目前已經(jīng)有了一些研究。例如,根據(jù)所設(shè)置的題型題量、題目覆蓋次數(shù)和題目間的包含容斥關(guān)系,已有研究者構(gòu)建了基于SystemVerilog語言的全自動約束隨機(jī)抽題組卷系統(tǒng)[2]。而推薦策略目前則只有隨機(jī)推薦和電商平臺中的相似推薦兩類可供借鑒,前者目標(biāo)不明確,而后者需要做大量結(jié)構(gòu)化數(shù)據(jù)的特征相關(guān)度分析以挖掘用戶的歷史喜好信息,并不完全適合學(xué)習(xí)過程的各個階段。
學(xué)習(xí)主要分為三個階段:知識點識記、知識點應(yīng)用和知識點創(chuàng)新。學(xué)習(xí)的前期主要涉及前兩個階段。知識點只有熟練才能應(yīng)用,因此需要反復(fù)“刷題”,以從不同側(cè)面理解知識點。一般基于教材、習(xí)題冊或電子題庫開展練習(xí)。此外,練習(xí)的技巧與學(xué)習(xí)的階段又密切相關(guān)。例如,初次學(xué)習(xí)階段與鞏固復(fù)習(xí)階段對知識點的練習(xí)需求完全不同。初次學(xué)習(xí)階段一般需要臨近式學(xué)習(xí),重在練習(xí)與當(dāng)前知識點關(guān)系密切的知識點,容易產(chǎn)生“舉一反三”的效果從而增強(qiáng)學(xué)習(xí)信心,這已是教育界的共識。而鞏固復(fù)習(xí)階段的練習(xí)策略則需要在整體框架下統(tǒng)籌設(shè)計以產(chǎn)生最好的學(xué)習(xí)效果,要在有限的學(xué)習(xí)時間內(nèi),對所有知識點做整體掌控性的練習(xí),獲得知識點應(yīng)用能力的最大提升。
綜上所述,以優(yōu)秀教師提供的知識點網(wǎng)絡(luò)為基礎(chǔ),需要深入研究鞏固復(fù)習(xí)階段知識點的最優(yōu)練習(xí)策略。既不能簡單地隨機(jī)推薦知識點開展“題?!笔骄毩?xí),也不能漫無目標(biāo)地利用人工智能等先進(jìn)技術(shù)推薦知識點。目前尚缺少一個能夠達(dá)成共識的策略,原因在于知識點網(wǎng)絡(luò)的整體掌控程度缺乏量化的評價指標(biāo)。
本文針對上述研究背景,提出了一種基于代數(shù)圖論中圖連通性指標(biāo)的最優(yōu)知識點推薦策略,在鞏固復(fù)習(xí)階段基于知識點網(wǎng)絡(luò)實現(xiàn)個性化學(xué)習(xí)。學(xué)習(xí)過程中,記錄每個學(xué)生的練習(xí)程度,多個學(xué)生的練習(xí)程度還可以疊加。最優(yōu)知識點推薦的對象可以是學(xué)生個體,也可以是學(xué)習(xí)小組,還可以是班級整體,甚至可以是年級或更大規(guī)模的組。因此,這種推薦策略不但可以指導(dǎo)學(xué)生自主練習(xí),還可以為教師推薦作業(yè)和習(xí)題課的內(nèi)容,為翻轉(zhuǎn)課堂和線上線下混合教學(xué)的開展提供了有效的技術(shù)支撐。
二、知識點網(wǎng)絡(luò)的連通性指標(biāo)
如上所述,需要研究鞏固復(fù)習(xí)階段基于知識點網(wǎng)絡(luò)的最優(yōu)練習(xí)策略。圖1所示的知識點網(wǎng)絡(luò)由知識點及之間的連線組成,每條連線賦予一個非負(fù)的固有權(quán)值,表示所連接兩個知識點之間的關(guān)系緊密程度,權(quán)值越大則關(guān)系越密切,連線也越粗。每當(dāng)練習(xí)了一個知識點,則把與該知識點相連的所有知識點之間的連線權(quán)值加1,如圖1中“生成20行hi”這個知識點練習(xí)了一次,就把圖中高亮的知識點與它之間連線的權(quán)值加1。因此,任何時刻知識點網(wǎng)絡(luò)已經(jīng)確定的權(quán)值由兩部分作和:一是反映知識點之間內(nèi)在關(guān)聯(lián)的固有權(quán)值;二是反映學(xué)習(xí)練習(xí)過程的已練習(xí)權(quán)值。如果是多人學(xué)習(xí)小組,則知識點網(wǎng)絡(luò)的權(quán)值就取作固有權(quán)值與所有學(xué)生已練習(xí)權(quán)值之和。
任何時刻除了確定的權(quán)值之外,知識點網(wǎng)絡(luò)的權(quán)值還有未確定的因素即待練習(xí)權(quán)值,這就是需要最優(yōu)推薦的待練習(xí)知識點對應(yīng)權(quán)值。假設(shè)優(yōu)秀教師提供的知識點網(wǎng)絡(luò)是全連通的,即在固有權(quán)值的狀態(tài)下就已經(jīng)是全連通的,那么加入已練習(xí)權(quán)值和待練習(xí)權(quán)值后連通程度更強(qiáng),連通程度可以由代數(shù)圖論中圖的Laplacian矩陣來表征,該矩陣是半正定矩陣且最小特征值為0[3]。在無線傳感網(wǎng)和多智能體協(xié)同控制的研究領(lǐng)域中,通常選取上述矩陣的第二小特征值作為連通性指標(biāo)[4],這對于知識點網(wǎng)絡(luò)同樣適用。孤立的知識點越多則知識點網(wǎng)絡(luò)越呈現(xiàn)出碎片化而不易學(xué)習(xí)(學(xué)習(xí)更需要強(qiáng)記)的特征,連通性越強(qiáng)則知識點之間不同側(cè)面串聯(lián)的應(yīng)用場景越多。因此,給定知識點網(wǎng)絡(luò)的固有權(quán)值和已練習(xí)權(quán)值,問題歸結(jié)為再練習(xí)哪個知識點獲得的待練習(xí)權(quán)值能讓連通性指標(biāo)最大。
三、實現(xiàn)方案與關(guān)鍵代碼
1.系統(tǒng)結(jié)構(gòu)
系統(tǒng)由客戶端、服務(wù)器和計算引擎三部分組成,如圖2所示。其中,計算引擎的實現(xiàn)方式具有一定的靈活性,可以在服務(wù)器實現(xiàn),也可以在客戶端的瀏覽器上實現(xiàn),還可以分散在服務(wù)器和客戶端實現(xiàn),因服務(wù)器性能和計算負(fù)載而定。服務(wù)器上的JSON文件是客戶端和服務(wù)器之間數(shù)據(jù)交換的標(biāo)準(zhǔn)格式,記錄了知識點網(wǎng)絡(luò)的全部信息,由客戶端讀取并顯示給用戶。JSON文件由電子題庫生成,不同電子題庫格式對應(yīng)不同的生成規(guī)則。客戶端還要提交已練習(xí)的知識點號給服務(wù)器,生成的練習(xí)過程數(shù)據(jù)用在計算引擎中,而計算引擎的工作過程相對復(fù)雜,共有三步:①由JSON文件生成節(jié)點度矩陣;②由三種權(quán)值和JSON文件計算出鄰接矩陣;③再遍歷待練習(xí)的知識點號,并通過多次計算Laplacian矩陣的第二小特征值得到最優(yōu)的連通性指標(biāo)和最優(yōu)待練習(xí)的知識點號。
由圖2可知,本系統(tǒng)結(jié)構(gòu)的優(yōu)點在于對學(xué)生個體和班級整體作最優(yōu)推薦的流程完全相同,差別只在于收集一個人或所有人的練習(xí)過程文件,此類操作只引入極少的計算負(fù)荷。
2.電子題庫設(shè)計
知識點網(wǎng)絡(luò)包括知識點本身和知識點之間的連線,每條連線具有不同的固有權(quán)值。知識點網(wǎng)絡(luò)記錄在JSON文件中,而JSON文件則來自于電子題庫。電子題庫的格式設(shè)計重在簡潔高效,既要便于生成JSON文件,也要考慮網(wǎng)頁前端顯示的易用性,又要盡量減少教師長期維護(hù)的工作量。以如下格式Linux腳本電子題庫為例:
該題庫共有49個知識點,所有知識點按難度組織成level1到level5的級別,前三個級別屬于基礎(chǔ)知識點,后兩個級別是應(yīng)用類型的知識點。每個知識點包括三個字段:功能描述、詳細(xì)信息以及實現(xiàn)該功能的Linux腳本具體命令,字段之間用跳格隔開。如此設(shè)計不但方便教師整理知識點,還方便網(wǎng)頁以“刷題”方式顯示前兩個字段,又方便用靜態(tài)隱藏且鼠標(biāo)懸停的效果顯示第三個字段(答案)。另外,教師只需關(guān)注知識點本身和難度分類,知識點之間連線的固有權(quán)值由腳本自動生成,知識點號也由行號自動生成,最大限度地降低了人工維護(hù)成本。
3.JSON格式與知識點網(wǎng)絡(luò)
知識點網(wǎng)絡(luò)源自電子題庫,但其載體是JSON文件,其中最重要的信息是自動生成知識點之間連線的固有權(quán)值,在計算引擎中用以生成節(jié)點度矩陣和鄰接矩陣。眾所周知,Linux腳本命令行以管道符號“|”連接多級簡單腳本命令,而簡單腳本命令如echo、seq、sed、awk等一般只用到20個左右。對于這種情況,連線間固有權(quán)值(見下文JSON格式中的“weight”參數(shù))就取作兩個知識點的Linux腳本具體命令中同時出現(xiàn)的簡單腳本命令數(shù)目。為方便網(wǎng)頁和服務(wù)器進(jìn)行數(shù)據(jù)交換,將上述電子題庫轉(zhuǎn)換成JSON格式。其中,知識點的名字取作該知識點所在電子題庫文件中的行號,而“numOfPipes”參數(shù)則表示Linux腳本具體命令中的字符數(shù),字符數(shù)越多則知識點在圖1中就顯示為越大的橢圓,代表知識點的難易程度。此外,JSON格式中沒有知識點對應(yīng)的答案,答案是網(wǎng)頁中某知識點的鼠標(biāo)點擊事件觸發(fā)時,用其名字在電子題庫中即時查找出來的。
以上將電子題庫轉(zhuǎn)換成JSON格式的實現(xiàn)腳本過于復(fù)雜,此處只描述其核心思想。
第1步:為電子題庫文件加行號,因此得到每個知識點前面的行號,并加上“pp”用作“name”參數(shù)。
第2步:用awk中的length()函數(shù)統(tǒng)計每個知識點的Linux腳本具體命令中的字符數(shù),并把每個知識點整理成name、value和numOfChars格式。
第3步:將每個知識點中管道符號前后的基本命令提取出來,與知識點的“name”參數(shù)一起生成link文件,每行形如51 seq。
第4步:統(tǒng)計出任何兩個知識點之間相同基本命令的總數(shù)目,所用Linux腳本如下:
其中整體分三步:①link文件與自身作信息擴(kuò)充即所有行全交叉,結(jié)果每行由2個字段變成4個字段,即兩個知識點的“name”參數(shù)和具體命令中的某個基本腳本命令。②根據(jù)源知識點和目標(biāo)知識點的對稱可互換性,只需用awk過濾出源知識點號更小的情況,并只顯示出兩個知識點的“name”參數(shù),表示兩者之間出現(xiàn)了一次相同的簡單腳本命令。③排序并用uniq命令統(tǒng)計出所有知識點兩兩之間相同簡單腳本命令的總數(shù)。
第5步:按JSON格式要求生成weight、source和target信息,并補(bǔ)齊所有匹配的區(qū)域定界符號。
4.生成Laplacian矩陣并求特征值
知識點網(wǎng)絡(luò)的Laplacian矩陣定義為無向圖的節(jié)點度矩陣與鄰接矩陣之差,其中鄰接矩陣則由固有權(quán)值、已練習(xí)權(quán)值和待練習(xí)權(quán)值疊加生成。因為知識點的“name”參數(shù)取自電子題庫文件的行號,所以,諸如“l(fā)evel1”這樣的行會讓知識點號有跳號,生成Laplacian矩陣的第一步就需要把link文件中的知識點號轉(zhuǎn)換為無跳號的知識點號,并且得到固有權(quán)值文件zlap.2。關(guān)鍵腳本如下:
所生成的固有權(quán)值文件zlap.2格式為(第一個字段是固有權(quán)值,后兩個字段為知識點號):
下一步合并反映學(xué)習(xí)過程的已練習(xí)權(quán)值和待練習(xí)權(quán)值。實現(xiàn)策略是待練習(xí)的知識點號寫入zlap.input.1文件的同時,再合并上每個學(xué)生已經(jīng)練習(xí)過的知識點文件zlap.learned,然后將這些知識點相關(guān)所有連線的權(quán)值依次加1,關(guān)鍵腳本如下:
其中<(xxx)是Linux腳本中不常用的嵌入輸入數(shù)據(jù)管道,功能是將命令xxx的執(zhí)行結(jié)果作為cat命令除zlap.input.1之外的那一部分輸入數(shù)據(jù)流。
至此,知識點網(wǎng)絡(luò)的固有權(quán)值、已練習(xí)知識點對應(yīng)的權(quán)值和待練習(xí)知識點對應(yīng)的權(quán)值已合并到總權(quán)值文件zlap.2.all中,最后即由該文件生成節(jié)點度矩陣和鄰接矩陣進(jìn)而得出Laplacian矩陣及其特征值。關(guān)鍵腳本如下:
其中,首先生成節(jié)點度矩陣,算法見第1行。遍歷每個節(jié)點并從總權(quán)值文件中取出含有該節(jié)點號的行,這些行的第1列之和就是此節(jié)點的度,所有節(jié)點的度組成的對角矩陣即為節(jié)點度矩陣。其次由總權(quán)值文件生成鄰接矩陣,即對總權(quán)值文件進(jìn)行擴(kuò)充,把沒有連接關(guān)系的節(jié)點對的位置寫上數(shù)值0,見第3~6行,其中第3行再次應(yīng)用信息擴(kuò)充生成所有知識點號的全交叉。最后求取特征值用到的命令是octave,其要求的矩陣格式轉(zhuǎn)換與矩陣運算代碼見第2、7、8行。
在只有固有權(quán)值的情況下,求取特征值的結(jié)果如下:
其中反映出知識點網(wǎng)絡(luò)的連通性指標(biāo)是1.7428,計算耗時不足1秒(配置為Intel 酷睿i5-3230M、內(nèi)存4GB、Ubuntu x64、octave版本4.0.0)。當(dāng)存在已練習(xí)權(quán)值和待練習(xí)權(quán)值時,連通性指標(biāo)必將增加,關(guān)鍵是要找到讓增加量最大的情況:自變量是待練習(xí)的知識點號,因變量是知識點網(wǎng)絡(luò)的連通性指標(biāo)。
四、應(yīng)用場景與性能測試
本文列舉典型應(yīng)用場景的功能需求及其實現(xiàn)方法,并對所得結(jié)果做了相應(yīng)的對比分析。其中,針對學(xué)生個體的一步最優(yōu)推薦是學(xué)生個性化學(xué)習(xí)時最常用的場景,針對班級整體的最優(yōu)推薦則是為教師推薦作業(yè)和習(xí)題課內(nèi)容的場景。
1.針對學(xué)生個體的一步最優(yōu)推薦
學(xué)生基于知識點網(wǎng)絡(luò)的學(xué)習(xí)過程就是反復(fù)練習(xí)所關(guān)注的知識點,每當(dāng)練習(xí)完某個知識點,該知識點號被存入服務(wù)器上每個學(xué)生已經(jīng)練習(xí)過的知識點文件zlap.learned中。在求取知識點網(wǎng)絡(luò)的連通性指標(biāo)時,與文件zlap.learned中知識點相關(guān)的知識點之間連線的權(quán)值就會加1。根據(jù)代數(shù)圖論中圖的疊加理論可知,鄰接矩陣中的權(quán)值變大則Laplacian矩陣相應(yīng)的特征值均變大[3],特別地,Laplacian的第二小特征值即連通性指標(biāo)必將增加,反映出知識點網(wǎng)絡(luò)更強(qiáng)的連通性,符合常識。由此,只要遍歷所有待練習(xí)的知識點、相應(yīng)地改變鄰接矩陣的權(quán)值并多次求取Laplacian矩陣的特征值就能斷定應(yīng)學(xué)習(xí)的知識點。用到的腳本如下:
其中的zlaplacian.cmd是求取一次連通性指標(biāo)的腳本,其內(nèi)容前已述及。
在只有固有權(quán)值而沒有已練習(xí)知識點的情況下,求取的最優(yōu)推薦知識點及其連通性指標(biāo)如表1所示。表1中的結(jié)果說明,學(xué)習(xí)者與固有權(quán)值情況下1.7428的連通性指標(biāo)相對照,按最優(yōu)推薦的知識點學(xué)習(xí),則連通性指標(biāo)有約50%的提升,而第6個最優(yōu)推薦知識點的連通性指標(biāo)則改進(jìn)甚微。由此可見,此49個知識點的電子題庫中只有5個知識點能讓連通性指標(biāo)有較為顯著的改進(jìn),因此最優(yōu)知識點推薦策略相比隨機(jī)推薦有相當(dāng)大的優(yōu)勢。
值得一提的是,針對學(xué)生個體的一步最優(yōu)推薦知識點是“統(tǒng)計詞頻”,這與筆者基于此電子題庫的教學(xué)實踐相吻合。該知識點一般都在前幾次課引入,而且大多數(shù)學(xué)生都在學(xué)習(xí)完此知識點之后感覺對Linux腳本的理解程度有了一定的質(zhì)變。此外,前5個最優(yōu)推薦的知識點都是關(guān)于echo命令的,而且其中3個知識點還十分基礎(chǔ),這符合Linux腳本中“一門深入”的練習(xí)策略。實際上,echo確實是表面上很簡單但實際上很難的命令,它串起了Linux腳本中幾乎所有的功能點,通過反復(fù)練習(xí)和試錯可以發(fā)現(xiàn)它的諸多疑難功能點,從而激發(fā)學(xué)習(xí)的興趣。另外,還可以不斷強(qiáng)化這些功能點:命令和參數(shù)的不同、不使用輸入數(shù)據(jù)流、回車符是否存在的驗證方法、命令管道中的信息放入數(shù)據(jù)管道中、回顯二進(jìn)制數(shù)據(jù)以及生成一行數(shù)據(jù)和多行數(shù)據(jù)。
2.一步最優(yōu)推薦代碼的性能測試
以上實現(xiàn)的一步最優(yōu)推薦計算引擎位于服務(wù)器上,為降低服務(wù)器并發(fā)處理的負(fù)荷,計算引擎還可以用JavaScript實現(xiàn)在前端瀏覽器上?,F(xiàn)代瀏覽器運行高性能矩陣運算庫Math.js時可以用GPU加速,對于一般配置的計算機(jī)在性能上可能不輸于多人共用的服務(wù)器[5]。利用Math.js庫在瀏覽器端作矩陣運算,實測性能大約7秒遍歷所有49個知識點,即完成一步最優(yōu)推薦(配置:Intel 酷睿i5-3230M、內(nèi)存4GB、64位Chrome瀏覽器),能夠滿足學(xué)生個性化學(xué)習(xí)推薦的實時性要求。關(guān)鍵JavaScript代碼如下:
以上代碼中的輸入文件links是Ajax異步訪問固有權(quán)值文件zlap.2的結(jié)果,節(jié)點度矩陣與鄰接矩陣的算法與之前Linux腳本的實現(xiàn)完全相同,最終求取矩陣特征值時調(diào)用的不再是Linux服務(wù)器上的octave命令,而是Math.js庫提供的函數(shù)。代碼的難點在于“(a-0)”和“(b-0)”使用了JavaScript的弱類型特性將字符串轉(zhuǎn)為數(shù)值,另外,定制的函數(shù)arrTrans將一維數(shù)組轉(zhuǎn)換成二維數(shù)組,類似Linux腳本中的xargs -n功能。
通過在教學(xué)中著重對比引入同一功能的Linux腳本實現(xiàn)和JavaScript語言實現(xiàn),大多數(shù)學(xué)生從常見功能上獲取了從Linux腳本語言向JavaScript語言的自主學(xué)習(xí)遷移能力:map類似xargs–i、filter類似grep、push相當(dāng)于sed–i、concat相當(dāng)于cat、reduce相當(dāng)于tr? '\n' ' '? |?; bc。學(xué)生在對比Linux腳本語言和JavaScript語言的過程中,以很小的學(xué)習(xí)成本從頂層上掌握了JavaScript語言,創(chuàng)造力得到了極大鍛煉,對編程語言類課程實現(xiàn)了一定程度的融會貫通。
3.針對學(xué)生個體的多步最優(yōu)推薦
以學(xué)生個體的一步最優(yōu)推薦為基礎(chǔ),實現(xiàn)多步最優(yōu)推薦只需要將待練習(xí)的知識點號寫入zlap.input.1文件,不同僅在于前者只寫一個知識點號而后者寫多個知識點號。例如,基于49個知識點號的信息擴(kuò)充,即得到2401種兩步學(xué)習(xí)的可能性,要在這里找學(xué)生個體的兩步最優(yōu)推薦,關(guān)鍵代碼如下:
其中,第1行代碼再次用到知識點號的信息擴(kuò)充策略生成所有學(xué)習(xí)方案;第2行把每個兩步學(xué)習(xí)可能方案的知識點號寫入zlap.input.1文件,然后顯示此學(xué)習(xí)方案并求取連通性指標(biāo)。
代碼的運行結(jié)果如表2所示,可見兩步最優(yōu)推薦的知識點就是前幾個一步最優(yōu)推薦知識點的組合。因此,針對此題庫兩步最優(yōu)推薦完全可以拆分成兩次一步最優(yōu)推薦。此外,遍歷2401種兩步學(xué)習(xí)方案耗時也超過5分鐘,目前尚不適合作實時推薦。
4.針對班級或?qū)W習(xí)小組的最優(yōu)推薦
針對班級或?qū)W習(xí)小組作最優(yōu)推薦僅是針對學(xué)生個體最優(yōu)推薦的簡單擴(kuò)展。學(xué)生個體練習(xí)過的知識點存放在其單獨的zlap.learned文件中,每行有一個知識點,只要求取這些知識點對應(yīng)的已練習(xí)權(quán)值并全合并到總的權(quán)值文件zlap.2.all即可,其余的工作完全等同于針對學(xué)生個體推薦的情況,實現(xiàn)過程不存在任何技術(shù)難度,性能上也沒有引入任何瓶頸,不再贅述。
五、教學(xué)實踐分析
筆者在2019年春季學(xué)期、2019年秋季學(xué)期和2020年春季學(xué)期試用了Linux腳本的知識點網(wǎng)絡(luò)電子題庫。人數(shù)和班級數(shù)依次是3個班級共70人、6個班級共244人和4個班級共173人,大約按1∶1的人數(shù)比組織對比教學(xué)。結(jié)合教師的統(tǒng)一授課,學(xué)生在課堂上用一半時間鞏固復(fù)習(xí),按隨機(jī)推薦知識點練習(xí)或基于一步最優(yōu)推薦的最優(yōu)知識點開展練習(xí)。實際測試結(jié)果表明,按最優(yōu)推薦知識點學(xué)習(xí)的學(xué)生有很強(qiáng)的主動性,課堂學(xué)習(xí)效果如圖3所示,學(xué)習(xí)的目標(biāo)也更明確。師生問答法測試結(jié)果表明,學(xué)生掌握整體知識結(jié)構(gòu)的速度明顯更快,學(xué)生反映“很快能看懂并能略微修改多級組合的復(fù)雜Linux腳本”并且“能簡單創(chuàng)造兩三級腳本的組合”。由此可見,基于知識點網(wǎng)絡(luò)的實時一步最優(yōu)推薦系統(tǒng),可以很好地滿足鞏固復(fù)習(xí)階段對知識點的最優(yōu)練習(xí)策略。
圖3還反映出學(xué)生喜歡使用手勢來分析知識點之間的連接關(guān)系。實際上,多使用手勢這種具像的動作有助于引導(dǎo)大腦內(nèi)部強(qiáng)化特定知識點之間的聯(lián)系,手勢可以提高創(chuàng)造力是心理學(xué)界近年的研究成果[6]。在細(xì)節(jié)方面,學(xué)生喜歡用手指類似走迷宮的方式探索低級知識點向高級知識點的進(jìn)化過程,厘清相似知識點的差異和應(yīng)用場合的區(qū)別。學(xué)生整體上喜歡在小組學(xué)習(xí)時用雙手的不同手勢向同伴展示某些知識點的類別劃分,加速小組的互學(xué)互助。小組討論和創(chuàng)造的氛圍很好,自我認(rèn)知內(nèi)驅(qū)力得到極大增強(qiáng)。例如,針對“生成兩列數(shù)1到5”這個知識點,明顯不滿足于電子題庫中的一種實現(xiàn)方法,并在教師的引導(dǎo)下得到了以下多種解法(此處略去簡單的變體):
六、結(jié)語
全面應(yīng)用信息技術(shù)推動教育信息化是“三教”改革的研究重點。本文基于知識點網(wǎng)絡(luò)形式的電子題庫,研究了待學(xué)習(xí)知識點的最優(yōu)推薦策略,為鞏固復(fù)習(xí)階段進(jìn)行個性化練習(xí)提供了最優(yōu)指引。此外,本文在學(xué)生創(chuàng)造力培養(yǎng)方面做了積極有益的探索。學(xué)生切實體驗了功能塊對編程語言的細(xì)節(jié)屏蔽性、功能塊少而精和復(fù)雜算法靠人來創(chuàng)造的學(xué)習(xí)策略。強(qiáng)化練習(xí)少數(shù)編程語言細(xì)節(jié)無關(guān)的功能塊,并以此創(chuàng)造問題的多種解法,而不同編程語言的差別只在于用該編程語言相關(guān)的細(xì)節(jié)實現(xiàn)這些功能塊。
事實上,使用任何編程語言,在功能塊層面上組合創(chuàng)造的思路都是一樣的。因此,功能性編程作為Linux腳本語言和大數(shù)據(jù)Spark環(huán)境原生Scala語言的最大優(yōu)勢,逐漸也引入到JavaScript語言和Java語言中,優(yōu)勢在于程序易測試、易掌控和易并行化,算法實現(xiàn)上需要對功能塊作創(chuàng)造性組合,而對語言細(xì)節(jié)的依賴程度更低。學(xué)生在對比Linux腳本語言和JavaScript語言的過程中,以很小的學(xué)習(xí)成本從頂層上掌握了JavaScript語言,創(chuàng)造力得到了極大鍛煉,對編程語言類課程實現(xiàn)了一定程度的融會貫通。
本文所述的最優(yōu)知識點推薦策略尚有幾個值得深入研究的方向。一是類似英語這種大型的知識點網(wǎng)絡(luò),例如,基于Oxford 3000單詞表及例句庫作最優(yōu)推薦算法的耗時太長,不但要研究知識點網(wǎng)絡(luò)的最優(yōu)切分,還需要用Scala/Spark在服務(wù)器上開展多機(jī)并行計算,甚至還要性能更強(qiáng)的芯片時序分析軟件(PrimeTime)實現(xiàn)全路徑的學(xué)習(xí)過程分析。芯片中各級觸發(fā)器之間的時序路徑類似知識點網(wǎng)絡(luò)中的連線路徑,值得深入研究。二是在關(guān)鍵代碼之上擴(kuò)展更多的實用功能,例如,與個人的遺忘曲線聯(lián)系起來以全面記錄學(xué)生的練習(xí)過程,還要與人工智能技術(shù)相結(jié)合,讓集體學(xué)習(xí)過程歷史大數(shù)據(jù)驅(qū)動的規(guī)則推薦和知識推薦更有益于學(xué)生個體的學(xué)習(xí)過程,讓班級整體學(xué)習(xí)力更有效地推動個體學(xué)習(xí)。實現(xiàn)更加符合學(xué)生個體學(xué)習(xí)力的定制化最優(yōu)知識點推薦。三是研究固有權(quán)值可動態(tài)改變并反映知識點創(chuàng)造過程的知識點網(wǎng)絡(luò)。當(dāng)前電子題庫中每個知識點只提供了一種解決方法,實際上,一個問題可以有很多解決方法。另外,好的學(xué)生可以邊學(xué)習(xí)“舊”方法,邊創(chuàng)造“新”方法,更難的情況是尚不明確如何設(shè)定知識點網(wǎng)絡(luò)的固有權(quán)值,可能需要借鑒異步電子設(shè)計中組合邏輯環(huán)的破環(huán)技術(shù)或者控制理論中的多步動態(tài)優(yōu)化問題[7]。
參考文獻(xiàn):
[1]國發(fā)[2019]4號.國務(wù)院關(guān)于印發(fā)國家職業(yè)教育改革實施方案的通知[Z].
[2]趙鴻昌.基于芯片仿真驗證軟件實現(xiàn)的一種試題庫與試卷庫建設(shè)方法[J].中國教育信息化,2018(14):89-92.
[3]Chris Godsil,Gordon Royle..Algebraic Graph Theory[M].New York:Springer,2001.
[4]Michael M. Zavlanos, Magnus B. Egerstedt, George J. Pappas. Graph-Theoretic Connectivity Control of Mobile Robot Networks[J].Proceedings of the IEEE,2011(9):1525-1540.
[5]Math.js.An extensive math library for JavaScript and Node[EB/OL]. https://mathjs.org/,2020.
[6]劉秀英.新聞月評[J].少年兒童研究,2017(1):61-62.
[7]Svetlozar T. Rachev, Ludger Ruschendorf.Mass Transportation Problems Volume I[M].New York: Springer,1998.
(編輯:王曉明)
3441501908297