UNIT 1. Introduction to the Theory of Automata and Formal Languages

1.1. Why study Automata Theory. History and origins

1.2. Relationship with others areas of knowledge

1.3. Machines, Languages and Algorithms

UNIT 2. Automata Theory

2.1. Introduction and Definitions

2.2. Mathematical model of an automaton

2.3. Automata and algorithms

2.4. Discrete, continuous, and hybrid automata. Classes of automata

2.5. Formal Languages: Introduction and Definitions

2.6. Operations with words. Operations with languages

UNIT 3. Finite Automata

3.1. Definition and Representation of Deterministic Finite Automata (DFA)

3.2. DFA as recognition devices

3.3. Equivalence and minimization of DFAs

3.4. Theorems of DFAs

3.5. Definition and Representation of Nondeterministic Finite Automata (NFA)

3.6. The Language of a NFA

3.7. Equivalence of DFAs and NFAs

UNIT 4. Languages and Formal Grammars

4.1. Operations with languages. Derivations

4.2. Concept of grammar. Formal grammar

4.3. Chomsky Hierarchy and equivalent grammars

4.4. Context-free grammars

4.5. Language of a context-free grammar. Parse Trees

4.6. Well-formed grammars

4.7. Chomsky Normal Form. Greibach Normal Form

UNIT 5. Regular Languages

5.1. Definition of regular languages

5.2. DFA for a regular grammar

5.3. Equivalence of regular expressions

5.4. Kleene's Theorem

5.5. Characteristic equations

5.6. Synthesis Problem: Recursive algorithm

5.7. Derivatives of regular expressions

UNIT 6. Pushdown Automata

6.1. Definition of Pushdown Automata (PDA)

6.2. Transitions, Movement and Instantaneous Description in PDA

6.3. Acceptance by Empty Stack. Acceptance by Final State

6.4. Language Accepted by a PDA

6.5. Equivalence of PDA by Empty Stack and PDA by Final State

6.6. From Context-Free Grammar to Push-Down Automata

6.7. From Pushdown Automata to Context-Free Grammar

UNIT 7. Turing Machine

7.1. Definition of a Turing Machine

7.2. Variations of Turing Machines

7.3. Universal Turing Machine

UNIT 8. Computational Complexity

8.1. Complexity Theory

8.2. Complexity of algorithms

8.3. P versus NP problems

8.4. Defining complexity classes

8.5. Time complexity

8.6. Hierarchy theorems

8.7. Non-computational problems

8.8. Limits of Computability

Last modified: Tuesday, 15 March 2022, 12:37 PM