Neo-piagetian reasoning and abstraction: introducing low-level programming to novice students

Andrew Fishberg, Samuel A. Posner · Journal of computing sciences in colleges · 2015

This paper presents a qualitative analysis of how novice computer science students understand the relationship between programs written in high-level and low-level languages. Participants with high-level programming experience in Java or Python were asked to explain how low-level virtual machine programs written in Common Intermediate Language (CIL) implemented functionally equivalent Java or Python programs. Although the functional equivalence of these programs was made explicit, students tended to trace the CIL code without referring to the Java or Python code. We suggest that students may struggle to make connections between high-level and low-level programs because they reason about them with different levels of abstraction. Participants quickly abstracted a meaningful computation from the high-level code, but were limited to tracing specific values line-by-line through the low-level code. Our findings build upon recent neo-Piagetian work in computer science education by showing how an individual student may simultaneously reason at preoperational and concrete operational levels within the domain of computer science.

Read the paper · More papers on PaperTik