What is a Turing machine and why do people keep mentioning it? My IBM PC is all I need to do my computation! Why does anyone care about these machines?
A Turing-machine is a theoretical machine that can be used to reason about the limits of computers. Simply put, it is an imaginary computer with infinite memory.
We care about Turing-machines because they help us discover what is impossible to accomplish with real computers (like your IBM PC). If it is impossible for a Turing machine to perform a particular computation (like deciding the Halting Problem), then it stands to reason that it is impossible for your IBM PC to perform that same computation.
There are actually examples of Turing Machines in nature. Specifically, the ribosome, which translates RNA into proteins, implements a Turing Machine.
First, some background:
The operation of the ribosome is simple:
As you can see, this is a very simple Turing Machine that performs the most complex operation - nature itself!
Turing machine is equivalent to an algorithm. It halts when it accepts a string, rejects or enters an infinite loop when it doesn't accept the string.
Tape acts as a memory, transition rules acts as 'if then else' conditions
The amazing thing about a Turing Machine is that it is the most primary computing machine that exists and it can perform computations as powerful as any computer that exists today. There is no computing problem that you can do with your computer that you can't do with a Turing Machine. In fact, your computer is a TM if you want to look at it that way.
Alan Turing invented the TM and used a certain version of it to decode the Nazi encryption machine Enigma.
So to conclude it is a very powerful machine and has many applications in Theoretical Computer Science. (Also a super interesting and stimulating subject btw).
A Turing machine is an abstract machine capable of computation.
From Wikipedia:
Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm. They were described in 1936 by Alan Turing. Turing machines are not intended as a practical computing technology, but a thought experiment about the limits of mechanical computation. Thus they were not actually constructed. Studying their abstract properties yields many insights into computer science and complexity theory.
A Turing machine that is able to simulate any other Turing machine is called a Universal Turing machine (UTM, or simply a universal machine). A more mathematically-oriented definition with a similar "universal" nature was introduced by Alonzo Church, whose work on lambda calculus intertwined with Turing's in a formal theory of computation known as the Church-Turing thesis. The thesis states that Turing machines indeed capture the informal notion of effective method in logic and mathematics, and provide a precise definition of an algorithm or 'mechanical procedure'.
Turing machine is an abstract machine that can operate on a sequence of data and can change its own state as well as the data while operating, according to some logic.
This is a concept that forms the basis of algorithms, stored programs, and computation in general. It provides good insights and abstractions if you are dealing with algorithms, states, data etc.
Food for thought, for most.