Effects of self-regulated learning in programming Vive Kumar , Phil Winne , Allyson Hadwin @ , John Nesbit , Dianne Jamieson-Noel , Tom Calvert , Behzad Samin School of Interactive Arts and Technology, School of Education, Simon Fraser University, Canada @ Educational Psychology & Leadership Studies, Faculty of Education, University of Victoria, Canada vive@sfu.ca Abstract Effects of Self-Regulated Learning (SRL) have been investigated in a variety of contexts. In this research, we explore advanced learning technologies based on the Information Processing model of SRL in the context of structured programming. We conducted an experiment to study ways to enhance the use of programmers’ working memory, to develop tactics to carry out task level activities during programming, and to learn how to program more effectively. The results of the experiment indicate that programmers who received SRL-based treatment outperformed programmers who did not receive the treatment. We argue that the infusion of SRL-based technological interfaces would have a positive influence on the performances in programming. 1. Introduction Programmers cope with volumes of information as part of their day-to-day work. The working memory of a programmer can be quite overloaded with respect to the variety, volume, and granularity of information that they deal with. In this research, we explore techniques based on the model of self-regulated learning (SRL) that programmers can exploit to enhance the use of working memory, to develop tactics to carry out task- level activities during programming, and to learn how to program more effectively. We focus on the effects of SRL viewed from models of information processing [8] in programming, under the assumption that programmers are faced with huge volumes of information to be processed as part of their programming task. Self-regulated learning in programming (SRLP) is an approach that examines how students define the task, set goals, create plans, utilize resources, and use tools, tactics and strategies to navigate the programming space [6]. Based on models of self- regulated learning [12] we examine the types of plans, and resources that students utilize to complete a programming task, how they revise their understanding of the task as they complete elements of code and how they revise their understanding of the task by modifying elements of the code to fix bugs that emerge from their initial coding exercise. One of the primary goals of examining SRLP is to determine how students self-monitor and evaluate their approaches to planning and adjust their approach to programming based on information received based on feedback obtained from products created (i.e., completing various elements of the task space and checking for bugs that emerge from the coding exercise). The next section provides a literature review and introduces some of the related studies. We then introduce the research question followed by its motivations. In Section 3, we elaborate on the research area of self-regulated learning and explain how it can be useful in the context of programming. Section 4 introduces the experiment, the software tool, and an analysis of the experimental results that indicate the effects of SRL in programming. 2. Research background This section reviews literature pertaining to SRL and programming. Becoming an expert computer programmer potentially involves understanding (application context and possibility), planning (design), imaging (imagination and visualization), attitude (acceptance of work involved and confidence in completing projects), logic (conceptualization, language use, and knowledge), creativity (artistry) and work (persistence, exploration, purpose and commitment) [7]. Programmers typically need to apply their cognitive abilities to write a program. Assuming these cognitive abilities depend on previous learning, one can deduce that learning is a built-in part of programming. Programmers have to learn new information in their current programming task, such as the algorithm, data structures, programming styles, and coding standards, to develop the best possible code. SRL is a model about learning how to learn [10]. SRL seeks to explain how people improve their performance using a systematic approaches to regulating what they learn, when they learn, and how they learn [23]. Proceedings of the Fifth IEEE International Conference on Advanced Learning Technologies (ICALT’05) 0-7695-2338-2/05 $20.00 © 2005 IEEE