Peer review is commonly used in computing courses for students to learn from, and provide feedback on, one another's work. Test-first development and peer review have been studied independently in computing courses, but their combination has not. In in-flow peer review, students provide feedback to one another on intermediate artifacts on their way to a final submission. I report on several studies of courses in which students conducted in-flow peer review of tests while assignments were in progress.
I also present a sample lecture on oracle-based testing for problems with relational specifications. Many problems have more than one right answer for a given input. For example, the specification for (unstable) sort considers many differently-ordered out-puts to be correct. Fundamentally, these specify a relation between inputs and outputs, rather than a function from each input to a specific output. Testing relational specifications is challeng-ing, because a particular input/output pair (e.g. a unit test) may satisfy some, but not all, implementations. I will discuss this test-ing problem, and a technique for using an oracle to judge correctness of implementations of relational specifications.
Joe Gibbs Politz studies programming languages, web security, and computer science education. He has taught at Brown University (ABD, expected 2016), and most recently as a Visiting Instructor at Swarthmore College.
Faculty Host: Charlie Garrod