The goal of the Automata Tutor is to help students learn basic concepts in automata theory and to help teachers preparing and grading exercises and problem sets. Automata Tutor currently supports DFA, NFA, NFA to DFA, and regular expression constructions.

We open-sourced the frontend and backend of Automata Tutor. Feel free to contribute, address issues, and add features.


If you have questions/ comments / suggestions/ feature requests, please contact us at loris at


A first version of the tutor was designed by Pavol Cerny, Arjun Radhakrishna, and Damien Zufferey. The new Automata Tutor is designed, developed, and maintained by Rajeev Alur, Loris D'Antoni, Björn Hartmann, Sumit Gulwani, Dileep Kini, Mahesh Viswanathan, Matthew Weaver and Alexander Weinert. The project involves the following institutes: University of Pennsylvania, Microsoft Research, University of Illinois, and University of California Berkeley.


If you want to learn more about how Automata Tutor works check these papers:


Our work is supported by the National Science Foundation under the following grants: