Eleven Guidelines for Implementing Pair Programming in the Classroom
Laurie Williams
1
, D. Scott McCrickard
2
, Lucas Layman
1
, Khaled Hussein
2
1
North Carolina State University, Department of Computer Science
{lawilli3, lmlayma2}@ncsu.edu
2
Virginia Polytechnic Institute and State University, Department of Computer Science
{mccricks, khussein}@cs.vt.edu
Abstract
Utilizing pair programming in the classroom
requires specific classroom management techniques.
We have created nine guidelines for successfully
implementing pair programming in the classroom.
These guidelines are based on pair programming
experiences spanning seven years and over one
thousand students at North Carolina State University.
In Fall 2007, pair programming was adopted in the
undergraduate human-computer interaction (HCI)
course at Virginia Tech. We present the pair
programming guidelines in the context of the HCI
course, discuss how the guidelines were
implemented, and evaluate the general applicability
and sufficiency of the guidelines. We find that eight
of the nine guidelines were applicable to the Virginia
Tech experience. We amended our peer evaluation
guideline to account for constantly supervised
pairing, as was the case at Virginia Tech. We add
two guidelines stating that a pair should always be
working toward a common goal and that pairs should
be encouraged to find their own answers to increase
their independence and self-confidence.
1. Introduction
Research suggests that pair programming has
many pedagogical benefits. Pair programming
creates an environment conducive to active learning
and collaboration, helps to lower student frustration
with challenging problems, and increases
programming self-confidence and interest in
information technology [1]. To leverage the benefits
of pair programming, educators must create an
effective pair programming environment in the
classroom. Implementing effective pair
programming requires several specific classroom
management techniques.
Successful pair programming requires discipline
on the part of the students and positive reinforcement
on the part of the teaching staff. Based upon our
experiences, we previously documented classroom
management guidelines in hopes of enabling other
educators to be as successful as possible with pair
programming [13]. The first and third authors from
North Carolina State University (NCSU) have used
pair programming extensively in CS1, undergraduate
software engineering, and several graduate-level
courses over the last seven years, involving more
than one thousand students. Through this experience,
many lessons have been learned and policies and
practices have been adapted to be more successful
with the collaborative pedagogy of pair
programming.
In this paper, we describe nine guidelines for
successfully implementing pair programming in a
classroom or lab environment. During the Fall 2007
semester, these guidelines were followed to varying
degrees as pair programming was adopted in the
upper-level undergraduate course in human-computer
interaction (HCI) at Virginia Tech. The objective of
this paper is to evaluate and evolve our guidelines by
retrospectively comparing them with the classroom
management practices and qualitative experiences at
Virginia Tech.
The rest of this paper is organized as follows: In
Section 2 we provide related research results in pair
programming. In Section 3, we provide information
about the HCI course at Virginia Tech. In Section 4,
we present the NCSU pair programming guidelines
and provide observations regarding the extent to
which each of these were used at Virginia Tech. In
Section 5, we evolve our guidelines. We summarize
in Section 6.
2. The Positive and Negatives Aspects
of Student Pair Programming
Much of the research on pair programming in an
academic environment has concentrated on
evaluating the efficacy of the practice. Studies
conducted at NCSU [2, 7-9, 12] have shown that pair
programming creates an environment conducive to
more advanced, active learning and social interaction,
leading to students being less frustrated, more
Agile 2008 Conference
978-0-7695-3321-6/08 $25.00 © 2008 IEEE
DOI 10.1109/Agile.2008.12
445