Talking about code: Integrating pedagogical code reviews into early computing courses

Given the increasing importance of soft skills in the computing profession, there is good reason to provide students with more opportunities to learn and practice those skills in undergraduate computing courses. Toward that end, we have developed an active learning approach for computing education called the Pedagogical Code Review (PCR). Inspired by the code inspection process used in the software industry, a PCR is a collaborative activity in which a small team of students, led by a trained moderator: (a) walk through segments of each other's programming solutions, (b) check the code against a list of best coding practices, and (c) discuss and log issues that arise. To evaluate the viability and effectiveness of this approach, we conducted a series of four mixed-method empirical studies of various implementations of PCRs in CS1 courses at Washington State University. The first study validated the viability of the PCR activity. Using a quasi-experimental design, the final three studies evaluated two alternative implementations of PCRs—face-to-face and online. Our results provide evidence that PCRs can promote positive attitudinal shifts, and hone skills in critical review, teamwork, and communication. Based on our findings, we present a set of best practices for implementing PCRs.

[1]  Robert J. Beichner,et al.  Introduction to the SCALE-UP (Student-Centered Activities for Large Enrollment Undergraduate Programs) Project , 2003 .

[2]  Dulal C. Kar,et al.  Automatic assignment management and peer evaluation , 2003 .

[3]  Sarah A. Douglas,et al.  Teaching HCI Design With the Studio Approach , 2003, Comput. Sci. Educ..

[4]  Edward F. Gehringer,et al.  Electronic peer review and peer grading in computer-science courses , 2001, SIGCSE '01.

[5]  A. P. Rovai Development of an instrument to measure classroom community , 2002, Internet High. Educ..

[6]  Sarah A. Douglas,et al.  Promoting creativity in the computer science design studio , 2011, SIGCSE '11.

[7]  Ernest L. Boyer,et al.  Building Community: A New Future for Architecture Education and Practice : A Special Report , 1996 .

[8]  R. J. Bogumil,et al.  The reflective practitioner: How professionals think in action , 1985, Proceedings of the IEEE.

[9]  John Elliott,et al.  Action research for educational change , 1991 .

[10]  J Jastrow,et al.  THE CARNEGIE FOUNDATION FOR THE ADVANCEMENT OF TEACHING. , 1916, Science.

[11]  Angela Carbone,et al.  A studio-based approach to teaching information technology , 2002 .

[12]  Manuel A. Pérez-Quiñones,et al.  Using peer review in teaching computing , 2005, SIGCSE '05.

[13]  Margot Brereton,et al.  An innovative design and studio-based CS degree , 2001, SIGCSE '01.

[14]  Tim Wahls,et al.  The benefits of pairing by ability , 2010, SIGCSE.

[15]  Etienne Wenger,et al.  Situated Learning: Legitimate Peripheral Participation , 1991 .

[16]  Karen Anewalt Using peer review as a vehicle for communication skill development and active learning , 2005 .

[17]  R. Slavin Cooperative Learning: Theory, Research and Practice , 1990 .

[18]  Christopher D. Hundhausen,et al.  Exploring studio-based instructional models for computing education , 2008, SIGCSE '08.

[19]  Clifton Kussmaul,et al.  Process oriented guided inquiry learning (POGIL) for computer science , 2012, SIGCSE '12.

[20]  Christopher D. Hundhausen,et al.  Integrating algorithm visualization technology into an undergraduate algorithms course: ethnographic studies of a social constructivist approach , 2002, Comput. Educ..

[21]  José A. Amador,et al.  The practice of problem-based learning : a guide to implementing PBL in the college classroom , 2006 .

[22]  J. Lave,et al.  Understanding Practice: Perspectives on Activity and Context , 1996 .

[23]  Yanqing Wang,et al.  Process improvement of peer code review and behavior analysis of its participants , 2008, SIGCSE '08.

[24]  Deborah A. Trytten A design for team peer code review , 2005 .

[25]  A. Bandura Self-Efficacy: The Exercise of Control , 1997, Journal of Cognitive Psychotherapy.

