Program Equivalence for Assisted Grading of Functional Programs (Extended Version)

10/15/2020
by   Joshua Clune, et al.
0

In courses that involve programming assignments, giving meaningful feedback to students is an important challenge. Human beings can give useful feedback by manually grading the programs but this is a time-consuming, labor intensive, and usually boring process. Automatic graders can be fast and scale well but they usually provide poor feedback. Although there has been research on improving automatic graders, research on scaling and improving human grading is limited. We propose to scale human grading by augmenting the manual grading process with an equivalence algorithm that can identify the equivalences between student submissions. This enables human graders to give targeted feedback for multiple student submissions at once. Our technique is conservative in two aspects. First, it identifies equivalence between submissions that are algorithmically similar, e.g., it cannot identify the equivalence between quicksort and mergesort. Second, it uses formal methods instead of clustering algorithms from the machine learning literature. This allows us to prove a soundness result that guarantees that submissions will never be clustered together in error. Despite only reporting equivalence when there is algorithmic similarity and the ability to formally prove equivalence, we show that our technique can significantly reduce grading time for thousands of programming submissions from an introductory functional programming course.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/22/2015

Learning Program Embeddings to Propagate Feedback on Student Code

Providing feedback, both assessing final work and giving hints to stuck ...
research
11/16/2022

Giving Feedback on Interactive Student Programs with Meta-Exploration

Developing interactive software, such as websites or games, is a particu...
research
06/30/2021

Verifix: Verified Repair of Programming Assignments

Automated feedback generation for introductory programming assignments i...
research
04/29/2021

D-VAL: An automatic functional equivalence validation tool for planning domain models

In this paper, we introduce an approach to validate the functional equiv...
research
11/20/2020

Effects of Human vs. Automatic Feedback on Students' Understanding of AI Concepts and Programming Style

The use of automatic grading tools has become nearly ubiquitous in large...
research
12/07/2022

Cocke–Younger–Kasami–Schwartz–Zippel algorithm and relatives

The equivalence problem for unambiguous grammars is an important, but ve...
research
07/21/2020

How to Increase Interest in Studying Functional Programming via Interdisciplinary Application

Functional programming represents a modern tool for applying and impleme...

Please sign up or login with your details

Forgot password? Click here to reset