论文摘要
程序设计在线评测系统(Online Judge System,简称OJ)作为一个评判系统在程序设计竞赛和教学中扮演着重要的角色,国内已有很多大学开发了自己的在线评测系统,这些系统提供了大量的编程题目。目前,网络上也存在着很多由经验丰富的参赛人员编写解题报告,这些解题报告含有解决具体题目的程序代码资源。程序代码资源和编程题目可以看作是供学生学习及训练的学习材料,虽然这两种资源都存在于网络上,但它们之间并没有通过具体的超链接连在一起,也没有按其使用的程序设计知识组织成一个可供学生方便使用的学习材料。如果能够把程序代码资源和编程题目按一定的程序设计知识组织起来,那么学生可以根据程序设计知识选择合适的题目进行训练,也可以根据给出的解题报告进行学习,给学生的学习带来很大的方便性。本文结合国家自然科学基金项目“网络知识互联结构自主发育模型研究”,基于本体技术识别了网络上程序代码资源所使用的解题算法和数据结构并发现了两者之间的关联,最后把程序代码资源及其对应的编程题目按照它们所使用的解题算法和数据结构有序地组织成一份学习材料。本文按如下步骤展开:首先,通过整理常用的数据结构和解题算法的信号字符串,建立了关于数据结构和解题算法的本体知识库。该知识库主要由关于数据结构和解题算法的描述性知识和推理性知识构成。其次,通过与知识库中数据结构和解题算法信号的检索,为程序代码资源建立了包含了这些信号相关属性的本体实例,并提出了一种使用本体技术识别程序代码中数据结构和解题算法的方法。然后,根据知识库中的推理规则构建查询语句,推理得出程序代码使用的数据结构和解题算法,通过统计数据结构和解题算法在同一程序代码中出现的频数得出了两者的关联模型,通过选取了一定量的程序代码作为实验数据,验证了方法的可行性和正确性。最后,建立了网络连接原型系统,把网络上的程序代码资源及其对应的编程题目通过超链接技术连接起来,形成了一份按程序设计知识有序排列的学习材料,以帮助学习者进行个性化学习。