Scholars have argued that programming language acquisition is undertheorized, undermining the ability of educators and researchers to develop pedagogical practices, assessment and evaluation strategies, and research programs in introductory computing education. In this work, we describe a model for Programming Language Acquisition (PLA) that draws on theoretical and empirical work in Second Language Acquisition (SLA). First, we posit that students develop and utilize two forms of knowledge—implicit language knowledge and explicit language knowledge—when solving problems using programming. Second, we argue that developing these two forms of knowledge entails different cognitive and behavioral mechanisms during PLA. Finally, we present a hybrid model that conceptualizes programming knowledge as both rule-based and emergent from (in)comprehensible input that students encounter during learning activities. We then illustrate the core constructs in the model, as well as the theoretical relationships between those core constructs, using data from an ethnographic study of students’ learning in an introductory computing classroom. These episodes illustrate how students develop programming knowledge through both conscious rule acquisition and unconscious pattern recognition, demonstrating that programming can be viewed as a form of language production that involves both effortful and automatic cognitive processes. We conclude by outlining a research agenda for PLA informed by dynamic systems theory and SLA methodologies.
Zabner et al. (Sat,) studied this question.