Theory of computation project


What is the project? Why are we working on this?

This is a Theory of Computation assignment course, indeed automata theory. So it is about Grammar, Languages, and Trees. See my full notes here.

Because it's not easy managing and teaching grammar, languages, and regular expressions, we’d decided to contribute with a web universal tool such as Turing Machines, push-down automata, DFA to NFA, … but there are apps such as the CFG Developer tool, CyberZHG’s toolbox, https://hritikbhandari.me/NFA-to-DFA-Converter/#, and so on, they don’t help the academic community to do his job easily. We are going to provide an online software solution to show the theory of computation, we’re writing down in English in order to approach a lot of people around the world, choosing the GPL-3 license and we focus on the student and professor experience.

Theory of computation UABC


Proposed Solution

Information architecture

Success Criteria


State of art

[1] “Context-free grammar Developer,” Stanford.edu, 2014. [Online]. Available: https://web.stanford.edu/class/archive/cs/cs103/cs103.1156/tools/cfg/. [Accessed: 28-Feb-2022]

[2] M. Franz, “Cytoscape.js,” Cytoscape.org, 2012. [Online]. Available: https://js.cytoscape.org/#demos. [Accessed: 10-Mar-2022]

[3] https://esprima.org/demo/parse.html#

[4] DOT language and https://github.com/magjac/d3-graphviz



Requirements and tasks

What will the user be able to do after the solution is shipped?


1. Lading page
2. Login page
3. Grammar list
4. Upsert grammar
5. Automata list
6. Upsert automata

Logical View

Deployment diagram

User manual


Lessons learned