張立波, 張 飛, 羅鐵堅
(中國科學(xué)院大學(xué)計算機與控制學(xué)院,北京 101408)(2015年12月22日收稿; 2016年4月19日收修改稿)
近年來 “賽博學(xué)習(xí)”(Cyberlearning)概念的出現(xiàn),充分體現(xiàn)了信息技術(shù)與學(xué)習(xí)科學(xué)這兩大杠桿相互作用,合力推動學(xué)習(xí)觀念和學(xué)習(xí)方式的變化.在傳統(tǒng)教育中,由于課堂上課時長有限,學(xué)科體系變化快、容量大,因此效果有限. 隨著互聯(lián)網(wǎng)教育的興起,給教育帶來新的方式和方法,尤其是大型開放式網(wǎng)絡(luò)課程(massive open online courses, MOOC)的出現(xiàn),掀起了系統(tǒng)性在線學(xué)習(xí)的高峰[1].但是互聯(lián)網(wǎng)教育和傳統(tǒng)教育都面臨同樣一個問題:學(xué)科知識龐雜、變化迅速,如何組織教學(xué)內(nèi)容,才能使學(xué)生緊跟時代的腳步[2]?
互聯(lián)網(wǎng)給教育提供了海量資源可供選擇,這使得我們能夠使用新的技術(shù)手段對知識體系進行梳理,找到當(dāng)下教育應(yīng)該聚焦的核心部分,在編排教程和構(gòu)建核心知識點時,時刻保持與時代同步.本文以知識體系中最小的單元概念為切入點,尋找一種能夠?qū)W(xué)科知識重點進行評價的方法.學(xué)科概念是人類知識的基本組成部分,在人類對未知領(lǐng)域的不斷探索中,逐步形成系統(tǒng)的科學(xué)知識體系,而構(gòu)成相關(guān)體系的最小單元,就是概念.隨著學(xué)科的不斷發(fā)展和完善,新的概念不斷出現(xiàn),而舊的概念慢慢被淘汰.概念的集合形成了細小顆粒度上的人類知識寶庫,例如維基百科、大英百科.學(xué)科的知識體系由整個概念的網(wǎng)絡(luò)構(gòu)成,而概念的出現(xiàn)有時間的先后關(guān)系,一個新概念的學(xué)習(xí)可以通過之前掌握的舊概念的牽引,以此達到更容易接受和學(xué)習(xí)的效果.
傳統(tǒng)的學(xué)科評估是依據(jù)文獻的標題與關(guān)鍵詞進行構(gòu)建,這種方式無法深入到文獻內(nèi)部,也無法通過幾個關(guān)鍵詞對文獻的全部內(nèi)容進行完整概括.本文主要貢獻包括:1)收集過去60多年計算機領(lǐng)域的課程大綱指南作為權(quán)威數(shù)據(jù),并對這些數(shù)據(jù)進行預(yù)處理,形成可用的數(shù)據(jù)集;2)首次研究并提出一個知識領(lǐng)域、知識單元和概念之間的模型,并在此基礎(chǔ)上對生成的數(shù)據(jù)集進行分析,從這3個層面出發(fā),揭示計算機科學(xué)知識體系的演化規(guī)律,該方法具有廣泛普適性,能夠遷移到其他學(xué)科領(lǐng)域;3)為便于其他研究者繼續(xù)研究,開發(fā)了一套文中所述方法的工具集,并公開了源碼.
我們的方法能夠應(yīng)用在各個學(xué)科領(lǐng)域,本文選擇計算機科學(xué)作為研究對象,這是因為計算機學(xué)科在過去的60年里發(fā)生了翻天覆地的變化,這是一門年輕的學(xué)科,并且無法用個人的經(jīng)驗來對整個學(xué)科進行評估.
幾十年來,教育的形式和內(nèi)容發(fā)生了很多變化,學(xué)習(xí)的重點也隨之遷移.在具體的教學(xué)過程中,傳統(tǒng)教育大多是基于課本的流程和框架,而課程的更新相對于知識的更新速度,有明顯的滯后.這就造成課程傳遞的知識中,包含一些已經(jīng)不再重要,甚至已經(jīng)被淘汰的概念.另外,知識傳遞的主體是教師,而教師無法了解全部的學(xué)科和概念隨時間的演化規(guī)律,單一憑借自身對整個學(xué)科體系的理解和掌握,在教學(xué)過程中無法時刻抓住熱點和重點概念.知識傳遞的對象是學(xué)生,而學(xué)生的學(xué)習(xí)能力和學(xué)習(xí)進度千差萬別.傳統(tǒng)教學(xué)中,教師無法在有限時間和精力的制約下,在一對多的教學(xué)模式中顧及每一個學(xué)生的接受程度,也無法制定一個適合全部學(xué)生的課程方案.課程中概念的數(shù)量和重點都在發(fā)生變化,學(xué)生無法在學(xué)科諸多概念中聚焦關(guān)鍵概念,就很難抓住課程的重點,也無法將有限的時間投入到課程的核心部分.
為解決傳統(tǒng)教育中的這些弊端,互聯(lián)網(wǎng)教育開始興起,2008年MOOC教育騰空出世,得到了廣泛的關(guān)注與發(fā)展.目前,全球的MOOC平臺已經(jīng)發(fā)展到30多個,開設(shè)1 500多門課程,涵蓋多個科學(xué)領(lǐng)域.與傳統(tǒng)教育相比,互聯(lián)網(wǎng)教育是一種更有效的學(xué)習(xí)方式,能夠根據(jù)學(xué)生已經(jīng)掌握的概念情況,因地制宜地制定個性化的學(xué)習(xí)方案;并在整個學(xué)習(xí)過程中,準確地評估學(xué)生的接受程度和理解程度;并以此為根據(jù),適時地進行方案調(diào)整和學(xué)習(xí)內(nèi)容的變更.最初的MOOC教育,采用的是點播式教學(xué),通過點播視頻、查看課件、完成在線作業(yè)等,主要特點是教學(xué)資源的展示.后來,MOOC發(fā)展到交互式教學(xué)階段,視頻會議與BBS系統(tǒng)、內(nèi)部郵件、在線答疑等方式的加入提升了師生之間的互動,能夠及時有效地提供教育服務(wù).現(xiàn)在,MOOC教育漸漸進入自主化教學(xué)階段,在這個階段,通過對學(xué)習(xí)者能力和狀態(tài)的評估,自適應(yīng)地調(diào)整教學(xué)內(nèi)容和教學(xué)方法;但是目前無法將教學(xué)內(nèi)容與時代的發(fā)展緊密結(jié)合,無法將當(dāng)下的熱點知識融合到教學(xué)當(dāng)中[3].
傳統(tǒng)教育與互聯(lián)網(wǎng)教育都缺乏一個可靠的學(xué)科評價體系,來對教學(xué)質(zhì)量和學(xué)習(xí)效果進行評估.傳統(tǒng)的測驗只能在一定程度上檢測學(xué)生對課程教學(xué)的掌握程度,無法對學(xué)習(xí)的總覆蓋度進行評估,也無法了解掌握的知識與當(dāng)下熱點的契合程度.并且在這個信息爆炸的時代,知識的種類繁多,所以只有通過對課程知識體系隨歷史變化規(guī)律的總結(jié),才能將教學(xué)重點聚焦在核心的知識概念上,才能通過對歷史規(guī)律的把握來掌握未來的熱門趨勢,并根據(jù)學(xué)科歷史的演化規(guī)律和遷移變化來確定當(dāng)前時期所需要掌握的重點內(nèi)容.
如表1所示,將本文所述評估方法與傳統(tǒng)的評估方法進行對比:傳統(tǒng)的評估對象均為基于web of science等知名檢索收錄的論文文獻,本文采用的是過去60年的課程大綱;傳統(tǒng)是對科學(xué)的文獻領(lǐng)域進行評估,而我們聚焦在課程領(lǐng)域;傳統(tǒng)的評估一般采用對文獻的標題和關(guān)鍵詞進行建模分析,而我們選擇在具體文本中抽取概念進行分析;傳統(tǒng)采用CiteSpace等文獻分析工具,無法移植改進,而本文采用自主開發(fā)的工具,并公開源碼,可以根據(jù)需要進行修改和遷移.
表1 本文方法與傳統(tǒng)評估的對比
因此,本文首次提出從知識體系中的最小單元——概念出發(fā),運用自然語言處理與數(shù)據(jù)挖掘的相關(guān)算法,以計算機科學(xué)為例,構(gòu)建一個對學(xué)科知識體系的建模與評估方法.該方法通過對過去60年計算機科學(xué)大綱的知識單元進行分析,總結(jié)出本學(xué)科內(nèi)的教學(xué)內(nèi)容核心,并揭示其演化規(guī)律.
作為發(fā)展最為迅速的學(xué)科之一,計算機科學(xué)在過去的60年里從知識體系到應(yīng)用方式,都發(fā)生了巨大的變化. 隨著新興應(yīng)用和新型技術(shù)的出現(xiàn),計算機科學(xué)的研究領(lǐng)域不斷變化,伴隨著的是新概念的出現(xiàn)和舊概念的消退,研究重點也在不斷遷移,因此我們選取計算機學(xué)科作為學(xué)科研究對象,探究計算機學(xué)科中的重點是如何發(fā)生變化的.不難發(fā)現(xiàn)在計算機課程中,一些基本概念例如“數(shù)據(jù)結(jié)構(gòu)”、“算法”從始至今都保持著重要的角色.一些概念隨著時間變得越來越重要,例如“網(wǎng)絡(luò)”、“萬維網(wǎng)”在20世紀90年代時并沒有受到關(guān)注,但他們在隨后的10年間,卻成為計算機科學(xué)最重要的基礎(chǔ).也有一些概念會被新的概念所替代,在編程語言中,新興的“Java”、“C++”、“PHP”等編程語言逐漸取代了20世紀50年代中期的“COBAL”、“Fortran”編程語言.
計算機學(xué)科的體系由眾多概念編織而成,學(xué)科之間存在諸多相同的概念,這些交叉的概念反映了學(xué)科的異同. 當(dāng)兩個學(xué)科的概念交集很大時,掌握一門學(xué)科對另外一門學(xué)科的學(xué)習(xí)也很有幫助,這能夠反映出概念和學(xué)科在學(xué)習(xí)先后順序上的邏輯. 因此通過對重點概念的分析和掌握能夠準確把握先修課程和先修概念,這對提高學(xué)習(xí)效率有著非常重要的作用.我們通過對ACM和IEEE作為計算機領(lǐng)域的權(quán)威機構(gòu),在過去幾十年間通過公布的有關(guān)計算機課程的指導(dǎo)大綱,來引領(lǐng)計算機課程的發(fā)展方向. 因此我們選取了全部的13次大綱內(nèi)容進行分析,通過對每年的課程體系構(gòu)建概念網(wǎng)絡(luò),來觀察計算機科學(xué)所包含的概念隨著時間發(fā)生了什么變化. 計算機科學(xué)中的概念在出現(xiàn)的時間上有先后順序,這對準確把握計算機科學(xué)的發(fā)展趨勢,在教學(xué)過程中抓住熱點和重點問題有很大的幫助.通過本文提出的方法,我們將探究隨著時間的推移,在教育中,哪些概念變得更加重要,哪些概念已經(jīng)邊緣化,而哪些概念處于核心位置,一直是學(xué)習(xí)的重點.
為了對計算機學(xué)科的發(fā)展進行分析,我們收集ACM從1991年到2014年的全部計算機課程指導(dǎo)綱要,所有數(shù)據(jù)均來自ACM和IEEE計算機協(xié)會,內(nèi)容涵蓋計算機課程、計算機科學(xué)課程、計算機工程、軟件工程、高級軟件工程、信息系統(tǒng)和信息技術(shù).在計算機科學(xué)教育領(lǐng)域中,ACM的計算機科學(xué)課程大綱是影響力最大的課程指導(dǎo)之一.ACM在1968年首次發(fā)布了課程指導(dǎo)大綱:“68課程指導(dǎo)”,這也是計算機科學(xué)課程的第一個指導(dǎo)大綱.10年之后,“78課程指導(dǎo)”發(fā)布.自從1991年開始,ACM與IEEE計算機協(xié)會一起合作制定計算機科學(xué)課程指導(dǎo),至今為止,一共發(fā)布了13個版本:CC1991、CC2001、IS2002、CE2004、SE2004、CC2005、IS2006、IT2008、CS2008、SE2009、IS2010、CS201和SE2014.
需要說明的是,在具體分析中,我們并沒有使用68年課程指導(dǎo)和78年課程指導(dǎo),因為這兩個版本知識體系的構(gòu)建與隨后的版本有著巨大的區(qū)別.另外,由于SE2014是2015年發(fā)布的非完整版本,因此SE2014的數(shù)據(jù)只作為參考.
為了形成能夠被處理的標準的文檔形式,必須進行數(shù)據(jù)的預(yù)處理.為保證數(shù)據(jù)集的科學(xué)性和準確性,我們在預(yù)處理的部分步驟中投入了大量人力進行手工處理.
設(shè)原始的文檔為T,具體的處理步驟如下:
1)對T進行數(shù)據(jù)清洗,首先將網(wǎng)址和特殊字符刪除,形成T′.
2)將T′中“()”和“/”周圍的字段單獨抽出,形成t_1和t_2.
3)將T′中的連續(xù)大寫字母詞組和帶有連字符的詞組提出,形成t_3和t_4.
4)號召了7個志愿者,通過對13份課程的t_1,t_2,t_3,t_4進行人工處理,從中找出與計算機相關(guān)的全部概念,形成單詞表w_1,w_2,w_3,w_4.
5)將13份課程形成的52個w_1,w_2,w_3,w_4匯總成一個單詞表,并對單詞表去重后排序,形成單詞表W_1.
6)為了使計算機詞匯概念單詞表更有效,對wiki百科的title進行處理,從11 944 439個詞條中抽取了以_(computer)結(jié)尾的與計算機相關(guān)的概念詞匯,形成單詞表W_2.
7)從英語詞典和互聯(lián)網(wǎng)網(wǎng)站獲取了另外一些與計算機概念相關(guān)的概念詞匯,生成單詞表W_3.
W=F(W_1+W_2+W_3).
(1)
通過公式(1)形成總詞匯表W,其中F的作用是將匯總后的單詞表去重.
8)用總詞匯表W對T′進行匹配查找,記錄每個課程文檔中出現(xiàn)的概念次數(shù),并將其從T′中刪除,刪除詞匯表W后的T′,形成t′_i(0
9)對t′_i進行自然語言處理,具體步驟如下:
①使用nltk.sent_tokenize進行分句.
②使用公式(2)進行單詞分詞.
re.findall(r“w+(?:[-′]w+)*
|′|[-.(]+|Sw*”,raw).
(2)
③使用wordnet進行拼寫檢查,糾正錯誤的單詞.
④使用公式(3)去除標點,并轉(zhuǎn)換大小寫.
[word.lower() for word in t′_iif word.isalpha()].
(3)
⑤使用公式(4)進行詞形歸并.
[nltk.WordNetLemmatizer().lemmatize(t) for t in e.
(4)
⑥使用公式(5)去除停用詞.
[word for word in t′_iif word not in set(stopwords.words(‘english’))].
(5)
⑦通過上面的處理,得到k_i(0
10)分別對13個文檔k_i中的單詞進行去重,形成詞匯表W′,通過志愿者的人工處理,將詞匯表W′中與計算機概念相關(guān)的詞匯找出,形成單詞表W_4.
11) 通過公式(6)生成最終的單詞表W_final.
W_final=W+W_4.
(6)
12) 通過單詞表W_final對T′的匹配,生成包含每個課程中所有計算機概念詞匯及其頻率的索引.
上述步驟中變量對應(yīng)如表2所示.
表2 變量對應(yīng)表
文獻統(tǒng)計的方法被應(yīng)用在探究不同的學(xué)科前沿領(lǐng)域,以探尋學(xué)科中研究主題的變化趨勢,但是學(xué)科前沿只是學(xué)科的一部分[4-7].Bogoiavlenski等[8]回顧計算機課程演變的歷史觀點,2005年Shackelford等[9]簡要地總結(jié)了從20世紀90年代到2005年間專家關(guān)于計算機學(xué)科發(fā)展的觀點,但是他們只描述了整個體系的全貌,不能從中具體地了解學(xué)科的變化與發(fā)展.Marshall[10]利用樹形的知識結(jié)構(gòu)對CC2001,CS2008和CS2013進行比較,但是他的論述局限于知識單元的主題上,并沒有深入到顆粒度等更細的概念層次.此前的研究并沒有對學(xué)科概念的組成進行研究,并在概念的基礎(chǔ)上對整個學(xué)科的演變進行探索,而這,正是我們的研究主題.我們的研究并不針對于計算機學(xué)科,而是試圖找到一個通用的方法來對其他的學(xué)科進行分析,為互聯(lián)網(wǎng)教育提供新的思路.
將收集的1991年到2014年ACM和IEEE計算機協(xié)會發(fā)布的計算機科學(xué)課程的pdf轉(zhuǎn)化為txt,并利用數(shù)據(jù)處理中的預(yù)處理方法對數(shù)據(jù)進行處理.
ACM和IEEE計算機協(xié)會將每年的課程構(gòu)成看成由不同的知識領(lǐng)域(KA,knowledge area)構(gòu)成,知識領(lǐng)域由不同的知識單元(KU,Knowledge unite)構(gòu)成,而知識單元由具體的概念(C,concept)構(gòu)成,如圖1所示. 我們的分析也是基于最細化的概念,在概念這個層級上,有可能與其他概念有一定的關(guān)系.
圖1 課程知識體系的模型表示Fig.1 Graph model of a curricular knowledge system
通過我們的算法,對課程大綱中每年的計算機概念進行統(tǒng)計,得到如圖2所示數(shù)據(jù). 統(tǒng)計出從1991年到2014年逐年的概念增長趨勢,并畫出一條擬合的指數(shù)曲線.從1991年591個概念增加到2014年5 824個概念,從指數(shù)曲線上可以看出,計算機學(xué)科最初幾年的課程大綱中概念數(shù)量呈現(xiàn)高速增長,逐步完善后,概念增長趨勢逐漸趨于穩(wěn)定.
圖2 概念的增長趨勢Fig.2 Growth trend of the concept
計算機科學(xué)的發(fā)展建立在概念體系的基礎(chǔ)之上,隨著領(lǐng)域的不斷發(fā)展,新的概念不斷出現(xiàn),與此同時,已經(jīng)存在的概念會因為新知識的出現(xiàn)而不斷發(fā)生變化.例如,“大數(shù)據(jù)”的概念是在處理大規(guī)模數(shù)據(jù)時被提出,而現(xiàn)在的“智能手機”更多地是搭載安卓或者IOS系統(tǒng),而不是塞班系統(tǒng).
從計算機學(xué)科概念的總量上,可以看出概念的數(shù)量在不斷增長,我們希望探索到更多的發(fā)展規(guī)律,以此對MOOC教育的重點進行指導(dǎo).例如:
1)在過去的幾十年中,究竟是哪些概念一直在計算機教育中占據(jù)著重要的位置?
2)重點概念和非重點概念的出現(xiàn)次數(shù)有多大的差別?
我們從課程大綱中找出全部與計算機科學(xué)相關(guān)的概念,并通過數(shù)據(jù)統(tǒng)計分析,找到問題的答案.
圖3對1991年到2014年課程概念詞頻進行統(tǒng)計,列出頻率最高的10個概念.排在前3位的是程序設(shè)計、信息系統(tǒng)和信息技術(shù),這3個知識的重要性與歷史的結(jié)果相吻合.
圖3 課程中總頻率最高的10個概念Fig.3 Top 10 concepts in curricula
為進一步了解這些年,重點的概念發(fā)生變化的具體規(guī)律,我們列出1991到2014年11次的課程指導(dǎo)中每年頻率最高的10個概念,如圖4所示.
圖4 每年課程中頻率最高的10個概念Fig.4 Top 10 concepts in curricula in each year
為確定核心概念在總概念中的比例,我們做了如下的統(tǒng)計,將詞頻分為6個區(qū)間,分別統(tǒng)計出每年的概念表中含有每個詞頻區(qū)間的概念數(shù)量.如圖5所示,可以看出大部分的概念每年出現(xiàn)次數(shù)小于20.
圖5 課程概念頻率分布Fig.5 Frequency distribution of curricular concepts
通過分析我們發(fā)現(xiàn),計算機學(xué)科在過去的十幾年里,課程體系總共發(fā)生了4次大的調(diào)整. 為深入展示課程中知識領(lǐng)域重點的變化,我們根據(jù)知識領(lǐng)域中概念數(shù)目的分布繪制了圖6.發(fā)現(xiàn):知識領(lǐng)域包含的內(nèi)容逐年不斷擴大,一些知識領(lǐng)域的重要性一直有著重要的地位,例如IM,SE,GV;一些新的知識領(lǐng)域出現(xiàn),例如IAS,SF;一些知識領(lǐng)域被過時,例如NC.人類知識的變化就像這個圖的演化,雖然每個領(lǐng)域的重要性發(fā)生波動,但在整體的趨勢上,人類的知識領(lǐng)域在不斷擴增,從最初的9個知識領(lǐng)域拓展到現(xiàn)在的19個.
圖6 課程體系的4次調(diào)整Fig.6 The 4 adjustments of curricula
由于傳統(tǒng)教育與互聯(lián)網(wǎng)教育再具體的教學(xué)過程中,無法準確地把握學(xué)科知識體系帶來的核心知識的變化,本文提出一種利用知識體系中的最小單元——概念,來尋找在學(xué)科隨時間變化的過程中,重點知識是如何變化的.在此基礎(chǔ)上,我們收集1991年到2014年ACM和IEEE發(fā)布的所有課程指導(dǎo),在此數(shù)據(jù)集的基礎(chǔ)上,利用本文提出的索引算法生成概念索引,并進行相關(guān)分析.結(jié)果顯示,計算機概念的增加速度從最初的354%減緩到2013年到2014年的1.41%;知識領(lǐng)域從9增加到19;知識單元從10增加到18.可以看出計算機學(xué)科十幾年來學(xué)科的框架體系正在不斷調(diào)整與完善,學(xué)科總體在不斷擴大的基礎(chǔ)上從稀疏型結(jié)構(gòu)逐漸轉(zhuǎn)變?yōu)槊芗徒Y(jié)構(gòu).
本文提出的研究框架和算法也能夠應(yīng)用到其他學(xué)科的教學(xué)內(nèi)容和教學(xué)大綱內(nèi)容的分析中.為便于后續(xù)的研究,我們將算法的整個處理過程形成了一個概念抽取平臺,通過該網(wǎng)站,其他研究者可以參考本文的框架和流程.現(xiàn)有平臺是基于計算機學(xué)科的概念抽取,在后續(xù)完善后,可以對其他學(xué)科進行概念抽取,我們平臺的公開源碼網(wǎng)址為https:∥github.com/ideaucas/LiboZhang.