Formal Languages and Automat Theory deals with the concepts of automata, formal languages, grammar, algorithms, computability, decidability, and complexity.
The reasons to study Formal Languages and Automat Theory are Automata Theory provides a simple, elegant view of the complex machine that we call a computer.
Automata Theory possesses a high degree of permanence and stability, in contrast with the ever-changing paradigms of the technology, development, and management of computer systems. Further, parts of the Automata theory have direct bearing on practice, such as Automata on circuit design, compiler design, and search algorithms; Formal Languages and Grammars on compiler design; and Complexity on cryptography and optimization problems in manufacturing, business, and management.
The purpose of this course is to acquaint the student with an overview of the theoretical foundations of computer science from the perspective of formal languages.
At the end of the course, the students will be able to:
Provide introduction to some of the central ideas of theoretical computer science from the perspective of formal languages.
Introduce the fundamental concepts of formal languages, grammars and automata theory.
Classify machines by their power to recognize languages.
Employ finite state machines to solve problems in computing.
Understand deterministic and non-deterministic machines.
Understand the differences between decidability and undecidability.