Part 1: Mathematical Background

  • Introduction to theory of computation
  • Mathematical notions and terminology
  • Functions and relations
  • Graphs, strings, languages, and boolean logic
  • Terms review
  • Definitions, theorems, and proofs
  • Part 2: Finite Automata and Regular Languages

  • Introduction to finite automata
  • Formal definition of a finite automaton
  • Formal definition of computation
  • The regular operations
  • Nondeterminism
  • Nondeterministic finite automata
  • Closure under regular operations
  • Transducers
  • Application to DFA state minimization
  • Regular expressions
  • Equivalence of regular expressions and finite automata
  • Pumping lemma for regular languages
  • Part 3: Pushdown Automata and Context-Free Grammars

  • Context-free grammars and languages
  • Properties of context-free grammars
  • CFG normal forms
  • Pushdown automata
  • Equivalence of pushdown automata with context-free grammars
  • Pumping lemma for context-free languages
  • Properties of context-free languages
  • Context-sensitive languages
  • Part 4: Truring Machines

  • Turing machines
  • Examples of Turing machines
  • Variants of Turing machines
  • The definition of algorithm
  • Computatbility Theory

  • Decidability: decidable problems concerning regular languages
  • Decidable problems concerning CFL
  • Halting problem and diagonalization method
  • Reducibility: a methodology for proving unsolvability
  • Reduction via computation histories
  • Post correspondence problem
  • Mapping reducibility
  • Algorithms and recursive functions
  • Hyper-computation: why interaction is more powerful than algorithms? (P.Wegner, Comm. ACM, 1997)
  • Part 5: Advanced Topics in Computability Theory

  • Advanced topics in computability theory
  • Decidability of logical theories
  • Decidable and undecidable theories
  • An undecidable theory
  • Turing reducibility
  • A Definition of information
  • Measuring computation complexity
  • Computation complexity class P
  • Computation complexity class NP
  • NP-completeness
  • Introduction to space complexity
  • Complexity classes L and NL
  • Part 6: Computation Complexity

  • Measuring computation complexity
  • Computation complexity: Class P
  • Computation Complexity: Class NP
  • NP Completness