Automata Course Outline
Automata Course Outline
INSTITUTE OF TECHNOLOGY
DEPARTMENT OF COMPUTER SCIENCE
Course Title: Automata and Complexity Theory
Course Code: CoSc 3101
Credit Hrs: 3 ECTS: 5 Lecture Hrs. 2 Lab Hrs. 3 Tutorial Hrs. 2
Prerequisite: None
Course Category: Compulsory
Year II Semester III
Course Description
This course aims to develop the theoretical foundations of computer science through study of
mathematical and abstract models of computers and the theory of formal languages. It also, introduces
some fundamental concepts in automata theory and formal languages including grammar, finite
automaton, regular expression, formal language, push down automaton, and Turing machine. The
importance of time and space complexities, various notations and theorems of Complexity theory.
Course Objectives
On completion of this course students should be able to:
➢ Introduce concepts in automata theory and theory of computation
➢ Study the central concepts of automata theory
➢ Acquire insights into the relationship among formal languages, formal grammars, and
automata.
➢ Identify different formal language classes and their relationships
➢ Design grammars and recognizer for different formal languages
➢ Explain Models of Computation, resources (time and space), algorithms, computability, and
complexity.
➢ Understand Complexity classes, P/NP/PSPACE, reductions, hardness, completeness,
hierarchy, relationships between complexity classes.
➢ Learn Randomized computation and complexity; Logical characterizations, incompleteness
and approximately.
Course Outline
Chapter 1: Introduction (4hr)
1.1.1. Alphabets and strings
1.1.2. Languages and Grammars
1.1.3. Automata
1.1.3.1. Finite automata, Deterministic and Non-deterministic finite automata
Chapter 2: Regular Expression and Regular languages (4hr)
Page 1 of 3
2.1. Regular expressions
2.2. Connection between regular expression and regular languages
2.3. Regular grammar
2.4. Pumping lemma and non-regular language grammars
Chapter 3: Context free languages (6hr)
3.1. Context free languages
3.2. Parsing and ambiguity
3.2. Sentential forms
3.3. Derivation tree or parse tree
3.3.1. Left most and right most derivations
3.4. Simplification of context free grammar
3.4.1. Methods for transforming grammars
3.4.2. Chomsky’s hierarchy of grammars
Chapter 4. Push down automata (4hr)
4.1. Non-deterministic pushdown automata
4.2. Push down automata and context free languages
4.3. Deterministic push down automata
4.4. Deterministic context free languages
Chapter 5: Turing machines (4hr)
5.1. Standard TM
5.2. Construction of TM
5.3. Turing Decidable and Turing Acceptable
5.4. Undecidable problems
Chapter 6: Computability (4hr)
6.1. Recursive functions
6.2. Recursive languages and recursive Enumerable languages
Chapter 7: Computational complexity (6hr)
7.1. Big-O notaions
7.2. Class P vs class NP
7.3. Polynomial time reduction and NP-complete problems
7.4. Cook’s Theorem
Page 2 of 3
Quizzes 20%
Assignments 30%
Test 10%
Final Exam 40%
Total 100%
Teaching materials
Required Texts:
Introduction to Automata Theory, Languages, and Computation by Hopcroft, Ullman and Motwani
Reference books:
➢ An Introduction to Formal Languages and Automata, Third Edition, Peter Linz, 2001
➢ An Introduction to Formal Language Theory that Integrates Experimentation and Proof Allen
Stoughton, 2004.
➢ Complexity Theory: A Modern Approach Sanjeev Arora and Boaz Barak
Page 3 of 3