
The Turing Machine
Ìlànà
Run a Turing machine with paper and a coin
Run a Turing machine with paper and a coin
Before simulating one, be one. It takes ten minutes and it is genuinely clarifying.
- Draw a long row of boxes on paper — that is the tape. Write a few 1s in it and leave the rest blank.
- Put a coin on the leftmost box — that is the head.
- Write this rule table down: in state A reading 1, write 1, move right, stay in A. In state A reading blank, write 1, move left, go to state HALT.
- Now execute it strictly. Read the cell under the coin, look up the rule, do exactly what it says, and nothing else.
You have just added one to a number written in unary. More importantly, notice what you were NOT allowed to do: look ahead, remember anything beyond your current state, or make a decision the table did not cover.
That poverty is deliberate. Turing was not designing an efficient computer — he was stripping computation down to the least possible machinery, so that anything he proved impossible for THIS would be impossible for any machine whatsoever. The weakness of the model is the strength of the proof.Materials for this step:
Graph Paper1 pad
Copper Coin1 ẹyọThe machine cycle
The machine cycle
Four operations, repeated forever: read, look up, write and move, change state. There is no arithmetic unit, no memory addressing and no instruction set — everything a computer does has to be built out of this loop.
The last branch is the one Turing was actually after. Some machines halt, some run forever, and you might hope for a clever analyser that examines any machine and tells you which. He proved no such analyser can exist — assume one does, and you can build a machine that asks the analyser about itself and then does the opposite, which is a contradiction.
That is not a statement about our cleverness or our computers being too slow. It is a limit on computation itself, proved in 1936, and it is why your compiler cannot warn you about every infinite loop and why no antivirus can perfectly decide whether a program is malicious by analysis alone.Flow
Tools needed:
Desktop ComputerSimulate one, and watch the tape evolve
Simulate one, and watch the tape evolve
Tools needed:
Desktop ComputerThe universal machine, and why software exists
The universal machine, and why software exists
The step that turns a mathematical curiosity into the entire computing industry.
- Note that each machine above is a DIFFERENT machine — a different rule table for each task.
- Now consider encoding a rule table as symbols ON the tape, alongside the input.
- Design a machine whose rules are: read the encoded table, find the rule matching the simulated state and symbol, apply it, repeat.
That machine simulates any other machine given its description. It is a universal Turing machine, and it is the reason software exists.
Before this, a machine that added and a machine that multiplied were different objects, and Babbage's engine could only ever tabulate polynomials. After it, there is ONE machine and the task is data you feed it. The distinction between hardware and software is created exactly here.
Follow the consequence: if a program is just symbols on a tape, then a program can read another program as input — which is what compilers, interpreters, virtual machines and emulators all are. It also means a program can be given ITSELF as input, and that self-reference is precisely the lever Turing used to prove the halting problem undecidable. The same property that makes software possible makes it impossible to fully analyse.Materials for this step:
Graph Paper1 padTools needed:
Desktop ComputerTuring complete, and the low bar for it
Turing complete, and the low bar for it
Find out how little is needed to reach the ceiling of computation.
- List the ingredients of the machine: read/write storage, conditional branching, unbounded tape.
- Remove the unbounded tape and consider what a finite machine can still do.
- Consider whether the relay logic from earlier in this batch, plus enough memory and a conditional jump, would qualify.
Any system with conditional branching, read/write memory and no fixed limit on that memory is Turing complete — able to compute anything computable. The bar is remarkably low, which is why it is reached accidentally: spreadsheet formulas, some card games, Conway's Game of Life and several configuration languages are all Turing complete without their designers intending it.
The one honest caveat: every real machine has finite memory, so strictly it is a finite state machine rather than a Turing machine. The idealisation is useful because the memory limit is rarely the interesting constraint.
And the closing point for the batch: your relay gates, plus the flip-flops, plus the adder, plus a conditional jump, IS a general-purpose computer. Nothing further needs inventing — only assembling, and finding a memory cheap enough to build at scale. That is exactly what the second half of this batch is about.Tools needed:
Desktop ComputerÀwọn ohun-èlò
2- 2 padPlaceholder
- 1 ẹyọPlaceholder
Blueprint tó jọra
Àwọn blueprint wọ̀nyí pín ìmọ̀ — ọ̀nà, ohun-èlò tàbí ìlànà
CC0 Àgbègbè Gbogbogbò
Blueprint yìí ti jáde lábẹ́ CC0. O lè ṣe àdàkọ, yí padà, pín, àti lò láìsí ìyọ̀ǹda.
Ṣàtìlẹ́yìn Olùṣẹ́dá nípa rírà àwọn ọjà nipasẹ̀ Blueprint wọn Ẹ̀san Olùṣẹ́dá tí àwọn Olùtajà gbé kalẹ̀, tàbí ṣẹ̀dá àtúnṣe tuntun ti Blueprint yìí kí o sì fi sínú Blueprint rẹ gẹ́gẹ́ bí ìsopọ̀ láti pín owó-wíwọlé.


