Applications of Out-of-Domain Knowledge in Students' Reasoning about Computer Program State
- Author(s): Lewis, Colleen M.
- Advisor(s): diSessa, Andrea A.
- et al.
To meet a growing demand and a projected deficit in the supply of computer professionals (NCWIT, 2009), it is of vital importance to expand students' access to computer science. However, many researchers in the computer science education community unproductively assume that some students lack an innate ability for computer science and therefore cannot be successful learning to program. In contrast, I hypothesize that the degree to which computer science students make productive use of their out-of-domain knowledge can better explain the range of success of novices learning to program. To investigate what non-programming knowledge supports students' success, I conducted and videotaped approximately 40 hours of clinical interviews with 30 undergraduate students enrolled in introductory programming courses. During each interview, a participant talked as they solved programming problems, many of which were multiple-choice problems that were highly correlated with success on an Advanced Placement Computer Science exam. In the analysis of the interviews I focused on students' strengths rather than the typical decision to focus on students' weaknesses. I documented specific competencies of the participants and applied analytic tools from the Knowledge in Pieces theoretical framework (diSessa, 1993) to attempt to understand the source and nature of these competencies. I found that participants appeared to build upon several kinds of out-of-domain knowledge. For example, many students used algebraic substitution techniques when tracing the state of recursive functions. Students appeared to use metaphors and their intuitive knowledge of both iteration and physics to understand infinite loops and base cases. On the level of an individual students' reasoning, a case study analysis illustrated the ways in which a participant integrated her linguistic knowledge of "and" into her reasoning about the computer science command "and." In addition to identifying these specific applications of out-of-domain knowledge, this dissertation applies learning theories that had not previously been applied to computer science education. Through this application I extend the learning theories to the domain of computer science, propose refinements to the theories, and provide insights into participants' reasoning about particular computer science topics.