Automated Grading of DFA Constructions

One challenge in making online education more effective is to develop automatic grading software that can provide meaningful feedback. This paper provides a solution to automatic grading of the standard computation-theory problem that asks a student to construct a deterministic finite automaton (DFA) from the given description of its language. We focus on how to assign partial grades for incorrect answers. Each student's answer is compared to the correct DFA using a hybrid of three techniques devised to capture different classes of errors. First, in an attempt to catch syntactic mistakes, we compute the edit distance between the two DFA descriptions. Second, we consider the entropy of the symmetric difference of the languages of the two DFAs, and compute a score that estimates the fraction of the number of strings on which the student answer is wrong. Our third technique is aimed at capturing mistakes in reading of the problem description. For this purpose, we consider a description language MOSEL, which adds syntactic sugar to the classical Monadic Second Order Logic, and allows defining regular languages in a concise and natural way. We provide algorithms, along with optimizations, for transforming MOSEL descriptions into DFAs and vice-versa. These allow us to compute the syntactic edit distance of the incorrect answer from the correct one in terms of their logical representations. We report an experimental study that evaluates hundreds of answers submitted by (real) students by comparing grades/feedback computed by our tool with human graders. Our conclusion is that the tool is able to assign partial grades in a meaningful way, and should be preferred over the human graders for both scalability and consistency.

[1]  Lawrence H. Landweber,et al.  Definability in the monadic second-order theory of successor , 1969, Journal of Symbolic Logic.

[2]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[3]  Jean-Pierre H. Laurent,et al.  LAURA, A System to Debug Student Programs , 1980, Artif. Intell..

[4]  William R. Murray,et al.  Automatic program debugging for intelligent tutoring systems , 1987, Comput. Intell..

[5]  Nils Klarlund,et al.  Mona: Monadic Second-Order Logic in Practice , 1995, TACAS.

[6]  Michael Sipser,et al.  Introduction to the Theory of Computation , 1996, SIGA.

[7]  Wolfgang Thomas,et al.  Languages, Automata, and Logic , 1997, Handbook of Formal Languages.

[8]  Dana,et al.  JSL volume 88 issue 4 Cover and Front matter , 1983, The Journal of Symbolic Logic.

[9]  Jeffrey D. Ullman,et al.  Introduction to automata theory, languages, and computation, 2nd edition , 2001, SIGA.

[10]  Berndt Farwer,et al.  ω-automata , 2002 .

[11]  Jan Schwinghammer,et al.  Effciently Computing the Density of Regular Languages , 2004, LATIN.

[12]  Philip Bille,et al.  A survey on tree edit distance and related problems , 2005, Theor. Comput. Sci..

[13]  Jakub Kozik,et al.  Conditional Densities of Regular Languages , 2005, CLA.

[14]  Susan H. Rodger,et al.  JFLAP: An Interactive Formal Languages and Automata Package , 2006 .

[15]  Xuelong Li,et al.  A survey of graph edit distance , 2010, Pattern Analysis and Applications.

[16]  Beverly Park Woolf,et al.  Building Intelligent Interactive Tutors: Student-centered Strategies for Revolutionizing E-learning , 2008 .

[17]  Michael Benedikt,et al.  Regular Repair of Specifications , 2011, 2011 IEEE 26th Annual Symposium on Logic in Computer Science.

[18]  Sumit Gulwani,et al.  Automated feedback generation for introductory programming assignments , 2012, PLDI.

[19]  Nikolaj Bjørner,et al.  Symbolic Automata: The Toolkit , 2012, TACAS.

[20]  Sumit Gulwani,et al.  Automated feedback generation for introductory programming assignments , 2012, ACM-SIGPLAN Symposium on Programming Language Design and Implementation.