国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于知識圖譜的C++程序設計課程知識體系構建

2022-02-18 23:52肖明明蘇利敏
教育觀察 2022年10期
關鍵詞:程序設計本體圖譜

肖明明,蘇利敏,江 靜

(北京聯(lián)合大學智慧城市學院,北京,100101)

C++程序設計是大學本科計算機相關專業(yè)的一門重要課程,其采用面向對象的設計思想把實際問題轉化為計算機所能解決的問題,是計算思維能力的具體實踐。[1]然而,在實際教學中,該課程概念多且抽象,知識點的掌握、聯(lián)系和應用在于建立“面向對象”這一新的計算思維模式,思維模式的轉變要求高和理論知識的孤立、枯燥使得該課程的教與學均面臨較大挑戰(zhàn)。因此,以“面向對象程序設計思想”為核心,構建清晰系統(tǒng)的課程知識體系,描述知識點及其結構關系,拓展與知識相關的程序實例和實踐案例,并將繁雜且抽象的知識體系以可視化形式向學生展示,有助于C++程序設計課程教師教學效果的提升和學生學習質量的提高。同時,有效的課程知識體系,還可以引導學生基于自身基礎和興趣,自主利用互聯(lián)網豐富的學習資源進行獨立探索,避免“信息過載”和“知識迷航”現(xiàn)象的出現(xiàn)。這對當前網絡化時代信息技術應用型人才的培養(yǎng)具有重要的引領作用和實踐意義。

近年來,知識圖譜因其在表達知識點內容、關系和結構方面的明顯優(yōu)勢,逐漸在教育教學領域受到重視。[2]筆者針對C++程序設計課程知識體系有效構建問題,將借助知識圖譜技術的支持,開展C++程序設計課程知識圖譜的構建:描述課程教學中知識點及其結構關系,并讓知識及其關系可視化、形象化,形成一種內容豐富、可查詢、可更新的課程知識體系。借助課程知識圖譜,讓學生易于理解和掌握知識,幫助學生思維清晰、構建合理的知識體系,以期進一步幫助教師優(yōu)化教學、提升教學效果。

一、課程知識圖譜研究概述

知識圖譜是一種揭示實體之間關系的語義網絡,可以對現(xiàn)實世界的事物及其相互關系進行形式化的描述,該概念于2012年由Google正式提出,之后被廣泛應用于各領域研究,包括教育領域。知識圖譜的構建主要有自底向上與自頂向下兩種方式。自底向上指的是從一些開放鏈接數(shù)據(jù)中提取出實體,選擇其中置信度較高的加入知識庫,再構建頂層的本體模式;自頂向下指的是先為知識圖譜定義好本體與數(shù)據(jù)模式,再將實體加入知識庫。[3]

課程知識圖譜是教育知識圖譜領域中的某個學科或者課程的應用,其采用“實體—關系—實體”的三元組形式將課程知識構建成一個網狀的知識結構。其中,“實體”表示不同形式的知識點,“關系”表示知識點之間的關聯(lián),這樣的知識結構可簡明清楚地展示知識脈絡、關系等特點。在課程知識圖譜的構建方面,張萌結合課程數(shù)據(jù)特點提出了關聯(lián)課程數(shù)據(jù)的概念及課程知識圖譜的模式層本體組織方法與數(shù)據(jù)層實體處理方式。[4]單佩佩依據(jù)培養(yǎng)方案及課程教學大綱,在分析課程知識結構的基礎上,通過人工方式提取出課程知識點,并采用爬蟲技術獲取課程知識實體概念定義,以構建教育技術學核心課程知識圖譜,并用于學習路徑推薦。[5]李艷茹等人針對傳統(tǒng)知識圖譜中海量知識點存儲和推理方法的不足,提出了一種可便捷有效構建圖譜的CRA模型,并以高中數(shù)學課程知識圖譜為例,結合圖譜編輯器對知識圖譜進行了構建與可視化展示。[6]郭宏偉從高校在線課程常態(tài)化這一視角,結合智能教育內涵,探索了自頂向下和自底向上相結合的在線課程知識圖譜構建途徑與方法,建立多圖譜相融體系以迭代式擴充完善知識體系結構。[7]盛嘉祺結合線上線下教育資源,以教材知識體系為框架,設計了命名實體識別方法和實體關系抽取算法,并融合教材、慕課和博客數(shù)據(jù)資源提出了一套完整的面向教育領域的知識圖譜構建方法。[8]

