TY - GEN
T1 - On Students' Usage of Tracing for Understanding Code
AU - Hassan, Mohammed
AU - Zilles, Craig
N1 - This material is based upon work supported by the National Science Foundation under Grant No. 2121424. This work was supported in part by Mohammed Hassan\u2019s SURGE and graduate college fellowships at the University of Illinois.
PY - 2023/3/2
Y1 - 2023/3/2
N2 - Explain in Plain English (EiPE) questions evaluate whether students can understand and explain the high-level purpose of code. We conducted a qualitative think-aloud study of introductory programming students solving EiPE questions. In this paper, we focus on how students use tracing (mental execution) to understand code in order to explain it. We found that, in some cases, tracing can be an effective strategy for novices to understand and explain code. Furthermore, we observed three problems that prevented tracing from being helpful, which are 1) not employing tracing when it could be helpful (some struggling students explained correctly after the interviewer suggested tracing the code), 2) tracing incorrectly due to misunderstandings of the programming language, and 3) tracing with a set of inputs that did not sufficiently expose the code's behavior (upon interviewer suggesting inputs, students explained correctly). These results suggest that we should teach students to use tracing as a method for understanding code and teach them how to select appropriate inputs to trace.
AB - Explain in Plain English (EiPE) questions evaluate whether students can understand and explain the high-level purpose of code. We conducted a qualitative think-aloud study of introductory programming students solving EiPE questions. In this paper, we focus on how students use tracing (mental execution) to understand code in order to explain it. We found that, in some cases, tracing can be an effective strategy for novices to understand and explain code. Furthermore, we observed three problems that prevented tracing from being helpful, which are 1) not employing tracing when it could be helpful (some struggling students explained correctly after the interviewer suggested tracing the code), 2) tracing incorrectly due to misunderstandings of the programming language, and 3) tracing with a set of inputs that did not sufficiently expose the code's behavior (upon interviewer suggesting inputs, students explained correctly). These results suggest that we should teach students to use tracing as a method for understanding code and teach them how to select appropriate inputs to trace.
KW - explain in plain english
KW - think-aloud
KW - tracing
UR - http://www.scopus.com/inward/record.url?scp=85149855431&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85149855431&partnerID=8YFLogxK
U2 - 10.1145/3545945.3569741
DO - 10.1145/3545945.3569741
M3 - Conference contribution
AN - SCOPUS:85149855431
T3 - SIGCSE 2023 - Proceedings of the 54th ACM Technical Symposium on Computer Science Education
SP - 129
EP - 135
BT - SIGCSE 2023 - Proceedings of the 54th ACM Technical Symposium on Computer Science Education
PB - Association for Computing Machinery
T2 - 54th ACM Technical Symposium on Computer Science Education, SIGCSE 2023
Y2 - 15 March 2023 through 18 March 2023
ER -