2.5 tms

Refer to the exercise policy for details.
Do the exercises in sections 2.3 and 3.1 in the textbook.
Implement an interpreter for Turing machines that takes their 7-tuple representation and an initial tape, then simulates the machine, returning the contents of the tape if the machine halts, in addition to whether the machine is accepting.
Implement some "useful" Turing machines that do real work, like basic mathematics or string problems.