Theory of Computation
Course Title: Theory of Computation
Course No: CSC262
Nature of the Course: Theory + Lab
Semester: 4
Full Marks: 60 + 20 + 20
Pass Marks: 24 + 8 + 8
Credit Hours: 3
Course Description
Course Objectives
Course Contents
- Review of Set Theory, Logic, Functions, Proofs
- Complexity Theory
- Computability Theory
- Automata Theory
- Alphabets
- Power of Alphabet
- Kleen Closure Alphabet
- Positive Closure of Alphabet
- Strings
- Empty String
- Substring of a string
- Concatenation of strings
- Languages
- Empty Language
- Introduction to Finite Automata
- Introduction of Finite State Machine
- Deterministic Finite Automata (DFA)
- Notations for DFA
- Language of DFA
- Extended Transition Function of DFA
- Non-Deterministic Finite Automaton (NFA)
- Notations for NFA
- Language of NFA
- Extended Transition
- Equivalence of DFA and NFA
- Subset-Construction
- Method for reduction of NFA to DFA
- Theorems for equivalence of Language accepted by DFA and NFA
- Finite Automaton with Epsilon Transition (ε - NFA)
- Notations for ε - NFA
- Epsilon Closure of a State
- Extended Transition Function of ε – NFA
- Removing Epsilon Transition using the concept of Epsilon Closure
- Equivalence of NFA and ε –NFA
- Equivalence of DFA and ε – NFA
- Moore machine and Mealy Machines
- Regular Expressions
- Regular Operators
- Regular Languages and their applications
- Algebraic Rules for Regular Expressions
- Equivalence of Regular Expression and Finite Automata
- Reduction of Regular Expression to ε – NFA
- Conversion of DFA to Regular Expression
- Properties of Regular Languages
- Pumping Lemma
- Application of Pumping Lemma
- Closure Properties of Regular Languages over (Union, Intersection, Complement)
- Minimization of Finite State Machines: Table Filling Algorithm
- Introduction to Context Free Grammar (CFG)
- Components of CFG
- Use of CFG
- Context Free Language (CFL)
- Types of derivations: Bottomup and Topdown approach
- Leftmost and Rightmost
- Language of a grammar
- Parse tree and its construction
- Ambiguous grammar
- Use of parse tree to show ambiguity in grammar
- Regular Grammars: Right Linear and Left Linear
- Equivalence of regular grammar and finite automata
- Removal of Useless symbols
- Nullable Symbols
- Unit Productions
- Chomsky Normal Form (CNF)
- Greibach Normal Form (GNF)
- Backus-Naur Form (BNF)
- Context Sensitive Grammar
- Chomsky Hierarchy
- Pumping Lemma for CFL
- Application of Pumping Lemma
- Closure Properties of CFL
- Introduction to Push Down Automata (PDA)
- Representation of PDA
- Operations of PDA
- Move of a PDA
- Instantaneous Description for PDA
- Deterministic PDA
- Non Deterministic PDA
- Acceptance of strings by PDA
- Language of PDA
- Construction of PDA by Final State
- Construction of PDA by Empty Stack
- Conversion of PDA by Final State to PDA accepting by Empty Stack and vice-versa
- Conversion of CFG to PDA
- Conversion of PDA to CFG
- Introduction to Turing Machines (TM)
- Notations of Turing Machine
- Language of a Turing Machine
- Instantaneous Description for Turing Machine
- Acceptance of a string by a Turing Machines
- Turing Machine as a Language Recognizer
- Turing Machine as a Computing Function
- Turing Machine with Storage in its State
- Turing Machine as a enumerator of stings of a language
- Turing Machine as Subroutine
- Turing Machine with Multiple Tracks
- Turing Machine with Multiple Tapes
- Equivalence of Multitape-TM and Multitrack-TM
- Non-Deterministic Turing Machines
- Restricted Turing Machines: With Semi-infinite Tape, Multistack Machines, Counter Machines
- Church Turing Thesis
- Universal Turing Machine
- Turing Machine and Computers
- Encoding of Turing Machine
- Enumerating Binary Strings
- Codes of Turing Machine
- Universal Turing Machine for encoding of Turing Machine
- Computational Complexity
- Time and Space complexity of A Turing Machine
- Intractability
- Complexity Classes
- Problem and its types: Abstract, Decision, Optimization
- Reducibility
- Turing Reducible
- Circuit Satisfiability
- Cook's Theorem
- Undecidability
- Undecidable Problems: Post's Correspondence Problem
- Halting Problem and its proof
- Undecidable Problem about Turing Machines
Laboratory Works
- 1.Design and implement Deterministic Finite Automata (DFA)
- 2.Design and implement Non-Deterministic Finite Automata (NFA)
- 3.Implement conversion between DFA, NFA, and ε-NFA
- 4.Design and implement Push Down Automata (PDA)
- 5.Design and implement Turing Machines
- 6.Construct Tokenizers/Lexers using regular expressions
Text Books
- 1.John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd Edition, Pearson - Addison-Wesley
Reference Books
- 1.Harry R. Lewis and Christos H. Papadimitriou, Elements of the Theory of Computation, 2nd Edition, Prentice Hall
- 2.Michael Sipser, Introduction to the Theory of Computation, 3rd Edition, Thomson Course Technology
- 3.Efim Kinber, Carl Smith, Theory of Computing: A Gentle introduction, Prentice-Hall
- 4.John Martin, Introduction to Languages and the Theory of Computation, 3rd Edition, Tata McGraw Hill
- 5.Kenneth H. Rosen, Discrete Mathematics and its Applications to Computers Science, WCB/Mc-Graw Hill