PST: Measuring Skill Proficiency in Programming Exercise Process via Programming Skill Tracing

基本信息

SIGIR ’22:Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval

博客贡献人

柴进

作者

Ruixin Li, Yu Yin, Le Dai, Shuanghong Shen, et.al

标签

能力评估,智能教育,编程技能

摘要

    编程已经成为当今个人的一项重要技能。对于提高个人编程技能的需求,跟踪编程技能熟练程度变得越来越重要。然而,很少有研究者关注评估学习者的编程技能。现有的关于学习者能力画像的研究大多只利用练习结果,而忽略了编程练习过程中包含的丰富行为信息

    因此,本文提出了一个模型来衡量编程练习过程中的技能熟练程度,称为编程技能追踪(PST)。具体而言,本文作者设计了代码信息图(Code Information Graph,CIG)来表示学习者解代码(solution code) 的特征,并设计了代码追踪图(Code Tracing Graph,CTG)来衡量相邻提交代码之间的变化。此外,为了获得更细粒度的评估,本文将编程技能分为编程知识和编码能力两个方面。

    最后,本文进行了各种实验来验证PST模型的有效性和可解释性。

问题定义

    本文提出一个衡量编程练习过程中的技能熟练程度的模型是出于:

  • 编程已经成为个人越来越重要的技能,在练习过程中,跟踪学习者编程技能的熟练程度很重要
  • 编程练习过程与一般练习过程大有不同

    如图1(a)所示,在一般练习过程中,每个学习者按顺序回答练习问题,每个问题只有一次机会回答,可以通过认知诊断、知识追踪来评估其能力。相比之下,编程学习过程允许学习者通过迭代过程解决问题,在每个练习中,学习者可以提交他们的代码,获得反馈,并迭代地修改他们的解,如图1(b)所示。

    由此,本文认为与一般练习(如多项选择练习)不同,编程练习中,学习者的熟练程度不仅反映在他们是否正确回答练习上,还直接反映在他们提交的代码中(显示他们的编程知识),以及在迭代过程中(显示他们解决问题的编码能力)。同时,整个过程产生的每个学习者的行为数据也更加丰富。

在这里插入图片描述

    据此,文中作者提出了评估编程技能熟练程度的三个挑战:

  • 如何更好对学生代码进行代码表示
  • 如何研究和建模学习者的解决方案迭代过程。例如,解决方案最初是如何构建的,学习者根据什么决定在代码中修改哪里
  • 决定编程技能的因素有知识掌握和解决问题的能力两个方面,如何在评估建模中将两者区分

    为了对编程练习过程进行建模,作者做了如下新的定义:

学习序列:与一般的知识追踪练习序列不同,本文将编程练习过程定义为在一段时间内同一个练习提交的练习序列

编程技能熟练程度测量问题:给定每个学习者从编程练习过程步骤1到N的历史编程练习过程日志,来衡量学习者的编程技能熟练程度。

方法

    本文提出了编程技能跟踪(Programming Skill Tracing, PST)模型来衡量PEP中的编程技能熟练程度。主要由四部分组成:代码表示嵌入,解构建,解迭代,以及预测。

在这里插入图片描述

代码表示嵌入(Embedding)

    首先提出代码信息图(CIG)来表示学习者在编程练习中解的特征(CIG是一种基于图的代码表示方法,能够捕捉学习者代码的结构和语义特征,并且通过增加数据流边和错误信息边,突出解的特殊性)。然后,还定义了基于CIG的代码跟踪图(CTG)来捕捉学习者解迭代中的变化,即度量特定编程练习过程中相邻提交之间的变化。

    然后,使用GGNN通过预训练任务来学习CIG的解信息嵌入 c i g i cig_i cigi和CTG的解变化嵌入 c t g i ctg_i ctgi c i g i cig_i cigi e i , f i e_i,f_i ei,fi组成三元组,表示完整的解信息 C i C_i Ci,其中 e i e_i ei表示练习信息, f i f_i fi表示判题结果信息。上一步的 C i − 1 C_{i-1} C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值