Míreanna comhchosúla: Introduction to the theory of computation