SelfCode
收藏github2023-05-17 更新2024-05-31 收录
下载链接:
https://github.com/jeevanchaps/SelfCode
下载链接
链接失效反馈官方服务:
资源简介:
SelfCode是一个包含1,770对学生和专家自我解释JAVA代码示例以及专家提供的语义相似性判断的标注语料库。该数据集用于训练人工智能/机器学习方法来自动评估学生的解释,从而理解学生的当前知识状态,识别可能的误解,并提供反馈。
SelfCode is a corpus comprising 1,770 pairs of student and expert self-explanations of JAVA code examples, along with expert-provided annotations of semantic similarity judgments. This dataset is utilized to train artificial intelligence/machine learning methods for automatically evaluating student explanations, thereby understanding the students' current knowledge state, identifying potential misconceptions, and providing feedback.
创建时间:
2023-04-10
原始信息汇总
数据集概述
数据集名称
SelfCode
数据集描述
SelfCode是一个包含1,770对学生和专家自我解释JAVA代码示例的语料库,附有专家提供的语义相似性评分。该数据集旨在用于训练人工智能/机器学习方法,以自动评估学生在代码理解任务中的自我解释。
数据集示例
| Line of Code | Crowd Sourced Explanation | Expert Explanation | Annotation Score |
|---|---|---|---|
| int [] arr = { 1, 2, 3}; | Declares the array we want to use for our assignment | We initialize the array of type int to hold the specified numbers. | 4 |
| int num = 15; | variable decleration: declares the number we are trying to divide | We could initialize it to any positive integer greater than 1. | 1 |
| divisor += 1; | if the loop condition is true, then we increment the divisor by 1 | When the divisor is not a factor of the number, we increment the variable divisor by 1. | 3 |
| int seconds = scan.nextInt(); | Get the number entered by the user. | We read the seconds by calling the nextInt() method because this input is an integer. | 2 |
| System.out.println("Enter an integer: "); | Ask the user to enter an integer. | We prompt the user to enter an integer. | 5 |
数据集统计
| Annotation Label | No. of sentence pairs |
|---|---|
| 1 | 529 |
| 2 | 507 |
| 3 | 419 |
| 4 | 253 |
| 5 | 62 |
基准模型结果
模型M1(仅含文本特征)
| Models | Precision | Recall | F1-score | Accuracy |
|---|---|---|---|---|
| Logistic Regression | 0.30 | 0.27 | 0.25 | 36.91% |
| Decision Tree | 0.30 | 0.277 | 0.29 | 33.24% |
| Support Vector Machine | 0.18 | 0.21 | 0.15 | 30.69% |
| Naive Bayes | 0.36 | 0.35 | 0.32 | 37.93% |
模型M2(含文本特征和语义相似性评分)
| Models | Precision | Recall | F1-score | Accuracy |
|---|---|---|---|---|
| Logistic Regression | 0.37 | 0.37 | 0.36 | 47.31% |
| Decision Tree | 0.32 | 0.33 | 0.32 | 37.25% |
| Support Vector Machine | 0.18 | 0.21 | 0.15 | 30.92% |
| Naive Bayes | 0.43 | 0.41 | 0.40 | 46.40% |
引用信息
若使用SelfCode数据集,请引用以下出版物: bibtex @article{Chapagain_Risha_Banjade_Oli_Tamang_Brusilovsky_RUs, title = {SelfCode: An Annotated Corpus and a Model for Automated Assessment of Self-Explanation During Source Code Comprehension}, volume = {36}, url = {https://journals.flvc.org/FLAIRS/article/view/133385}, number = {1}, journal = {The International FLAIRS Conference Proceedings}, author = {Chapagain, Jeevan and Risha, Zak and Banjade, Rabin and Oli, Priti and Tamang, Lasang and Brusilovsky, Peter and Rus, Vasile} }
搜集汇总
数据集介绍

构建方式
SelfCode数据集的构建基于对学生在代码理解任务中的自我解释进行自动化评估的需求。该数据集包含了1,770对JAVA代码示例的学生解释与专家解释的句子对,并由专家提供了语义相似性评分。数据集的构建过程涉及从学生和专家处收集解释,并通过专家标注确保数据的质量和一致性。这种构建方式为后续的机器学习模型训练提供了高质量的标注数据。
特点
SelfCode数据集的特点在于其专注于代码理解任务中的自我解释评估,涵盖了广泛的JAVA代码示例。数据集中的每一对句子都经过专家标注,确保了语义相似性评分的准确性。此外,数据集还提供了丰富的统计信息,如不同评分等级的句子对数量,便于研究者进行深入分析。数据集的多样性和高质量标注使其成为训练和评估自动化评估模型的理想选择。
使用方法
SelfCode数据集的使用方法主要包括将其用于训练和评估自动化评估模型。研究者可以利用数据集中的句子对和语义相似性评分,开发基于文本特征或语义相似性得分的模型。数据集还提供了基线模型的结果,便于研究者进行对比和优化。通过引用相关文献,研究者可以确保其工作的透明性和可重复性,进一步推动代码理解任务中自我解释评估的研究进展。
背景与挑战
背景概述
SelfCode数据集由Jeevan Chapagain等人于2023年提出,旨在解决编程教育中的代码理解自动化评估问题。该数据集包含1,770对JAVA代码示例的学生与专家自我解释句子对,并附有专家提供的语义相似性评分。通过这一数据集,研究人员能够训练人工智能和机器学习模型,自动化评估学生在代码理解任务中的自我解释,从而识别学生的知识状态和潜在误解。这一研究为自适应教育系统中的用户建模和个性化反馈提供了新的可能性。
当前挑战
SelfCode数据集面临的主要挑战包括:1) 自动化评估学生自我解释的准确性,尤其是在处理复杂代码逻辑时,模型的性能仍有待提升;2) 数据标注的复杂性,专家需要对大量句子对进行语义相似性评分,这一过程耗时且容易引入主观偏差;3) 模型的泛化能力,现有的基线模型在精度和召回率上表现有限,尤其是在处理多样化的代码解释时,模型的鲁棒性仍需进一步优化。
常用场景
经典使用场景
SelfCode数据集在编程教育领域具有广泛的应用,尤其是在自动评估学生对代码理解的自我解释方面。通过提供大量带有专家注释的学生解释与代码片段,该数据集为开发自动化评估模型提供了丰富的训练数据。研究人员可以利用这些数据训练机器学习模型,自动评估学生在代码理解任务中的表现,从而为个性化教育系统提供支持。
解决学术问题
SelfCode数据集解决了编程教育中自动评估学生代码理解能力的难题。传统的编程评估通常局限于代码的正确性,而忽略了学生对代码逻辑的理解。该数据集通过提供学生与专家的解释对,并结合语义相似性评分,使得研究人员能够开发出能够自动评估学生解释质量的模型。这不仅有助于识别学生的知识盲点,还能为教师提供有针对性的反馈,从而提升教学效果。
衍生相关工作
基于SelfCode数据集,研究人员已经开发了多种自动化评估模型,如基于逻辑回归、决策树和支持向量机的模型。这些模型通过结合文本特征和语义相似性评分,显著提升了评估的准确性。此外,该数据集还激发了更多关于代码理解自动评估的研究,推动了编程教育领域的技术进步。相关研究不仅扩展了自动化评估的应用范围,还为未来的智能教育系统提供了理论基础和技术支持。
以上内容由遇见数据集搜集并总结生成



