Detecting the Reasons for Program Decomposition in CS1 and Evaluating Their Impact

PROCEEDINGS OF THE 54TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, VOL 1, SIGCSE 2023(2023)

引用 2|浏览31
暂无评分
摘要
Decomposition is considered one of the four cornerstones of computational thinking, which is essential to software development [36]. It requires the ability to assess a problem at a high level, develop a strategy to combat it, and then design a solution. Our study focuses on the metacognitive aspect of decomposition. We try to understand the learner's thought process and, specifically, what makes the novice programmer decide to break down a function. Researchers have studied decomposition in introductory programming courses through guided experiments, case studies, and surveys [23, 37]. In this work, we follow a different, more scalable approach. We develop an automated system to analyze 45,000 code snapshots from 168 students for a challenging CS1 programming assignment, detect the pivotal moments when they decide to decompose their programs, and identify what drives their decisions from the code. We then classify the students and study the relationship between the different categories, the code complexity, and the time to derive the final solution. We evaluate the impact of decomposition on the student's performance in the assignment and the course exams. Finally, we discuss the implications of our results for computing education.
更多
查看译文
关键词
CS1,program decomposition,function decomposition,metacognition,complexity,student performance,computing education
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要