Institutional Repository
Technical University of Crete
EN  |  EL



My Space

Development of an educational graphical tool for finite state machine simulation

Koukoubedakis Georgios

Full record

Year 2013
Type of Item Διπλωματική Εργασία
Bibliographic Citation Georgios Koukoubedakis, "Development of an educational graphical tool for finite state machine simulation", Diploma Work, School of Electrical and Computer Engineering, Technical University of Crete, Chania, Greece, 2013
Appears in Collections


Automata (also known as state machines) are abstract mathematical models used widely in theoretical computer science for the study of computability, but also in several practical applications. In the literature, they are oftentimes depicted as directed graphs. Their graphical representation makes automata an ideal intuitive way of communicating fundamental concepts of the Theory of Computation. Many academic institutions use educational software tools that simulate automata in an interactive way to facilitate the teaching process. This thesis describes our approach to creating such a software tool, called FA-Sim, which is a graphical interactive simulator for the most basic type of automata, called Finite Automata or Finite State Machines. Our tool is consistent with and customized for the course of Theory of Computation taught at our institution. The user (student or instructor) is able to graphically create, edit, and simulate any deterministic or nondeterministic finite automaton on any given input and observe the resulting computation step-by-step. Additionally, our tool features automatic conversion from any nondeterministic finite automaton to an equivalent deterministic one. Finally, our tool supports import of automata specified in the text-based JSON open standard and export of any automaton's graphical representation to several image file formats. Our implementation is based entirely on the Java programming language, following the principles of object-oriented programming. The graphical user interface was developed using Swing, the native Java library for user interfaces, and JUNG, a third-party Java framework for manipulating graphs. The internal representation of automata for the purposes of storage and retrieval is based on GraphML, an XML-based file format for graphs. The user evaluations we conducted with students from the Theory of Computation class revealed several user interface suggestions and preferences, which were taken into account and incorporated into the latest version of FA-Sim. All student participants agreed that FA-Sim would indeed be a useful tool in the better understanding of the concept of finite automata.

Available Files