The Theory of Applied Mind of Programming
The Theory of Applied Mind of Programming (TAMP) provides a new model for describing how programmers think and learn. Historically, many students have struggled when learning to program. Programming as a discipline lives in logic and reason, but theory and science tell us that people do not always think rationally. TAMP builds upon the groundbreaking work of dual process theory and classical educational theorists (Piaget, Vygotsky, and Bruner) to rethink our assumptions about cognition and learning. Theory guides educators and researchers to improve their practice, not just their work but also their thinking. TAMP provides new theoretical constructs for describing the mental activities of programming, the challenges in learning to program, as well as a guidebook for creating and recognizing the value of theory.
This dissertation is highly nontraditional. It does not include a typical empirical study using a familiar research methodology to guide data collection and analysis. Instead, it leverages existing data, as accumulated over a half-century of computing education research and a century of research into cognition and learning. Since an applicable methodology of theory-building did not exist, this work also defines a new methodology for theory building. The methodology of this dissertation borrows notation from philosophy and methods from grounded theory to define a transparent and rigorous approach to creating applied theories. By revisiting past studies through the lens of new theoretical propositions, theorists can conceive, refine, and internally validate new constructs and propositions to revolutionize how we view technical education.
The takeaway from this dissertation is a set of new theoretical constructs and promising research and pedagogical approaches. TAMP proposes an applied model of Jerome Bruner's mental representations that describe the knowledge and cognitive processes of an experienced programmer. TAMP highlights implicit learning and the role of intuition in decision making across many aspects of programming. This work includes numerous examples of how to apply TAMP and its supporting theories in re-imagining teaching and research to offer alternative explanations for previously puzzling findings on student learning. TAMP may challenge conventional beliefs about applied reasoning and the extent of traditional pedagogy, but it also offers insights on how to promote creative problem-solving in students.