Using NLP to Quantify Program Decomposition in CS1

Using NLP to Quantify Program Decomposition in CS1
复制标题

使用 NLP 量化 CS1 中的程序分解

DOI:
10.1145/3491140.3528272
复制
发表时间:
2022
期刊:
Proceedings of the Ninth ACM Conference on Learning @ Scale
影响因子:
--
通讯作者:
John C. Mitchell
John C. Mitchell
中科院分区:
--
文献类型:
--
作者:
Charis Charitsis;C. Piech;John C. Mitchell

文献摘要

被引文献

相似文献

分解是一种解决问题的技术,对软件开发至关重要。然而,它被认为是学习者最难掌握的编程技能。研究人员已经在编程入门课程中通过引导性实验、案例研究和调查研究了分解。我们相信,机器学习和自然语言处理(NLP)等科学领域的快速发展为更可扩展的方法开辟了机会。我们研究了与问题相关的实体和功能分解之间的关系。我们使用自动化系统从250名学生的CS1编程作业中收集78,500个代码快照,然后应用NLP技术量化学习者将问题分解为一系列更小,更直接的任务的能力。我们比较不同的行为,并在一定的范围内评估分解对交付解决方案所需时间、复杂性以及学生在作业和课程考试中的表现的影响。最后,我们讨论了我们的结果对教学和未来研究的意义。
Decomposition is a problem-solving technique that is essential to software development. Nonetheless, it is perceived as the most challenging programming skill for learners to master. Researchers have studied decomposition in introductory programming courses through guided experiments, case studies, and surveys. We believe that the rapid advancements in scientific fields such as machine learning and natural language processing (NLP) opened up opportunities for more scalable approaches. We study the relationship between problem-related entities and functional decomposition. We use an automated system to collect 78,500 code snapshots from two CS1 programming assignments of 250 students and then apply NLP techniques to quantify the learner's ability to break down a problem into a series of smaller, more straightforward tasks. We compare different behaviors and evaluate at scale the impact of decomposition on the time it takes to deliver the solution, its complexity, and the student's performance in the assignment and the course exams. Finally, we discuss the implications of our results for teaching and future research.