Improving Assessment of Programming Pattern Knowledge through Code Editing and Revision

Sara Nurollahian, Anna N. Rafferty, E. Wiese
{"title":"Improving Assessment of Programming Pattern Knowledge through Code Editing and Revision","authors":"Sara Nurollahian, Anna N. Rafferty, E. Wiese","doi":"10.1109/ICSE-SEET58685.2023.00012","DOIUrl":null,"url":null,"abstract":"How well do code-writing tasks measure students’ knowledge of programming patterns and anti-patterns? How can we assess this knowledge more accurately? To explore these questions, we surveyed 328 intermediate CS students and measured their performance on different types of tasks, including writing code, editing someone else’s code, and, if applicable, revising their own alternatively-structured code. Our tasks targeted returning a Boolean expression and using unique code within an if and else.We found that code writing sometimes under-estimated student knowledge. For tasks targeting returning a Boolean expression, over 55% of students who initially wrote with non-expert structure successfully revised to expert structure when prompted - even though the prompt did not include guidance on how to improve their code. Further, over 25% of students who initially wrote non-expert code could properly edit someone else’s non-expert code to expert structure. These results show that non-expert code is not a reliable indicator of deep misconceptions about the structure of expert code. Finally, although code writing is correlated with code editing, the relationship is weak: a model with code writing as the sole predictor of code editing explains less than 15% of the variance. Model accuracy improves when we include additional predictors that reflect other facets of knowledge, namely the identification of expert code and selection of expert code as more readable than non-expert code. Together, these results indicate that a combination of code writing, revising, editing, and identification tasks can provide a more accurate assessment of student knowledge of programming patterns than code writing alone.","PeriodicalId":68155,"journal":{"name":"软件产业与工程","volume":"34 1","pages":"58-69"},"PeriodicalIF":0.0000,"publicationDate":"2023-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"软件产业与工程","FirstCategoryId":"1089","ListUrlMain":"https://doi.org/10.1109/ICSE-SEET58685.2023.00012","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

How well do code-writing tasks measure students’ knowledge of programming patterns and anti-patterns? How can we assess this knowledge more accurately? To explore these questions, we surveyed 328 intermediate CS students and measured their performance on different types of tasks, including writing code, editing someone else’s code, and, if applicable, revising their own alternatively-structured code. Our tasks targeted returning a Boolean expression and using unique code within an if and else.We found that code writing sometimes under-estimated student knowledge. For tasks targeting returning a Boolean expression, over 55% of students who initially wrote with non-expert structure successfully revised to expert structure when prompted - even though the prompt did not include guidance on how to improve their code. Further, over 25% of students who initially wrote non-expert code could properly edit someone else’s non-expert code to expert structure. These results show that non-expert code is not a reliable indicator of deep misconceptions about the structure of expert code. Finally, although code writing is correlated with code editing, the relationship is weak: a model with code writing as the sole predictor of code editing explains less than 15% of the variance. Model accuracy improves when we include additional predictors that reflect other facets of knowledge, namely the identification of expert code and selection of expert code as more readable than non-expert code. Together, these results indicate that a combination of code writing, revising, editing, and identification tasks can provide a more accurate assessment of student knowledge of programming patterns than code writing alone.
通过代码编辑和修订改进对编程模式知识的评估
代码编写任务在多大程度上衡量了学生对编程模式和反模式的知识?我们如何才能更准确地评估这些知识?为了探索这些问题,我们调查了328名中级CS学生,并测量了他们在不同类型任务上的表现,包括编写代码,编辑别人的代码,以及(如果适用的话)修改自己的替代结构代码。我们的任务的目标是返回一个布尔表达式,并在if和else中使用唯一的代码。我们发现编写代码有时低估了学生的知识。对于以返回布尔表达式为目标的任务,超过55%最初使用非专家结构编写的学生在提示下成功地修改为专家结构——即使提示不包括如何改进代码的指导。此外,超过25%最初编写非专业代码的学生可以正确地将其他人的非专业代码编辑成专家结构。这些结果表明,非专家代码并不是对专家代码结构存在深刻误解的可靠指标。最后,尽管代码编写与代码编辑相关,但这种关系很弱:将代码编写作为代码编辑的唯一预测因子的模型解释了不到15%的方差。当我们包含反映知识的其他方面的额外预测因子时,即专家代码的识别和专家代码的选择比非专家代码更具可读性,模型的准确性就会提高。总之,这些结果表明,代码编写、修改、编辑和识别任务的组合可以比单独编写代码更准确地评估学生的编程模式知识。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
676
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信