Automata theory is the study of abstract machines and automata, as well as the computational problems that can be solved using them. It is a theory intheoretical computer science and discrete mathematics (a subject of study in both mathematics and computer science).

Objectives
Upon successfully completion of this course, students should be able to:
- Introduce concepts in automata theory and theory of computation
- Identify different formal language classes and their relationships
- Design grammars and recognizers for different formal languages
- Prove or disprove theorems in automata theory using its properties
- Determine the decidability and intractability of computational problems
Free