在程序設計類課程知識圖譜建設和應用方面,黃健對課程知識和體系進行梳理分析,基于知識圖譜通用構建流程,運用本體Protégés技術,建構了Python課程知識圖譜,并應用于知識檢索和推薦。[9]伍思潔探索了JAVA課程知識圖譜構建方式,并將知識圖譜應用于自動答疑系統(tǒng)的設計,用以輔助學生學習。[10]和青芳等人構建了包含文本、圖譜、音頻、視頻、動畫、網絡相關知識鏈接等數(shù)據(jù)的C語言課程知識圖譜,并將之引入在線課程平臺,為初學者提供文本格式多樣的學習資源和針對性強的個性化問題答案搜索。[11]

縱觀現(xiàn)有研究與實踐情況,程序設計類課程知識圖譜的構建仍存在著一定的不足。一方面,在網絡教學資源開放共享模式下,課程知識圖譜構建率不高,如當前沒有針對C++程序設計課程知識圖譜的構建、缺乏程序設計類課程知識之間的融會貫通。另一方面,課程知識圖譜構建方法通用性強、針對性弱,如在知識建構過程中忽略學生學情特點(如專業(yè)、年級、學習能力、動手實踐能力等)、學習目標(學生知識點掌握程度,在知識層面、能力層面和素質層面所應達到的目標等),以及知識理論和實踐的聯(lián)系。因此,以學生為中心,立足學生學情特點,結合課程教學目標,構建C++課程知識圖譜,描述知識點及其結構關系,拓展與知識相關的實踐案例,可以為學生面向對象計算思維和編程能力的培養(yǎng)提供堅實支撐與可靠保障,并且是現(xiàn)有程序設計類課程知識圖譜的有效補充,這對網絡信息化時代程序設計類課程的教與學都具有十分重要的意義。

二、C++課程知識圖譜構建

(一)C++課程知識圖譜構建框架

C++程序設計課程所涉及知識主要是指根據(jù)培養(yǎng)方案、課程大綱和課程教材傳授給學生學習的知識集合,具有比較確定的層級結構。因此,其知識圖譜可采用自頂向下的方式構建:首先,確定知識圖譜的數(shù)據(jù)模型,即根據(jù)領域知識和專家指導進行本體構建;其次,基于數(shù)據(jù)資源進行知識抽取(包括實體抽取、關系抽取和屬性抽取)、根據(jù)數(shù)據(jù)模型進行知識表示和融合;最后,形成知識圖譜。其中,本體構建是核心?;跇嫿ê玫谋倔w,知識圖譜在后續(xù)應用中還可以結合課程知識的更新不斷豐富和完善。

(二)C++課程知識圖譜本體構建

在C++課程知識圖譜本體構建方面采用經典“五步法”知識庫構建方法,具體如下。[12]

1.確定本體的專業(yè)領域和范圍

C++程序設計課程涵蓋了基礎語法、面向對象程序設計思想、類、對象、派生類、繼承、多態(tài)性、虛函數(shù)等知識模塊,課程概念多且抽象、難以理解和掌握,知識點孤立片面、無法有效組織和應用。本體構建的目標是結合課程知識結構特點,關注學生認知水平,制訂出系統(tǒng)可靠的知識圖譜,并以可視化形式展示知識概念、知識屬性和知識關系,幫助學生從宏觀上掌握整個課程結構,并能以面向對象程序設計思想為核心進行關聯(lián)學習,從而幫助學生減少學習中的知識迷航、提升學習質量。筆者以應用型本科數(shù)據(jù)科學與大數(shù)據(jù)技術專業(yè)所開設的C++程序設計課程為基礎,根據(jù)課程教學對象和教學階段確定本體的專業(yè)領域和范圍具體為應用型本科大二學生所選修的C++程序設計課程。

2.獲取課程知識

