The course covers basic and advanced techniques of the Theory of Computation that are needed in various branches of Theoretical Computer Science. Formal languages. Deterministic and non-deterministic automata. Regular languages. Context-free languages. Non-deterministic pushdown automata. Turing machines. Recursive languages. Recursively enumerable languages. The Church-Turing Thesis. Decidability and undecidability. Introduction to computational complexity.
Basic textbooks in Greek: H. Lewis, Χ. Παπαδημητρίου. Elements of the Theory of Computation, Kritiki publishers. M. Sipser, Introduction to the theory of computation, Crete University Press.
Additionally the students have access to transparencies by P. Rondogiannis, and recommended literature in English.