The design of an online environment to support pedagogical code reviews

Inspired by the formal code inspection process commonly used in the software industry, we have been exploring the use of pedagogical code reviews (PCRs), in which a team of three to four students, led by a trained moderator, (a) walk through segments of each other's programming assignments, (b) check the code against a list of best coding practices, and (c) discuss and log issues that arise. We have found that PCRs not only improve the quality of students' code, but also positively impact students' communication and sense of community. However, implementing PCRs also presents a key logistical challenge: how to make code solutions and review results accessible to team members before, during, and after the team reviews? To address this challenge, we are developing an online environment specifically tailored to support PCRs. Our environment enables students to submit their code solutions; to review team members' code solutions on-line prior to PCRs; to carry out PCRs; and to resubmit their solutions based upon the results of the PCRs. In an empirical evaluation of the environment in a CS1 course, we found that it not only eased the logistics of implementing PCRs, but also improved the organization and efficiency of the PCR process.