Explicitly Training Metacognition and Self-Regulation for Computer Programming

Abstract

Thesis (Ph.D.)--University of Washington, 2020Programming is one of the most powerful and expressive ways of interacting with computers, but also one of the most challenging to learn. Despite this, people attempting to learn programming often do not receive explicit training or support in developing the mental skills required to succeed. If they are to succeed, learners are often required to independently become self-aware, systematic thinkers while developing and refining strategies to understand and manipulate new abstract concepts in a language they have likely never even seen before. However, to better support everyone who wants to learn programming, this dissertation presents a problem solving framework and a programming self-regulation framework. These frameworks give educators and learners the terms and definitions to discuss and reason about the types of behaviors programmers go through to solve programming problems. They also stand as novel domain specific theories of problem solving for researchers to build upon. To better support learners developing the mental skills necessary for programming, their current skills should be understood. Lacking such an understanding, I conducted two empirical studies investigating the self-regulation of untrained novices, providing a first look into how novices self-regulate while programming, how their self-regulation helps them avoid errors, and where they can use the most support developing critical programming skills. With an understanding of novices’ initial skills, new pedagogical methods should be developed to help learners develop and grow their current skills. To this end, two new pedagogical methods to support programming problem solving were invented and evaluated. The first of these evaluations demonstrate that not only is explicitly teaching programming problem solving possible, it can help learners become more productive and more independent while boosting their self-efficacy and substantiating their belief that they can become programmers. An evaluation of the second pedagogical method, an online tool delivering a novel form of programming instruction that can support instruction at scale, may help learners achieve more programming success

    Similar works

    Full text

    thumbnail-image