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