一种基于用户行为的编程能力评估方法技术

技术编号:17304982 阅读:20 留言:0更新日期:2018-02-18 23:33
一种基于用户行为的编程能力评估方法,所述方法包括:(1)采集编程过程数据;(2)提取所述编程过程数据中编程行为特征;(3)对所述编程行为特征进行数据处理;(4)建立训练模型;(5)根据所述训练模型对处理后的所述数据进行实验,并生成实验结果;(6)根据所述实验结果生成实验结论。

An evaluation method of programming ability based on user behavior

An evaluation method based on user behavior programming ability, the method comprises the following steps: (1) the process of data acquisition programming; (2) the extraction behavior of the programming programming process data characteristics; (3) on the behavioral characteristics of the data processing program; (4) establish a training model; (5) according to the the training model for experiment on the data processing, and generate the experimental results; (6) according to the experimental results of the experimental results generated.

【技术实现步骤摘要】
一种基于用户行为的编程能力评估方法
本专利技术涉及一种能力评估方法,特别是一种基于用户行为的编程能力评估方法。
技术介绍
目前主流的评估方法,主要分为两类:基于动态运行测试的评估方法和基于静态分析的评估。基于动态运行测试的方法包括:记录testcase通过率,分析代码编译出错次数等。基于静态分析的评估方法包括:软件工程矩阵,程序予以分析,程序相似度,最佳实践,代码风格,代码健壮性等。现有的两种评估方法,均存在较为明显的缺陷,如评估成本高,评估过程时间久,评估结果不全面,无法反应被评估者全面的编程能力。
技术实现思路
为解决上述问题,本专利技术的一个实施例提供了一种基于用户行为的编程能力评估方法,所述方法包括:(1)采集编程过程数据;(2)提取所述编程过程数据中编程行为特征;(3)对所述编程行为特征进行数据处理;(4)建立训练模型;(5)根据所述训练模型对处理后的所述数据进行实验,并生成实验结果;(6)根据所述实验结果生成实验结论。上述的基于用户行为的编程能力评估方法,(1)所述采集编程过程数据,具体包括:对用户在所述编程过程中的行为进行采集,并对数据进行预处理。上述的基于用户行为的编程能力评估方法,(2)所述提取所述编程过程数据中编程行为特征的具体步骤如下:WEB浏览器发送编译请求代码至服务器;所述服务器发送符合所述编译请求代码的类型的编译器的开发环境信息至所述WEB浏览器,并且在所述WEB浏览器中形成与所述开发环境信息对应的开发环境;所述WEB浏览器发送在所述开发环境下编写的源代码至所述编译器;所述编译器发送运行所述源代码的运行结果至所述WEB浏览器;所述WEB浏览器将编写源代码过程的过程信息实时发送至服务器,所述服务器根据所述过程信息生成并存储记录文件,所述WEB浏览器与所述服务器之间通过websocket实时通信。上述的基于用户行为的编程能力评估方法,所述过程信息包括:用时、间隔用时,代码编辑活动的编辑内容、工作量;通过统计算法,得到所述编译事件类型特征中基础事件的统计,解决编译错误的行为模式,编译错误的发生模式,编译错误的类型模式;通过统计算法,得到所述组合特征包括中事件放到用户不同编辑阶段中进行统计信息,事件与用户所处编程环境相结合信息。上述的基于用户行为的编程能力评估方法,所述基础事件的统计包括插入、删除、复制和粘贴。上述的基于用户行为的编程能力评估方法,(3)所述编程行为特征进行数据处理包括:无效的编译提交、含注释操作的编译提交及同一次编译提交的编译错误;其中,无效的编译提交为去除“无效编译事件”的发生次数;含注释操作的编译提交包括:通过所述行为特征的正则表达式找出每次编译事件所对应的代码快照中的注释内容,根据编译事件对的组织形式,对编译事件所对应的代码快照进行对比,从而辨认识别出编译提交所属的类型;根据是否包含注释内容把一次编译提交分为仅包含注释内容的编译提交和包含注释内容以及其他代码改动的编译提交;若编译提交属于仅包含注释内容的编译提交的情况,则这次编译提交事件需要被标注为无效编译提交;若编译提交属于包含注释内容以及其他代码改动的编译提交的情况,则这次编译提交事件仍然有效;同一次编译提交的编译错误为:在一次编译提交中,同一种类型的编译错误数量最多只计两次封顶,而不是全部计入统计。上述的基于用户行为的编程能力评估方法,(4)所述建立训练模型的具体步骤如下,编程过程建模首先,根据如下公式,S=(s0,s1,……,si,……,sn)其中,s0为编程过程的起始用程序的初始状态;sn为编程过程的最终的程序状态;其次,根据如下公式P=(s0,A1,e1,sI,……,Ai,ei,si,……,An,en,sn);及Ai=(a1,a2,……,ai,……,an)其中,s表示程序某一时刻的状态,n表示用户提交编译事件的次数,ei表示si与si+1之间的提交编译事件,Ai表示si与si+1之间的编程活动过程,即由一系列编程活动a组成的有序行为序列。上述的基于用户行为的编程能力评估方法,(5)所述根据所述训练模型对处理后的数据进行实验,并生成实验结果具体包括:对不同分类器进行打分的准确率和预测分和时机评价分的差值的分布。上述的基于用户行为的编程能力评估方法,(6)所述根据所述实验结果生成实验结论,包括:预测准确性、计算高分段和低分段的样本区分能力和二类用户行为特征集的算法及效果预测。采用本申请所提供的基于用户行为的编程能力评估方法,不但评估结果准确有效,而且节省成本。附图说明图1为依据本专利技术一实施例中的基于用户行为的编程能力评估方法的流程图。具体实施方式图1为依据本专利技术一实施例中的基于用户行为的编程能力评估方法的示意图。基于用户行为的编程能力评估方法包括:1、用户访问前端网页,在前端网页上选择编程所需要的编程语言的种类。例如网页上含有C++、JAVA等编程语言的选项,并且含有与这些编程语言相关联的请求代码。例如使用“int”作为C++语言的请求代码,使用“public”作为JAVA语言的请求代码。假如用户选择了C++语言进行编程。因此用户一旦选择了C++语言,网页随之就会将“int”这个请求代码发送至服务器中。在服务器中存储有含有多个编译器,每个编译器对应一种语言。这里还是以C++和JAVA语言为例。在服务器中含有这两个编译器,那么服务器就会根据请求代码“int”寻找C++语言的编译器,找到之后将C++语言的编译器的编程环境发送回网页中。用户在网页中,能够在这种编程环境下使用C++语言进行编程。用户编程完毕之后,将C++的源代码发送至上面步骤所选好的C++编译器中。编译器运行该C++源代码,并把运行结果发送回网页上面显示出来。在上述编程过程中,用户可以随时切换C++至其他编程语言。切换之后的流程与使用C++语言编程的流程相同,这里不再赘述。由于上述编程过程,用户实在网页上实现的,无需在本地安装相应的编程语言。因此,免去了用户在更换终端时,需要重新安装编程语言的麻烦。在本申请中WEB浏览器与第一服务器之间通过websocket实时通信。然而并不以此为限,本领域技术人员可以根据实际情况使用其他时事通信方式,均在本申请所要求保护的范围内。本申请一实施例中,用户在编写源代码的过程被实时的发送到另一服务器中,并且存储在该服务器中。该编写过程包括:插入、删除、复制、粘贴、解决编译错误的行为、编译错误的发生或编译错误的类型等。WEB浏览器与另一服务器之间通过websocket实时通信。2、提取所述编程过程数据中编程行为特征。3、对所述编程行为特征进行数据处理。4、建立训练模型。5、根据所述训练模型对处理后的所述数据进行实验,并生成实验结果。6、根据所述实验结果生成实验结论。在本申请一实施例中,所述采集编程过程数据,具体包括:对用户在所述编程过程中的行为进行采集,并对数据进行预处理。在本申请一实施例中,述过程信息包括:用时、间隔用时,代码编辑活动的编辑内容、工作量;通过统计算法,得到所述编译事件类型特征中基础事件的统计,解决编译错误的行为模式,编译错误的发生模式,编译错误的类型模式;通过统计算法,得到所述组合特征包括中事件放到用户不同编辑阶段中进行统计信息,事件与用户所处编程环境相结合信息。在本申请一实施例中,所述基础事件本文档来自技高网...
一种基于用户行为的编程能力评估方法

