Date of Award
12-2022
Document Type
Thesis
Degree Name
Master of Science (MS)
Department
Computer Science
Committee Chair/Advisor
Murali Sitaraman
Committee Member
Eileen Kraemer
Committee Member
Jason Hallstrom
Committee Member
Joseph Hollingsworth
Abstract
Code tracing is fundamental to students’ understanding of a program, and symbolic reasoning that entails learning to use assertions with abstract input and output values, as opposed to concrete values, enhances that understanding. Symbolic reasoning teaches students valuable abstraction and logic skills that will serve them well in all aspects of programming and their software
development careers.
We use lessons integrated into an online educational tool to supplement classroom instruction to help students learn symbolic reasoning. We explore two ways for students to learn about assertions: Writing assertions to capture the behavior of given code and solving Parsons-style problems in which statements are composed to produce behavior specified in assertions. A subsequent assessment tests students’ ability to select multiple assertions given code and to select the appropriate code fragment for given assertions.
The same experiment was conducted with two different populations: a large public R1 research institution and a public R2 Hispanic-Serving Institution (HSI). Overall the impacts were more pronounced at the larger institution with a bigger sample size. Students’ assessment scores showed that they could reason symbolically at both institutions. They did better at Parsons-style problems of matching code to assertions at both institutions, though the difference varied by code type. The two populations had different trends in their performance for conditional code questions as they were asked to select from among increasingly formal assertions. Students from the R1 institution had a strong downward trend, while students from the HSI maintained or slightly increased their performance. The analysis also yielded insight into student misconceptions and suggested directions for further research.
Recommended Citation
Blankenship, Sarah, "Learning to Reason About Code with Assertions: An Exploration with Two Student Populations" (2022). All Theses. 3950.
https://open.clemson.edu/all_theses/3950
Included in
Educational Assessment, Evaluation, and Research Commons, Educational Technology Commons, Software Engineering Commons