基于權威性、客觀性和公認性原則,教師應將培養(yǎng)方案、教學大綱、教材和專家知識作為構建知識圖譜的重要數(shù)據(jù)來源。其中,教材方面,筆者選取由鄭莉編著、清華大學出版社出版的《C++語言程序設計》。具體獲取課程知識的方式為:首先,充分剖析培養(yǎng)方案、課程大綱和教材內容,請教教學經驗豐富的資深教師,對課程進行人工標注,梳理出超過200個知識點;其次,為避免個人主觀性,將標注的知識點交由專業(yè)教師和專家審核;最后,根據(jù)專家審核指導進行修改補充,共標記出166個知識點。保留的知識點代表該課程的主要內容,是比較重要的知識點,涵蓋了該課程基本概念,且這些知識點符合學生學習的規(guī)律。

3.列出重要知識概念

知識概念主要是為了讓學生了解該知識點的意思及相關屬性。知識概念獲取來源以教材知識為主,教師應梳理所選擇教材中的知識點概念,并使用網絡資源進行輔助。

4.確定知識概念的層次、屬性,將其實例化

本體層次結構構建可將課程知識點進行有效的分類,從而提高課程知識圖譜的可用性與有效性。根據(jù)教材中的章節(jié)劃分和課程內容的層級關系,教師可將C++課程知識概念層次結構劃分為知識體系、知識樹、知識模塊和知識點,并采用本體構建中的OWL本體描述語言創(chuàng)建C++課程知識圖譜的本體概念層次結構。C++課程知識體系由10棵知識樹組成,具體包括程序設計基礎、C++基礎知識、函數(shù)、類與對象、繼承與派生、多態(tài)性、數(shù)據(jù)的共享與保護、程序實例、綜合實例、實踐案例。知識樹由多個知識模塊組成,如類與對象這一棵知識樹,由類與對象、構造函數(shù)和析構函數(shù)、類的組合、深復制與淺復制等知識模塊組成。知識模塊由多個知識點組成,如類與對象這一知識模塊由類的定義、類的成員、類成員的訪問控制、對象、對象數(shù)組、對象指針等知識點組成。而知識點表示最小的知識單位。

在本體構建中,類的屬性一般被劃分為類的數(shù)據(jù)屬性和類的對象屬性兩種。類的數(shù)據(jù)屬性用來描述類自身的一些特性,類的對象屬性用來表示類與類之間的各種關聯(lián)關系。在課程本體中,類就是概念,類的數(shù)據(jù)屬性就是概念的一些描述信息,如定義、內容等。類的對象屬性就是概念與概念之間的關系。結合C++程序設計專業(yè)課程設置,本文對類的數(shù)據(jù)屬性定義主要包括知識點描述、所處章節(jié)、教材頁碼、掌握程度、是否重難點五個方面。知識點描述主要包含知識點的定義、概念性質等描述性理論,對于程序實例、綜合實例和實踐案例則描述與其相關的知識點,使理論知識與實踐應用融會貫通。所處章節(jié)表明該知識點處于課程的具體章節(jié)信息。教材頁碼表明該知識點處于教材頁碼范圍信息。掌握程度依據(jù)布魯姆的認知領域分為識記、理解、應用、分析、綜合、評價六個等級,越往上掌握程度越高。難易程度分為重點、難點、重難點、非重難點四個維度。在C++課程知識圖譜中,每個知識點都不是獨立存在的,它們之間都會存在各種各樣的聯(lián)系,主要涉及前驅后繼關系、同一關系、包含關系、關聯(lián)關系、兄弟關系、例子關系、繼承關系、概括關系,以及初始化、釋放空間、解決、實現(xiàn)、兼容、應用、翻譯等關系。

本體實例化是構建本體的最后一步,即將C++程序設計課程中的知識點實體以本體實例的形式表現(xiàn)出來。C++程序設計課程的本體實例以教學大綱和教材教案為主,以百度百科為輔,進行最后的手動提取和整理,使每個知識點實體都具有完整意義和自身屬性。

5.形式化編碼

筆者采用斯坦福大學醫(yī)學院開發(fā)的本體編輯器Protégé對上述步驟構建的本體進行編碼化,實現(xiàn)C++程序設計課程知識庫的構建。

(三)C++課程知識圖譜可視化

