At the end of this course, the students; 1) Learn basic concepts and models of Automata Theory, Computation and Formal languages. 2) Be able to solve problems on abstract machines such as Finite state automata, Pushdown automata and Turing machines. 3) Learn about the representations of formal languages using regular expressions and formal grammars. 4) Understand abstract models of the computational process and discuss about the limits and power of these models.
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
No
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
None
COURSE DEFINITION
Introduction to Automata Theory. Basic mathematical concepts and methods. Symbols, Alphabets, Strings, Languages, Problems. Deterministic finite automata. Nondeterministic finite automata. Regular languages and expressions. Kleene's theorem. Formal grammars. Context-free languages. Pushdown automata. Turing machines. Computability and Decidability. Halting problem, Unsolvable problems. Computational complexity: P and NP classes.
COURSE CONTENTS
WEEK
TOPICS
1st Week
Introduction to Automata Theory.
2nd Week
Basic mathematical concepts and methods.
3rd Week
Symbols, Alphabets, Strings, Languages, Problems.
4th Week
Deterministic finite automata.
5th Week
Nondeterministic finite automata.
6th Week
Regular languages and expressions.
7th Week
Kleene's theorem.
8th Week
Mid-term
9th Week
Formal grammars.
10th Week
Context-free languages.
11th Week
Pushdown automata. Turing machines.
12th Week
Computability and Decidability.
13th Week
Halting problem, Unsolvable problems.
14th Week
Computational complexity: P and NP classes.
RECOMENDED OR REQUIRED READING
1. Hopcroft J.E., Motwani R., Ullman J.D., Introduction to Automata Theory, Languages and Computation, 3/E, Addison Wesley, 2006 2. Kelley D., Automata and Formal Languages, Prentice Hall, 1995 3. Sipser M., Introduction to the Theory of Computation, 2/E, Thomson / Course Technology, 2005