Caesar : a social code review tool for programming education

Caesar is a distributed, social code review tool designed for the specific constraints and goals of a programming course. Caesar is capable of scaling to a large and diverse reviewer population, provides automated tools for increasing reviewer efficiency, and implements a social web interface for reviewing that encourages discussion and participation. Our system is implemented in three loosely-coupled components: a language-specific code preprocessor that partitions code into small pieces, filters out uninteresting ones, runs static analysis, and detects clusters of similar code; an incremental task router that dynamically assigns reviewers to tasks; and a language-agnostic web interface for reviewing code. Our evaluation using actual student code and a user study indicate that Caesar provides a significant improvement over existing code review workflows and interfaces. We also believe that this work contributes a modular framework for code reviewing systems that can be easily extended and improved. Thesis Supervisor: Robert C. Miller Title: Associate Professor of Computer Science and Engineering

[1]  John Riedl,et al.  SuggestBot: using intelligent task routing to help people find work in wikipedia , 2007, IUI '07.

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

[3]  Michael S. Bernstein,et al.  Soylent: a word processor with a crowd inside , 2010, UIST.

[4]  Michael E. Fagan Advances in software inspections , 1986, IEEE Transactions on Software Engineering.

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

[6]  Lena Mamykina,et al.  Design lessons from the fastest q&a site in the west , 2011, CHI.

[7]  Manuel A. Pérez-Quiñones,et al.  Exploring Peer Review in the Computer Science Classroom , 2009, ArXiv.

[8]  Christopher W. Fraser,et al.  Clone detection via structural abstraction , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[9]  Eric Zhi-Feng Liu,et al.  Alternatives to Instructor Assessment: A Case Study of Comparing Self and Peer Assessment with Instructor Assessment under a Networked Innovative Assessment Procedures , 2002 .

[10]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[11]  Karl E. Wiegers,et al.  Peer Reviews in Software: A Practical Guide , 2001 .

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

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

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

[15]  Carlos Delgado Kloos,et al.  An Algorithm for Peer Review Matching Using Student Profiles Based on Fuzzy Classification and Genetic Algorithms , 2005, IEA/AIE.

[16]  D. Carless,et al.  Peer feedback: the learning element of peer assessment , 2006 .

[17]  Dominique Sluijsmans,et al.  Creating a Learning Environment by Using Self-, Peer- and Co-Assessment , 1998 .

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

[19]  Lydia B. Chilton,et al.  TurKit: Tools for iterative tasks on mechanical turk , 2009, 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[20]  Margaret-Anne D. Storey,et al.  Understanding broadcast based peer review on open source software projects , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[21]  Andy Huber,et al.  Peer reviews in software: a practical guide , 2002, SOEN.

[22]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[23]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[24]  Daniel Shawcross Wilkerson,et al.  Winnowing: local algorithms for document fingerprinting , 2003, SIGMOD '03.