USER INTERFACE REQUIREMENTS
- Freshmen
should learn about the process of constructing a program (edit, compile,
execute, debug)
- Animation
should help freshmen visualize the process of program execution.
- Program
should allow testing of a program
- Program
should make it easier to input commands into a TM
- Program
should make it easy to manipulate multiple programs and multiple tapes per
program.
- TM is
used to convey the nature of a finite state machine:
- Instructions
of the TM are executed in a linear sequence
- The
three components of the instruction are mechanically executed in sequence
to comprise an uninterruptible instruction cycle.
- Each
state has a logical meaning (it exists to accomplish some step of the
program)
- Every
instruction of a TM is a potential branch instruction (change of state)
- Loops
exist within a state (row loop: search) and among states (state loops)
- One
state is the halt state and every program should eventually transition to
that state.
- There
is a tape alphabet (user friendly) and a program alphabet (programmer
friendly) and all programmer symbols should disappear before the TM
halts.
- There
should be statistics kept about machine operations and a report
available.
- There
should be diagnostic error messages.
- The
number of states or the number of symbols is arbitrary.
- The
program is not simply the sequence of instructions, but is the movement of
the process through the states of the program in the anticipated
manner. Thus the state of the
machine and the goal or purpose of that state in the sequence of states
should be emphasized as the program executes.
- The
program should be interactive:
- Start,
pause, resume, reset,
- Begin
executing at any state and any tape position.
- Step
mode, forward or backwards (reset to a former state and tape position).
- Since
the program focuses attention on different aspects of teaching about
manipulating TMs, there should be multiple windows used to support
different functions.