Publication Date



Technical Report: UTEP-CS-18-54

Published in Proceedings of the 8th International Scientific-Practical Conference "Mathematical Education in Schools and Universities: Innovations in the Information Space" MATHEDU'2018, Kazan, Russia, October 17-21, 2018, pp. 152-156.


Traditionally, when we teach Theory of Computation, we start with finite automata, we show that they are not sufficient, then we switch to pushdown automata (i.e., automata-with-stacks). Automata-with-stacks are also not sufficient, so we introduce Turing machines. The problem is that while the transition from finite automata to automata-with-stacks is reasonably natural, Turing machine are drastically different, and as a result, transition to Turing machines is difficult for some students. In this paper, we propose to solve this pedagogical problem by emphasizing that a Turing machine is, in effect, nothing else but a finite automaton with two stacks. This representation make transition to Turing machines much more natural and thus, easier to understand and to learn.