Theory of Computation (Automata, Computability, and Complexity)

IMPORTANT MESSAGES:

  • Due to COVID-19, all lectures will be given remotely
  • Each week, slides and videos will be uploaded
  • Grading will be based on 5 homework assignments (please see "Homework" section below for submission deadlines)

Learning Objectives:

  • Study mathematical models of computation: automata, Turing machines;
  • learn the limit of computation: computability theory;
  • analyze the efficiency of computation: complexity theory.

Instructor:

  • Prof. Kai Cai (Engineering Building F-610)
  • Email: kai.cai@eng.osaka-cu.ac.jp
  • Office hour: by email

Lecture Schedule:

  • Period: Oct. 2020 -- Feb. 2021
  • Day and Time: Tuesdays 15:15-16:55

Textbook / Reference:

Lecture notes will cover all contents. Two excellent references are:

  1. M. Sipser, "Introduction to the Theory of Computation", Course Technology, 2013. (Available in our library; there is Japanese translation for this book.)
  2. J.E. Hopcroft, R. Motwani, J.D. Ullman, "Introduction to Automata Theory, Languages, and Computation", Addison Wesley, 2006. (Available in our library)

Prerequisites:

None

Homework Assigments:

Course Outline:

    Dates              Topics
  1. 2020.10.06 Introduction, finite automata
  2. 2020.10.13 Strings, languages
  3. 2020.10.20 Regular languages
  4. 2020.10.27 Nondeterministic finite automata, regular operations
  5. 2020.11.12 Regular expressions
  6. 2020.11.17 Nonregular languages, pumping lemma
  7. 2020.11.24 Context-free grammars, context-free languages, pushdown automata
  8. 2020.12.01 Non-context-free languages, pumping lemma
  9. 2020.12.08 Turing machines
  10. 2020.12.15 Turing-recognizable languages, Turing-decidable languages, variants of Turing machines
  11. 2020.12.22 Algorithms, decidable problems, decidability
  12. 2021.01.12 Undecidable problems
  13. 2021.01.19 Time complexity, P and NP
  14. 2021.01.26 NP completeness

Video lectures

Week 1 (two video lectures)

Lecture 1-1

Lecture 1-2

Week 2 (two video lectures)

Lecture 2-1

Lecture 2-2

Week 3 (two video lectures)

Lecture 3-1

Lecture 3-2

Week 4 (two video lectures)

Lecture 4-1

Lecture 4-2

Week 5 (two video lectures)

Lecture 5-1

Lecture 5-2

Week 6 (two video lectures)

Lecture 6-1

Lecture 6-2

Week 7 (two video lectures)

Lecture 7-1

Lecture 7-2

Week 8 (two video lectures)

Lecture 8-1

Lecture 8-2

Week 9 (two video lectures)

Lecture 9-1

Lecture 9-2

Week 10 (two video lectures)

Lecture 10-1

Lecture 10-2

Week 11 (two video lectures)

Lecture 11-1

Lecture 11-2

Week 12 (two video lectures)

Lecture 12-1

Lecture 12-2

Week 13 (two video lectures)

Lecture 13-1

Lecture 13-2

Week 14 (two video lectures)

Lecture 14-1

Lecture 14-2

  • For 2019 course see here.
  • For 2018 course see here.