Theory of computation project
Tags |
---|
Overview
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.
Demo
Scope
- Develop a software system to manipulate formal grammar.
- Develop a software system to manipulate automata.
- Graphical User interface.
- User manual.
Proposed Solution
- Develop a web application that allows learning in a practical, easy-to-use, and maintain way.
- Stack: JavaScript (React) + Firebase (Database and Authentication).
Success Criteria
- This project should be in production on May 31, 2022, with basic requirements.
- Use grammar, vocabulary, and algorithms, in order to achieve to represent and ensure them.
Sequences
Theory
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
https://github.com/27t/regex-visualizer
https://eneskarali.github.io/automataLab/
Requirements and tasks
What will the user be able to do after the solution is shipped?
Demo
Logical View
Deployment diagram
User manual
Agreements
- Software is a graphical user interface.
- Basic program documentation should be submitted including a user manual.
- It may work in Firefox and Chromium. Other browsers are not testing.
- It may work on the Web.
- The theory context of this document is a basics for building this software, even though more theory exists.
- It may work on mobile, but it’s not a priority. So it can be not responsive.
Lessons learned
- Notion facilitates documentation development. We share in public it easily.
- We consider implementing the class diagrams first, prior to the sequence diagrams.
- Scrum makes it easier to implement future updates and developments.
- DFS and BFS are critical algorithms.