[26]  Paul R. Pintrich,et al.  Motivated Strategies for Learning Questionnaire , 2012 .

[27]  Peter J. Middleton,et al.  Software Inspection , 1994, J. Inf. Technol..

[28]  Christopher D. Hundhausen,et al.  The design of an online environment to support pedagogical code reviews , 2010, SIGCSE.

[29]  Alex Radermacher,et al.  Assigning student programming pairs based on their mental model consistency: an initial investigation , 2012, SIGCSE '12.

[30]  Sarah A. Douglas,et al.  Emergent themes in a UI design hybrid-studio course , 2012, SIGCSE '12.

[31]  N. Hari Narayanan,et al.  Studio-based learning in CS2: an experience report , 2008, ACM-SE 46.

[32]  Daniel D. Suthers,et al.  Kukakuka: An Online Environment for Artifact-Centered Discourse. , 2002 .

[33]  Peter Charles Taylor,et al.  Moodle: Using Learning Communities to Create an Open Source Course Management System , 2003 .

[34]  Christopher D. Hundhausen,et al.  The "prototype walkthrough": a studio-based learning activity for human-computer interaction courses , 2011, ICER.

[35]  Roberto Carlos dos Santos Pacheco,et al.  Peer Review in Education: Promoting Collaboration, Written Expression, Critical Thinking, and Professional Responsibility , 2004, Education and Information Technologies.

[36]  Samuel N. Kamin,et al.  Programming studio: a course for improving programming skills in undergraduates , 2007, SIGCSE.

[37]  Christopher D. Hundhausen,et al.  Integrating pedagogical code reviews into a CS 1 course: an empirical study , 2009, SIGCSE '09.

[38]  Manuel A. Pérez-Quiñones,et al.  Using peer review in teaching computing , 2005 .

[39]  Loren G. Terveen,et al.  Two peers are better than one: aggregating peer reviews for computing assignments is surprisingly accurate , 2009, GROUP.

[40]  Clayton Lewis,et al.  TASK-CENTERED USER INTERFACE DESIGN A Practical Introduction , 2006 .

[41]  A. Bandura,et al.  Self-efficacy beliefs as shapers of children's aspirations and career trajectories. , 2001, Child development.

[42]  Andrew Begel,et al.  Novice software developers, all over again , 2008, ICER '08.

[43]  Mark Guzdial,et al.  Supporting critical design dialog , 2001 .

[44]  Christopher D. Hundhausen,et al.  Designing, visualizing, and discussing algorithms within a CS 1 studio experience: An empirical study , 2008, Comput. Educ..

[45]  Christopher D. Hundhausen,et al.  Online vs. face-to-face pedagogical code reviews: an empirical comparison , 2011, SIGCSE.

[46]  P. Pintrich A Manual for the Use of the Motivated Strategies for Learning Questionnaire (MSLQ). , 1991 .

[47]  Dexter Perkins,et al.  The Case for a Cooperative Studio Classroom: Teaching Petrology in a Different Way , 2005 .

[48]  Saul Greenberg Embedding a Design Studio Course in a Conventional Computer Science Program , 2007, HCIEd.

[49]  Karl Wiegers Improving quality with software inspections , 1995 .

[50]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[51]  Christopher D. Hundhausen,et al.  Does studio-based instruction work in CS 1?: an empirical comparison with a traditional approach , 2010, SIGCSE.

[52]  Shawn A. Bohner,et al.  Towards a better capstone experience , 2012, SIGCSE '12.

[53]  Karen Swan,et al.  An Investigation into the Efficacy of the Studio Model at the High School Level , 2006 .

[54]  N. Hari Narayanan,et al.  Constructive and collaborative learning of algorithms , 2003, SIGCSE.

[55]  D. Schoen,et al.  The Reflective Practitioner: How Professionals Think in Action , 1985 .

[56]  Orit Hazzan,et al.  The reflective practitioner perspective in software engineering education , 2002, J. Syst. Softw..

[57]  Deborah Anne Trytten,et al.  A design for team peer code review , 2005, SIGCSE '05.