Resources
Two good general references covering much of the material in this paper are:
- Jean Gallier’s notes on the theory of computation (for 341, chapters 1-3, 5, 6 and 13 are relevant), and
- Michael Levet’s notes on the theory of computation (for 341, chapters 1, 2, 4 and some of 5).
- Determinisitic and non-deterministic finite state automata and pushdown automata: Automatarium
Note: This uses ‘λ’ instead of ‘ε’ to represent an empty string. Also, ‘;’ is used instead ‘/’ in pushdown automaton transition rules. - Context-free grammars: CFG-Tester
Note: you can use a space to represent ε and therefore you should not use spaces between the symbols on the right hand side of a production rule (except to mean ε). This tool appends your grammar to the URL as you type (in a URL-encoded form), so you can save the link for an explicit grammar. For example, here is the grammar from Question 1(a) in Tutorials 9 and 10. - Turing machines: Anthony Morphett’s simulator.
There are other options available on the web.
Here is a really basic template for drawing automata. Google can be helpful when (not if) something goes wrong. There’s a decent introductory tutorial by Satyaki Sikdar. Most examples you find will use relative positioning of nodes, but absolute positioning is also possible. It is largely a matter of taste.
ChatGPT can be useful for producing a first draft than then can be improved.