前言:想要写出一篇引人入胜的文章?我们特意为您整理了知识图谱下C#课程学习导航系统探析范文,希望能给你带来灵感和参考,敬请阅读。
计算机编程语言是计算机专业教育中非常重要的一个方向。在大学计算机专业的课程设置中,编程语言的教学往往从本科一年级下学期或二年级上学期就开始了。在这一背景下,一般的语言特性固然可以顺利讲授,但教学中也会涉及到很多其他专业知识如内存分配、数据结构、数据库等,完全超出学生的学习范围。如果不补充这些知识点,会使学生转移注意力,甚至丧失兴趣点,影响到接受知识的效率。教师需要随时根据课堂上学生的反馈,延伸讲解一些必要的知识点,才能使学生能充分理解所授知识点,确保教学质量。2020年初的肺炎疫情使得在线教学成为重要的授课手段,然而在线课堂上教师很难及时掌握学生的动态,从而忽略学生对陌生知识点的理解需求,最终影响到教学效果。为此,在“软件构造基础———c#程序设计”课程组教学实践基础上,本文提出利用知识图谱技术来为学生补充陌生知识点的方案,通过对授课内容和听课学生的知识结构进行分析,整理出相关的知识点,在课程讲授过程中,作为独立知识点推送给各位学生,为其补充关联知识。在充分调研课程领域本体模型及其实现的基础上,课程组应用知识图谱(knowledgegraph)设计开发了C#课程学习导航系统,并将其附加到现有在线教学平台应用于在线教学中。通过对学生的课堂测试和问卷调查,课程组发现该技术有效提升了在线教学的授课效率。
一、课程知识本体设计
知识图谱本质上是一个结构化的语义知识库,以符号形式描述客观世界中的概念及其相互的逻辑依存关系,其基本的组成单位为两种形式的知识三元组,即<实体1、关系、实体2>和<实体、属性、属性值>,实体间通过关系相互联结,构成网状的知识结构[1]。从逻辑上看,知识图谱由模式层(schemalayer)和数据层(datalayer)构成,其中的模式层充当知识图谱的概念模型和逻辑基础,对知识图谱的数据层进行规范和约束。通常采用本体作为知识图谱的模式层,借助本体定义的规则和公理来约束知识图谱的数据层;知识图谱的数据层则是本体(图谱模式层)的实例,以<实体1、关系、实体2>或<实体、属性、属性值>三元组的形式存储各种事实(知识),形成一个图状的语义知识库,其中的基本元素是各个实体,具体来说包括课程的章、节、知识点名称等;关系则是其中某两个实体之间的语义关系,是模式层所定义逻辑关系的实例;属性是对实体的说明,表达实体与属性值间的映射。设计过程中,课程组将“软件构造基础———C#程序设计”课程中包含的教学知识作为图谱数据层的具体内容,将章、节、知识点等名称(概念)作为图谱模式层的内容,通过定义课程知识图谱中模式层应包含的概念及它们之间的关系来确定课程知识图谱的逻辑结构,从而获得该图谱的本体结构。课程知识本体的设计工作重点考虑两个方面,即知识的逻辑结构体系,以及学习导航系统对课程知识图谱的功能需求。课程组参考核心教材唐大仕编著的《C#程序设计教程(第2版)》[2],将课程所包含的知识点集合按教材大纲划分为三个级别的学习单元(第一级对应章、第二级对应节、第三级对应知识点),同时提取多种关联关系进行语义标注,生成一个较为复杂的知识网络[3]。此外,在课程学习导航系统中,课程知识图谱主要实现两个方面的功能支持,一是为学生选择合适的学习内容提供重要参考依据,二是帮学生推荐合理的学习路径。如图1所示,具体设计中课程组将课程知识本体设计为包含章、节、知识点三种级别知识单元的结构,同时标注出知识单元之间存在的三种关系,即包含关系、相关关系和顺序关系。例如,章与节、节与知识点间具有上下级(第一级、第二级、第三级)的包含关系,每一章包含多个节,每一节包含多个知识点;章与章、节与节、知识点与知识点之间存在顺序关系,即学习某一章、某一节或某一知识点时需要具备其他若干个章、节或知识点单元的学习基础,需要先行开展基础知识的学习;知识点与知识点间存在相关关系,即两个知识点彼此具有千丝万缕的联系,通常需要同时学者来加深理解、提升知识接受水平。基于以上设计思路进行课程知识本体的结构设计,可利用各类知识单元之间的逻辑依存关系生成各种满足特定教学需求的学习路径,为课程学习导航系统的不同用户提供个性化学习服务。
二、课程知识图谱构建
课程组以“软件构造基础———C#程序设计”课程为例,基于本体结构研究和设计,构建一个课程知识图谱实例。知识图谱主要采用自顶向下的方式由课程组教师构建,先确定知识图谱模式层中的各级概念,再与从开放链接的数据源中提取出来的实体、属性和关系等知识要素进行关联。图2所示为C#课程知识图谱构建的流程,主要阶段包括:基础数据获取、知识自动/半自动抽取、知识融合与表示、知识加工(实体对齐、标准表示、知识推理与发现等)。
(一)前期准备
在构建课程知识图谱之前,课程组充分调研当前知识图谱实现技术及其工具集,完成构建工具、存储方式、支撑数据等选择。目前,本体开发工具包括的美国斯坦福大学的Protégé和Ontolingua、德国卡尔斯鲁厄大学的OntoEdit和KAON、英国的WebOnto、西班牙马德里理工大学的WebODE等。本文采用Protégé作为课程本体构建和编辑工具,采用OWL(webontologylanguage)格式文件存储课程知识图谱。考虑C#程序设计课程知识图谱设计具有较强的专业性要求,且涉及教学目标等知识,因此图谱的初步构建工作主要依赖于课程的专任教师。此外,课程知识图谱构建的学习资源和知识素材主要取自课程教学大纲和核心教材,同时也参考了其它一些国内外优秀书籍,如JonSkeet著的《深入理解C#(第3版)》[4]、GaryMcLeanHall编著的《C#敏捷开发实践》[5]等。
(二)课程知识图谱主体内容实现
本课程知识图谱的内容主要由以下部分构成:类及其属性和关系的定义、实例及其属性和关系的标注[6]。依据“软件构造基础———C#程序设计”课程知识本体结构,课程知识图谱中含“章”“节”和“知识点”三个类,以及“包含”“相关”“顺序”三种语义关系。在定义课程知识图谱的逻辑结构基础上,课程组按照自顶向下的方式对本课程的教学大纲及核心教材《C#程序设计教程(第2版)》进行了深入分析,归纳本课程的知识单元,并划分为12章、64节、249个知识点;从配套教材中提炼出上述三级知识单元,依次转换为“章”“节”和“知识点”类的实体,并添加至课程知识图谱之中;然后,进一步标注这些实体之间存在的“包含”“相关”及“顺序”逻辑关系,初步形成一个完整的课程知识图谱。图3所示为章、节、知识点之间包含关系的可视化示例。
(三)知识图谱检验
“软件构造基础———C#程序设计”课程知识图谱构建完成后,还需要完成质量评估,即对知识图谱执行一致性和正确性的检验。其中,图谱的一致性检验包括语法一致性检验、语义一致性检验和用户自定义的一致性检验[6]。本课程知识图谱全程由Protégé编辑工具进行开发,因此不可能存在语法不一致的问题;同时,在本知识图谱中只存在“章”“节”和“知识点”三级概念,概念之间的关系比较明确,也基本不会产生冲突;实体之间的关系存在包含关系、相关关系和顺序关系三种,其中包含关系依赖于教材大纲,十分明确没有歧义,相关关系具有对称性,基本不会产生不一致性,而对于可能出现不一致性问题的实体间的顺序关系,可使用Protégé工具对课程知识图谱进行简单的推理,检验出可能存在的不一致情况。
三、基于知识图谱的学习导航系统研发
学习导航系统为具有不同知识接受能力的学生提供适配的学习服务,这种个性化的适配主要体现在课程内容(学习素材)呈现和知识导航(学习路径)支持两方面[7]。其中,适配课程内容呈现表现为不同学习能力(知识接受能力)的学生在点击同一个知识点时,看到的学习素材内容并不一样,而会根据学生当前的知识基础有所区别;适配知识导航支持则表现为具有不同学习能力、不同知识基础的学生在访问同一个知识单元时,看到的学习内容的学习次序(跳转链接)并不相同,会根据学生已掌握的知识单元学习历史记录进行调整。
(一)课程内容呈现
课程知识图谱可根据学生的知识学习和接受能力,为其筛选合适的学习内容以及不同形式的知识素材。主要过程如下:从课程知识图谱中提取出知识单元(含章/节/知识点)形成目录导航树,供学生从中选取某一知识单元作为学习目标;判断学生是否已掌握当前的知识单元;将学生尚未掌握的知识单元添加至学生的学习集合中,并基于关联关系从课程的知识图谱中提取其相关的基础性知识(即该知识单元的前驱知识单元),并从学习资源中检索出对应的知识素材,供后续使用。
(二)知识导航支持
依据课程的知识图谱,可自动生成学生的学习路径,实现课程学习资源和素材的快速导航,具体过程包括:提取学习资源涵盖的知识点集合;根据课程知识图谱中知识点之间的逻辑依存关系,判断知识点相对的前驱后继情况;生成各知识素材的学习顺序。本文设计的智能学习导航为用户提供基于定制学习内容生成的高效学习路径,其中C#程序设计课程知识图谱是支持适配学习内容呈现和导航的关键。课程知识图谱作为知识内容组织模型,存储课程知识实体以及实体间关系等数据,并将知识点之间隐含的抽象关系以可视化的形式呈现出来;而学习导航系统从课程搜集整理的基础数据(教学素材)中搜索相关联的知识实例,并基于专职任课教师预先抽取的相关知识实例与实体之间的关系生成结构化的知识点图谱。如图4所示,基于C#程序设计课程知识图谱构建的学习导航系统采用模型—视图—控制器(modelviewcontroller,MVC)开发模式,采用Jena语义网应用框架实现模型层数据存储,采用ECharts开源可视化库实现视图层的可视化界面,并采用Python实现控制器层的业务逻辑处理。
四、试验及分析
项目组将采用课程知识图谱技术的C#课程学习导航系统应用于“软件构造基础———C#程序设计”课程的教学实践中。将40名选修本课程学生分为甲、乙两组,以第二章合计25个知识点为测试项,甲组20名学生使用学习导航系统,乙组20名学生未使用学习导航系统,完成第二章内容学习后通过标准化试题测试两组学生对知识点的掌握情况。图5所示为知识点学习效果对比实验结果,数据显示使用本文知识图谱学习导航系统的甲组学生平均成绩为88.4,而未使用学习导航系统的乙组学生平均成绩为79.2,说明知识图谱对提高学生本课程的学习效率有一定帮助。
五、结语
“软件构造基础———C#程序设计”课程在线教学中存在互动方式有限、无法切实了解学生听课效果等问题,为达到预期教学目标,构建课程学习导航系统以提供个性化知识学习服务是一个非常必要的解决方案。然而,学习导航系统的研发依然面临很多技术挑战,其中如何针对每位学生对课程知识理解掌握的实际情况为其规划更高效的学习路径十分关键,课程知识图谱恰好可以满足这一需求。为此,课程组将知识图谱技术引入C#课程学习导航系统研发之中,并在软件工程专业的课程教学中进行了应用实践,对比实验表明,基于知识图谱的课程学习导航系统能克服纸质教材知识素材分散性的不足,有效促进关联知识的学习和记忆,进一步提高学生对课程知识点的掌握度。当前课程知识图谱的构建在很大程度上还依赖于学科专家的筛选处理,而实现课程知识图谱的全程自动化构建对于推动知识服务发展具有十分重大的意义。未来,课程组将围绕上述课题以及知识图谱的高效应用展开进一步的研究。
参考文献:
[1]刘峤,李杨,段宏,等.知识图谱构建技术综述[J].计算机研究与发展,2016(3):582-600.
[2]唐大仕.C#程序设计教程[M].2版.北京:清华大学出版社,2018.
[3]黄焕,元帅,何婷婷,等.面向适应性学习系统的课程知识图谱构建研究———以“Java程序设计基础”课程为例[J].现代教育技术,20196(12):89-95.
[4]SKEETJ.深入理解C#[M].3版.北京:人民邮电出版社,2014.
[5]HALLML.C#敏捷开发实践[M].北京:人民邮电出版社,2016.
[6]赵呈领,黄志芳,万力勇,等.基于初中物理课程的学科领域本体库构建研究[J].电化教育研究,2014(8):64-70.
[7]何克抗.促进个性化学习的理论、技术与方法———对美国《教育传播与技术研究手册(第四版)》的学习与思考之三[J].开放教育研究,2017(2):13-21.
作者:何政 叶刚 单位:武汉大学计算机学院