Аннотации:
Traditionally, when we teach Theory of Computations 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.