前言:想要寫出一篇引人入勝的文章?我們特意為您整理了知識圖譜下C#課程學習導航系統(tǒng)探析范文,希望能給你帶來靈感和參考,敬請閱讀。
計算機編程語言是計算機專業(yè)教育中非常重要的一個方向。在大學計算機專業(yè)的課程設置中,編程語言的教學往往從本科一年級下學期或二年級上學期就開始了。在這一背景下,一般的語言特性固然可以順利講授,但教學中也會涉及到很多其他專業(yè)知識如內存分配、數(shù)據(jù)結構、數(shù)據(jù)庫等,完全超出學生的學習范圍。如果不補充這些知識點,會使學生轉移注意力,甚至喪失興趣點,影響到接受知識的效率。教師需要隨時根據(jù)課堂上學生的反饋,延伸講解一些必要的知識點,才能使學生能充分理解所授知識點,確保教學質量。2020年初的肺炎疫情使得在線教學成為重要的授課手段,然而在線課堂上教師很難及時掌握學生的動態(tài),從而忽略學生對陌生知識點的理解需求,最終影響到教學效果。為此,在“軟件構造基礎———c#程序設計”課程組教學實踐基礎上,本文提出利用知識圖譜技術來為學生補充陌生知識點的方案,通過對授課內容和聽課學生的知識結構進行分析,整理出相關的知識點,在課程講授過程中,作為獨立知識點推送給各位學生,為其補充關聯(lián)知識。在充分調研課程領域本體模型及其實現(xiàn)的基礎上,課程組應用知識圖譜(knowledgegraph)設計開發(fā)了C#課程學習導航系統(tǒng),并將其附加到現(xiàn)有在線教學平臺應用于在線教學中。通過對學生的課堂測試和問卷調查,課程組發(fā)現(xiàn)該技術有效提升了在線教學的授課效率。
一、課程知識本體設計
知識圖譜本質上是一個結構化的語義知識庫,以符號形式描述客觀世界中的概念及其相互的邏輯依存關系,其基本的組成單位為兩種形式的知識三元組,即<實體1、關系、實體2>和<實體、屬性、屬性值>,實體間通過關系相互聯(lián)結,構成網(wǎng)狀的知識結構[1]。從邏輯上看,知識圖譜由模式層(schemalayer)和數(shù)據(jù)層(datalayer)構成,其中的模式層充當知識圖譜的概念模型和邏輯基礎,對知識圖譜的數(shù)據(jù)層進行規(guī)范和約束。通常采用本體作為知識圖譜的模式層,借助本體定義的規(guī)則和公理來約束知識圖譜的數(shù)據(jù)層;知識圖譜的數(shù)據(jù)層則是本體(圖譜模式層)的實例,以<實體1、關系、實體2>或<實體、屬性、屬性值>三元組的形式存儲各種事實(知識),形成一個圖狀的語義知識庫,其中的基本元素是各個實體,具體來說包括課程的章、節(jié)、知識點名稱等;關系則是其中某兩個實體之間的語義關系,是模式層所定義邏輯關系的實例;屬性是對實體的說明,表達實體與屬性值間的映射。設計過程中,課程組將“軟件構造基礎———C#程序設計”課程中包含的教學知識作為圖譜數(shù)據(jù)層的具體內容,將章、節(jié)、知識點等名稱(概念)作為圖譜模式層的內容,通過定義課程知識圖譜中模式層應包含的概念及它們之間的關系來確定課程知識圖譜的邏輯結構,從而獲得該圖譜的本體結構。課程知識本體的設計工作重點考慮兩個方面,即知識的邏輯結構體系,以及學習導航系統(tǒng)對課程知識圖譜的功能需求。課程組參考核心教材唐大仕編著的《C#程序設計教程(第2版)》[2],將課程所包含的知識點集合按教材大綱劃分為三個級別的學習單元(第一級對應章、第二級對應節(jié)、第三級對應知識點),同時提取多種關聯(lián)關系進行語義標注,生成一個較為復雜的知識網(wǎng)絡[3]。此外,在課程學習導航系統(tǒng)中,課程知識圖譜主要實現(xiàn)兩個方面的功能支持,一是為學生選擇合適的學習內容提供重要參考依據(jù),二是幫學生推薦合理的學習路徑。如圖1所示,具體設計中課程組將課程知識本體設計為包含章、節(jié)、知識點三種級別知識單元的結構,同時標注出知識單元之間存在的三種關系,即包含關系、相關關系和順序關系。例如,章與節(jié)、節(jié)與知識點間具有上下級(第一級、第二級、第三級)的包含關系,每一章包含多個節(jié),每一節(jié)包含多個知識點;章與章、節(jié)與節(jié)、知識點與知識點之間存在順序關系,即學習某一章、某一節(jié)或某一知識點時需要具備其他若干個章、節(jié)或知識點單元的學習基礎,需要先行開展基礎知識的學習;知識點與知識點間存在相關關系,即兩個知識點彼此具有千絲萬縷的聯(lián)系,通常需要同時學者來加深理解、提升知識接受水平?;谝陨显O計思路進行課程知識本體的結構設計,可利用各類知識單元之間的邏輯依存關系生成各種滿足特定教學需求的學習路徑,為課程學習導航系統(tǒng)的不同用戶提供個性化學習服務。
二、課程知識圖譜構建
課程組以“軟件構造基礎———C#程序設計”課程為例,基于本體結構研究和設計,構建一個課程知識圖譜實例。知識圖譜主要采用自頂向下的方式由課程組教師構建,先確定知識圖譜模式層中的各級概念,再與從開放鏈接的數(shù)據(jù)源中提取出來的實體、屬性和關系等知識要素進行關聯(lián)。圖2所示為C#課程知識圖譜構建的流程,主要階段包括:基礎數(shù)據(jù)獲取、知識自動/半自動抽取、知識融合與表示、知識加工(實體對齊、標準表示、知識推理與發(fā)現(xiàn)等)。
(一)前期準備
在構建課程知識圖譜之前,課程組充分調研當前知識圖譜實現(xiàn)技術及其工具集,完成構建工具、存儲方式、支撐數(shù)據(jù)等選擇。目前,本體開發(fā)工具包括的美國斯坦福大學的Protégé和Ontolingua、德國卡爾斯魯厄大學的OntoEdit和KAON、英國的WebOnto、西班牙馬德里理工大學的WebODE等。本文采用Protégé作為課程本體構建和編輯工具,采用OWL(webontologylanguage)格式文件存儲課程知識圖譜??紤]C#程序設計課程知識圖譜設計具有較強的專業(yè)性要求,且涉及教學目標等知識,因此圖譜的初步構建工作主要依賴于課程的專任教師。此外,課程知識圖譜構建的學習資源和知識素材主要取自課程教學大綱和核心教材,同時也參考了其它一些國內外優(yōu)秀書籍,如JonSkeet著的《深入理解C#(第3版)》[4]、GaryMcLeanHall編著的《C#敏捷開發(fā)實踐》[5]等。
(二)課程知識圖譜主體內容實現(xiàn)
本課程知識圖譜的內容主要由以下部分構成:類及其屬性和關系的定義、實例及其屬性和關系的標注[6]。依據(jù)“軟件構造基礎———C#程序設計”課程知識本體結構,課程知識圖譜中含“章”“節(jié)”和“知識點”三個類,以及“包含”“相關”“順序”三種語義關系。在定義課程知識圖譜的邏輯結構基礎上,課程組按照自頂向下的方式對本課程的教學大綱及核心教材《C#程序設計教程(第2版)》進行了深入分析,歸納本課程的知識單元,并劃分為12章、64節(jié)、249個知識點;從配套教材中提煉出上述三級知識單元,依次轉換為“章”“節(jié)”和“知識點”類的實體,并添加至課程知識圖譜之中;然后,進一步標注這些實體之間存在的“包含”“相關”及“順序”邏輯關系,初步形成一個完整的課程知識圖譜。圖3所示為章、節(jié)、知識點之間包含關系的可視化示例。
(三)知識圖譜檢驗
“軟件構造基礎———C#程序設計”課程知識圖譜構建完成后,還需要完成質量評估,即對知識圖譜執(zhí)行一致性和正確性的檢驗。其中,圖譜的一致性檢驗包括語法一致性檢驗、語義一致性檢驗和用戶自定義的一致性檢驗[6]。本課程知識圖譜全程由Protégé編輯工具進行開發(fā),因此不可能存在語法不一致的問題;同時,在本知識圖譜中只存在“章”“節(jié)”和“知識點”三級概念,概念之間的關系比較明確,也基本不會產(chǎn)生沖突;實體之間的關系存在包含關系、相關關系和順序關系三種,其中包含關系依賴于教材大綱,十分明確沒有歧義,相關關系具有對稱性,基本不會產(chǎn)生不一致性,而對于可能出現(xiàn)不一致性問題的實體間的順序關系,可使用Protégé工具對課程知識圖譜進行簡單的推理,檢驗出可能存在的不一致情況。
三、基于知識圖譜的學習導航系統(tǒng)研發(fā)
學習導航系統(tǒng)為具有不同知識接受能力的學生提供適配的學習服務,這種個性化的適配主要體現(xiàn)在課程內容(學習素材)呈現(xiàn)和知識導航(學習路徑)支持兩方面[7]。其中,適配課程內容呈現(xiàn)表現(xiàn)為不同學習能力(知識接受能力)的學生在點擊同一個知識點時,看到的學習素材內容并不一樣,而會根據(jù)學生當前的知識基礎有所區(qū)別;適配知識導航支持則表現(xiàn)為具有不同學習能力、不同知識基礎的學生在訪問同一個知識單元時,看到的學習內容的學習次序(跳轉鏈接)并不相同,會根據(jù)學生已掌握的知識單元學習歷史記錄進行調整。
(一)課程內容呈現(xiàn)
課程知識圖譜可根據(jù)學生的知識學習和接受能力,為其篩選合適的學習內容以及不同形式的知識素材。主要過程如下:從課程知識圖譜中提取出知識單元(含章/節(jié)/知識點)形成目錄導航樹,供學生從中選取某一知識單元作為學習目標;判斷學生是否已掌握當前的知識單元;將學生尚未掌握的知識單元添加至學生的學習集合中,并基于關聯(lián)關系從課程的知識圖譜中提取其相關的基礎性知識(即該知識單元的前驅知識單元),并從學習資源中檢索出對應的知識素材,供后續(xù)使用。
(二)知識導航支持
依據(jù)課程的知識圖譜,可自動生成學生的學習路徑,實現(xiàn)課程學習資源和素材的快速導航,具體過程包括:提取學習資源涵蓋的知識點集合;根據(jù)課程知識圖譜中知識點之間的邏輯依存關系,判斷知識點相對的前驅后繼情況;生成各知識素材的學習順序。本文設計的智能學習導航為用戶提供基于定制學習內容生成的高效學習路徑,其中C#程序設計課程知識圖譜是支持適配學習內容呈現(xiàn)和導航的關鍵。課程知識圖譜作為知識內容組織模型,存儲課程知識實體以及實體間關系等數(shù)據(jù),并將知識點之間隱含的抽象關系以可視化的形式呈現(xiàn)出來;而學習導航系統(tǒng)從課程搜集整理的基礎數(shù)據(jù)(教學素材)中搜索相關聯(lián)的知識實例,并基于專職任課教師預先抽取的相關知識實例與實體之間的關系生成結構化的知識點圖譜。如圖4所示,基于C#程序設計課程知識圖譜構建的學習導航系統(tǒng)采用模型—視圖—控制器(modelviewcontroller,MVC)開發(fā)模式,采用Jena語義網(wǎng)應用框架實現(xiàn)模型層數(shù)據(jù)存儲,采用ECharts開源可視化庫實現(xiàn)視圖層的可視化界面,并采用Python實現(xiàn)控制器層的業(yè)務邏輯處理。
四、試驗及分析
項目組將采用課程知識圖譜技術的C#課程學習導航系統(tǒng)應用于“軟件構造基礎———C#程序設計”課程的教學實踐中。將40名選修本課程學生分為甲、乙兩組,以第二章合計25個知識點為測試項,甲組20名學生使用學習導航系統(tǒng),乙組20名學生未使用學習導航系統(tǒng),完成第二章內容學習后通過標準化試題測試兩組學生對知識點的掌握情況。圖5所示為知識點學習效果對比實驗結果,數(shù)據(jù)顯示使用本文知識圖譜學習導航系統(tǒng)的甲組學生平均成績?yōu)?8.4,而未使用學習導航系統(tǒng)的乙組學生平均成績?yōu)?9.2,說明知識圖譜對提高學生本課程的學習效率有一定幫助。
五、結語
“軟件構造基礎———C#程序設計”課程在線教學中存在互動方式有限、無法切實了解學生聽課效果等問題,為達到預期教學目標,構建課程學習導航系統(tǒng)以提供個性化知識學習服務是一個非常必要的解決方案。然而,學習導航系統(tǒng)的研發(fā)依然面臨很多技術挑戰(zhàn),其中如何針對每位學生對課程知識理解掌握的實際情況為其規(guī)劃更高效的學習路徑十分關鍵,課程知識圖譜恰好可以滿足這一需求。為此,課程組將知識圖譜技術引入C#課程學習導航系統(tǒng)研發(fā)之中,并在軟件工程專業(yè)的課程教學中進行了應用實踐,對比實驗表明,基于知識圖譜的課程學習導航系統(tǒng)能克服紙質教材知識素材分散性的不足,有效促進關聯(lián)知識的學習和記憶,進一步提高學生對課程知識點的掌握度。當前課程知識圖譜的構建在很大程度上還依賴于學科專家的篩選處理,而實現(xiàn)課程知識圖譜的全程自動化構建對于推動知識服務發(fā)展具有十分重大的意義。未來,課程組將圍繞上述課題以及知識圖譜的高效應用展開進一步的研究。
參考文獻:
[1]劉嶠,李楊,段宏,等.知識圖譜構建技術綜述[J].計算機研究與發(fā)展,2016(3):582-600.
[2]唐大仕.C#程序設計教程[M].2版.北京:清華大學出版社,2018.
[3]黃煥,元帥,何婷婷,等.面向適應性學習系統(tǒng)的課程知識圖譜構建研究———以“Java程序設計基礎”課程為例[J].現(xiàn)代教育技術,20196(12):89-95.
[4]SKEETJ.深入理解C#[M].3版.北京:人民郵電出版社,2014.
[5]HALLML.C#敏捷開發(fā)實踐[M].北京:人民郵電出版社,2016.
[6]趙呈領,黃志芳,萬力勇,等.基于初中物理課程的學科領域本體庫構建研究[J].電化教育研究,2014(8):64-70.
[7]何克抗.促進個性化學習的理論、技術與方法———對美國《教育傳播與技術研究手冊(第四版)》的學習與思考之三[J].開放教育研究,2017(2):13-21.
作者:何政 葉剛 單位:武漢大學計算機學院