Cse228 Toc
Cse228 Toc
Credits: 3
Course Syllabus:
Introduction: Formal language theory, Formal proof, Inductive proofs and Central concepts of automata
theory.
Finite Automata: Deterministic finite automata, Nondeterministic finite automata, Finite automata with ε-
transitions, Equivalence and conversion of deterministic and nondeterministic finite automata.
Regular Expressions and Languages: Regular expressions, Algebraic laws for regular expressions,
Regular languages, Pumping lemma, Closure and Decision properties of regular languages.
Context Free Grammar and Languages: Context free grammars, Parsing (or derivation) and parse trees,
Ambiguity in grammars and languages, context-free grammars, Pumping lemma for CFL’s, Closure and
Decision properties of CFL’s.
Push Down Automata: Push down automata, Acceptance by empty store and final state, Equivalence
between pushdown automata and context-free grammars, Deterministic push down automata.
Turing Machines: Turing machines, the church-Turing machine, Techniques for Turing machine
construction, Configurations, Computing with Turing machines, Restricted Turing machines, Turing
machines and computers, Combining Turing machines.
Complexity Theory: The classes P, NP, examples of problems in these classes. P versus NP question. NP
completeness, Polynomial time reducibility, The Cook-Levin theorem. Examples of NP complete
problems: Vertex cover problem, Hamiltonian path problem. Approximation algorithm, Probabilistic
algorithms
Course Rationale/Description:
Central to the theory of computation are the concepts of automata, formal languages, grammar, algorithms,
computability, decidability, and complexity. Why study theory when the current focus of Computer Science (and all
the more so for Information Systems) is on technology and the pragmatic areas of knowledge concerned with the
development and management of computer information systems? The reasons are manifold. Theory provides a
simple, elegant view of the complex machine that we call a computer. Theory possesses a high degree of
permanence and stability, in contrast with the ever-changing paradigms of the technology, development, and
management of computer systems. Further, parts of the theory have direct bearing on practice, such as Automata on
circuit design, compiler design, and search algorithms; Formal Languages and Grammars on compiler design; and
Complexity on cryptography and optimization problems in manufacturing, business, and management. Last, but not
least, research-oriented students will make good use of the theory studied in this course.
Course Objective
To provide a solid conceptual understanding of the fundamentals of computation.
More specifically,
Course Learning Outcome: (at the end of the course, students will be able to do:)
CLO1
Able Able to describe the basic concepts of formal languages of finite automata techniques
Able Able to apply design principles in Finite Automata for different Regular Expressions
CLO2
and Languages
CLO3
Abl Able to demonstrate ability to develop context free grammar for various languages
CLO4
Able Able to synthesis problem and solutions in various problems of applying normal form
techniques, push down automata and Turing Machines
CLO1 ✔
CLO2 ✔
CLO3 ✔
CLO4 ✔
Mapping Course Learning Outcome (CLOs) with the Teaching-Learning and Assessment Strategy:
Class Test# 3: Either online or onsite based on Wk8-Wk10 discussion. Achieve CLO3 and CLO4
Attendance -- 7
Assignment -- 5
Presentation -- 8
Midterm
5 10 10 0 -- 25
Examination
Semester Final
0 10 10 20 40
Examination
Total Mark 5 20 20 20 100
Remember
Understand 05 02 02 05
Apply 05 03 05
Analyze 03 03 05
Evaluate 02 05
Create 03 05
Bloom
Score for the Test
Criteria
Remember 05
Understand 05
Apply 10
Analyze 10
Evaluate 05
Create 05
Textbook/Recommended Readings:
1. John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (2007), Introduction to
Automata Theory Languages and Computation, 3 edition, Pearson Education, India
rd
Reference Books:
1. K. L. P Mishra, N. Chandrashekaran (2003), Theory of Computer
Science-Automata Languages and Computation, 3nd edition, Prentice
Hall of India, India.
2. Sipser, M. (2006). Introduction to the Theory of Computation (2nd ed.). Boston,
MA: Thompson Course Technology.