Automata Theory

Taught by Prof. Jeffery D. Ullman from Stanford University Online

Course Topics

An advanced, junior-year college-level course which teaches Automata Theory from relatedly simple finite automata to extremely hard NP-complete problems.
Topics include:

  • Deterministic and nondeterministic automata, regular expressions, and the equivalence of these language-defining mechanisms
  • Context-free grammars, recursively enumerable languages, and other languages, along with parse trees, closure properties, decision properties, and a pumping lemma for context-free languages
  • Pushdown automata and their nondeterministic equivalence in language-defining power to context-free grammars
  • Turing machines and their ability to model any computing device
  • Intractable problems, which requires exponential computing time, and their subcategories, which include NP-hard and NP-complete problems like the Traveling Salesman Problem.
  • Proofs, lemmas, and discussion of P=NP?

Course Statistics:

  • Final Grade: 'A' with Distinction, 97%
  • University: Stanford University (through Stanford University Online)
  • Instructor: Jeffrey D. Ullman, S.W. Ascherman Professor of Engineering (emeritus)
  • Stanford's Prequisites: at least 2 years of [college-level] Computer-Science courses, including discrete mathematics (graphs, trees, logic, proofs, etc.) and an introduction to data structures and algorithms
  • Textbook: Introduction to Automata Theory, Languages, and Computation by Hopcroft, Motwani, and Ullman
  • Course Site: Previously hosted directly at Stanford University Online, the course has since moved to edX, and can be found at https://www.edx.org/course/automata-theory


Copyright © Samantha S. 2020