AutoStyle: Toward Coding Style Feedback At Scale

While large-scale automatic grading of student programs for correctness is widespread, less effort has focused on au-tomating feedback for good programming style: the tasteful use of language features and idioms to produce code that is not only correct, but also concise, elegant, and revealing of design intent. We hypothesize that with a large enough (MOOC-sized) corpus of submissions to a given program-ming problem, we can observe a range of stylistic mastery from naïve to expert, and many points in between, and that we can exploit this continuum to automatically provide hints to learners to improve their code style based on the key stylistic differences between a given learner’s submission and one that is stylistically slightly better. We present a sys-tem with two key interfaces. The first is an instructor-facing GUI that allows an instructor to browse student submis-sions clustered by stylistic patterns and view chains from a particular submission to a canonical one. The second is a student-facing GUI that allows a student to submit a solu-tion and receive instantaneous style feedback.