【技术保护点】
一种基于用户行为的编程能力评估方法,所述方法包括:(1)采集编程过程数据;(2)提取所述编程过程数据中编程行为特征;(3)对所述编程行为特征进行数据处理;(4)建立训练模型;(5)根据所述训练模型对处理后的所述数据进行实验,并生成实验结果;(6)根据所述实验结果生成实验结论。

【技术特征摘要】
1.一种基于用户行为的编程能力评估方法,所述方法包括:(1)采集编程过程数据;(2)提取所述编程过程数据中编程行为特征;(3)对所述编程行为特征进行数据处理;(4)建立训练模型;(5)根据所述训练模型对处理后的所述数据进行实验,并生成实验结果;(6)根据所述实验结果生成实验结论。2.根据权利要求1所述的基于用户行为的编程能力评估方法,其特征在于,(1)所述采集编程过程数据,具体包括:对用户在所述编程过程中的行为进行采集,并对数据进行预处理。3.根据权利要求1或2所述的基于用户行为的编程能力评估方法,其特征在于,(2)所述提取所述编程过程数据中编程行为特征的具体步骤如下:WEB浏览器发送编译请求代码至服务器;所述服务器发送符合所述编译请求代码的类型的编译器的开发环境信息至所述WEB浏览器,并且在所述WEB浏览器中形成与所述开发环境信息对应的开发环境;所述WEB浏览器发送在所述开发环境下编写的源代码至所述编译器;所述编译器发送运行所述源代码的运行结果至所述WEB浏览器;所述WEB浏览器将编写源代码过程的过程信息实时发送至服务器,所述服务器根据所述过程信息生成并存储记录文件,所述WEB浏览器与所述服务器之间通过websocket实时通信。4.根据权利要求3所述的基于用户行为的编程能力评估方法,其特征在于,所述过程信息包括:用时、间隔用时,代码编辑活动的编辑内容、工作量;通过统计算法,得到所述编译事件类型特征中基础事件的统计,解决编译错误的行为模式,编译错误的发生模式,编译错误的类型模式;通过统计算法,得到所述组合特征包括中事件放到用户不同编辑阶段中进行统计信息,事件与用户所处编程环境相结合信息。5.根据权利要求4所述的基于用户行为的编程能力评估方法,其特征在于,所述基础事件的统计包括插入、删除、复制和粘贴。6.根据权利要求3所述的基于用户行为的编程能力评估方法,其特征在于,(3)所述编程行为特征进行数据处理包括:无效的编译提交、含注释操作的编...

【专利技术属性】
技术研发人员:郑萌
申请(专利权)人:北京猿圈科技有限责任公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1