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