Introduction to the Theory of Computation


Teaching Staff: Andronikos Theodore
Code: MA160
Course Type: Elective Course
Course Level: Undergraduate
Course Language: Greek
Delivery method: Lectures
Semester: 5th΄
ECTS: 5
Teaching Units: 4
Lecture Hours: 4
Total Hours: 4
E Class Page: https://opencourses.ionio.gr/courses/DDI188/
Curricula: Revamped Curriculum in Informatics from 2025
Short Description:

Description:

This course is an introductory course to the theory of computation for undergraduate students. It covers the following topics:

  • Alphabets and languages.
  • Finite automata. Properties of finite automata and their accepting languages. Regular expressions and regular languages. Equivalence of finite automata and regular expressions.
  • Grammars and the Chomsky hierarchy. Context-free languages.
  • Pushdown automata and the pumping lemma for context-free languages. Equivalence of context-free grammars and pushdown automata.
  • The notion of computability. Turing Machines.
  • Decidable and enumerable languages. Church-Turing thesis. Solvable and non-solvable problems.
  • Introduction to computational complexity. 
  • Reduction and completeness. Non-determinism and NP-completeness, P vs. NP.
Objectives - Learning Outcomes:

Aims – Learning Outcomes

This course aims to introduce students to the concept of computation and the basic models of computation.

Upon successful completion of this course, the students will be able to:

  • Understand in depth the concept of computation and computability.
  • Familiarize themselves with the simplest models of computation, such as finite automata (deterministic and nondeterministic) and pushdown automata.
  • Become acquainted grammars and, particularly, context-free grammars.
  • Make a first foray into Turing Machines and complexity classes such as P, ΝΡ, PSPACE, and the notion of NP-completeness.
Syllabus:

Syllabus

Week #1: Alphabets and languages.

Week #2: Finite state automata.

Week #3: Properties of finite automata and properties of the languages they accept.

Week #4: Regular expressions and regular languages. Equivalence of finite automata and regular expressions.

Week #5: The pumping lemma for regular languages.

Week #6: Grammars and the Chomsky hierarchy. Context-free languages.

Week #7: Pushdown automata and the equivalence of context-free grammars and pushdown automata.

Week #8: The pumping lemma for context-free languages.

Week #9: The notion of computability. Turing Machines. Decidable and enumerable languages.

Week #10: Church-Turing thesis. Solvable and non-solvable problems. The halting problem.

Week #11: Introduction to computational complexity. Time complexity, the P class, the Cook-Karp thesis.

Week #12: Reduction and completeness. Non-determinism and NP-completeness, P vs. NP.

Week #13: Space complexity, the PSPACE class and PSPACE-complete problems.

Suggested Bibliography:
  • “Εισαγωγή στη Θεωρία Υπολογισμού”, Sipser Michael, Εκδόσεις ΙΤΕ-Πανεπιστημιακές Εκδόσεις Κρήτης, ISBN 978-960-524-558-0, 2019
  • “Στοιχεία θεωρίας υπολογισμού”, Lewis Harry R., Παπαδημητρίου Χρίστος Χ., Εκδόσεις Κριτική ΑΕ, ISBN 978-960-218-397-7, 2005
Teaching Methods:
Lectures  60
Exercises & Assignments  45
Individual Study  38
   
Total 143
New Technologies:

Educational and learning methods:

Evaluation Methods:

Evaluation methods:

  • Written examination (problem solving), 100% of the final grade.
  • The grading terms are stated explicitly on the course website.

Back
<< <
October 2025
> >>
Mo Tu We Th Fr Sa Su
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Today, Monday 13-10-2025
No results found for that day
Text To SpeechText To Speech Text ReadabilityText Readability Color ContrastColor Contrast
Accessibility Options