利用C++課程教材和互聯(lián)網資源進行實體、關系和屬性的手動抽取,在本體構建模式層的約束下,將知識整理為“實體—關系—實體”或“實體—屬性—屬性值”三元組形式,并將其存儲于數(shù)據(jù)庫,即可構建好課程知識圖譜的數(shù)據(jù)層。在此基礎上,通過概念與實體的鏈接,融合模式層與數(shù)據(jù)層,最終構建C++課程知識圖譜。筆者采用Neo4j圖數(shù)據(jù)庫進行存儲,共166個知識點、202個關系。

三、C++課程知識圖譜應用

結合學生學情特點和具體教學目標所構建的C++課程知識圖譜,可以為學生面向對象計算思維和編程能力的培養(yǎng)提供堅實支撐與可靠保障。在課堂教學中,基于C++課程的知識圖譜,可以有效引導學生了解所學知識內容及知識點之間的關聯(lián)關系,形成一個整體的課程知識網絡。同時,圖譜中程序實例、綜合實例和實踐案例的拓展,有助于學生理論聯(lián)系實際,促進學生對所學知識進行深入思考。在課后學習中,學生還可以通過C++課程知識圖譜查詢知識點及其關聯(lián)關系,從而快速地獲取知識點介紹和相關資料,這有利于學生的高效學習和復習。

此外,C++課程知識圖譜還可進行拓展應用:如采用自動化手段從網絡和參考書籍等資源中進行知識抽取,豐富數(shù)據(jù)資源,不斷更新知識圖譜;或者基于知識圖譜實現(xiàn)C++相關知識的自動問答、智能搜索、資源推薦、個性化學習路徑推薦等。這為C++課程教學教改提供了新的思路。融合C、Python、Java等已有知識圖譜,C++課程知識圖譜還可拓展至程序設計類課程知識圖譜,構建程序設計知識體系,這有助于本科生融會貫通、體系化掌握面向過程結構化編程和面向對象編程,進而有利于培養(yǎng)學生的計算思維、構建體系化編程思路和能力。

四、結語

面向應用型本科C++程序設計課程教學需求,本研究提出了一種具體的課程知識圖譜構建方法。首先,結合學生學情特點,基于培養(yǎng)方案、課程大綱、教材教案和專家指導意見梳理確定課程內容的知識結構。其次,根據(jù)本體構建過程,依次確定課程目標、范圍,定義知識概念層次結構、屬性,并將其實例化。最后,在本體編輯器Protégé中進行本體構建,通過neo4j圖數(shù)據(jù)庫將知識及其關系進行存儲,并將其可視化顯示,以此形成了一種內容豐富、可查詢、可更新的課程知識體系?;谥R圖譜的C++程序設計課程知識體系的構建不僅能夠幫助學生構建合理的知識體系,使學生思維清晰、更容易理解和掌握知識,還能進一步幫助教師優(yōu)化教學、提升教學效果。后續(xù)研究可采用自動化手段進行知識抽取,豐富數(shù)據(jù)資源,更新知識圖譜,可進一步將知識圖譜應用于課程答疑、學習路徑推薦等方面。這對專業(yè)課程教學改革具有重要的意義。

猜你喜歡
程序設計本體圖譜
眼睛是“本體”
繪一張成長圖譜
基于Visual Studio Code的C語言程序設計實踐教學探索
從細節(jié)入手,談PLC程序設計技巧
補腎強身片UPLC指紋圖譜
基于本體的機械產品工藝知識表示
高職高專院校C語言程序設計教學改革探索
主動對接你思維的知識圖譜
PLC梯形圖程序設計技巧及應用
專題
阿合奇县| 济宁市| 西林县| 株洲县| 平原县| 康平县| 曲麻莱县| 扶沟县| 专栏| 惠州市| 西盟| 杭锦旗| 保康县| 南郑县| 鄂伦春自治旗| 勐海县| 白银市| 抚顺市| 新密市| 桦南县| 柳林县| 如东县| 大同市| 安平县| 汉沽区| 绥中县| 东城区| 合江县| 闽清县| 临西县| 万宁市| 右玉县| 邵阳县| 沧源| 武城县| 新源县| 鄄城县| 平昌县| 钟山县| 松滋市| 天长市|