Deterministic and nondeterministic finite automata (DFAs and NFAs) are abstract models of computation commonly taught in introductory computing theory courses. These models have important applications (such as fast regular expression matching), and are used to introduce formal language theory. Undergraduate students often struggle with understanding these models at first, due to the level of abstraction. As a result, various pedagogical tools have been developed to allow students to practice with these models. We introduce the FSM Builder, a new pedagogical tool enabling students to practice constructing DFAs and NFAs with a graphical editor, giving personalized feedback and partial credit. The algorithms used for generating these are heavily inspired by previous works. The key advantages to its competitors are greater flexibility and scalability. This is because the FSM Builder is implemented using efficient algorithms from an open source package, allowing for easy extension and question creation. We discuss the implementation of the tool, how it stands out from previous tools, and takeaways from experiences of using the tool in multiple large courses. Survey results indicate the interface and feedback provided by the tool were useful to students.
翻译:确定性有限自动机(DFA)与非确定性有限自动机(NFA)是计算理论导论课程中常用的抽象计算模型。这些模型具有重要应用(如快速正则表达式匹配),并用于引入形式语言理论。由于抽象程度较高,本科生通常最初难以理解这些模型。因此,各类教学工具应运而生,使学生能够通过实践掌握这些模型。我们提出了FSM Builder——一种新型教学工具,使学生能够通过图形化编辑器构建DFA和NFA,并提供个性化反馈与部分分数。其算法设计深受前期工作启发。该工具相比现有竞争产品的关键优势在于更强的灵活性与可扩展性,这得益于FSM Builder采用开源软件包中的高效算法实现,便于功能扩展与问题创建。本文讨论了工具的实现方式、与以往工具的差异,以及多门大型课程中使用该工具的经验总结。调查结果表明,该工具提供的交互界面与反馈机制对学生具有实际帮助。