Theory of Computation is a theoretical branch of computer science and mathematical. It is the study abstract machine and the automation problems that can be solved using these machines. The abstract machine is called the automata . An automation with a finite number of states is called a finite automation.

**Introduction to Formal Languages**

- Automata Theory and Formal Languages
- Kleene Closure
- Recursive Definition of a Language
- Finite Representation of language

**Finite Automata**

**Deteministic Finite Automata**

- Introduction to Finite Automata
- Deterministic Finite Automata (DFA)
- Number of 1’s is a multiple of 3 on {0,1} using DFA
- Number of 1’s is not multiple of 3 on {0,1} using DFA
- DFA for Number of 1’s is even/odd and number of 0’s is even/odd
- DFA for number of 0’s divisible by five and 1’s divisible by 3
- DFA for All string of length at most five
- DFA for All strings ending with abb
- DFA for strings in which leftmost symbol differ from rightmost
- Design DFA that contain word ‘CAT’ using word ‘CHARIOT’
- Design DFA which accept a binary number divisible by 3

**Non-Deteministic Finite Automata**

- Non-Deterministic finite Automata
- Design NFA to accept string containing the substring 0101
- Design NFA that accepts string ending with aab
- Differentiate between NFA and DFA
- Design NFA that start with 01 and end with 10