Theory of Automata & Formal Language

Course Details

  • Course Title: Theory of Automata & Formal Language
  • Course Code: CS-351
  • Credit Hours: 3
  • Pre-requisite: Discrete Mathematics
  • Offered To: BS (CS)
  • Level: Undergraduate
  • Institution: Benazir Bhutto Shaheed University Lyari (BBUSL), Karachi, Pakistan
  • Faculty: Faculty of Computer Science & Information Technology
  • Semester Offered: Fall 2016

Objectives

The primary objective of this course is to familiarize students with the fundamental concepts of computation within the field of computer science. Students will learn about the connections between formal languages, formal grammar, and automata. The course will offer theoretical and practical knowledge regarding regular languages, finite automata, context-free languages, pushdown automata, recursively enumerable languages, Turing machines, the Universal Turing Machine, decidability, and the halting problem.

Learning Outcomes

By completing this course, students will be equipped to articulate and manipulate essential concepts in automata theory and formal languages. This includes formal proofs, deterministic and non-deterministic automata, regular expressions, regular languages, context-free grammars, and Turing machines. Students will grasp the equivalence between deterministic and non-deterministic finite automata and the relationship between finite automata and regular expressions. Furthermore, they will develop a comprehensive understanding of the strengths and limitations inherent in regular and context-free languages.

Course Outline


Lecture Topic
1 What does automata mean?, Why study automata?, Languages introduction
2 How to Communicate with machines: Three aspects/specifications of languages, Formal Languages
3 Formal vs. Informal languages, Finite vs. Infinite Languages, Defining Languages, Some observations
4 Mathematical Preliminaries: Sets, Disjoint Sets, Powersets, Cartesian Product, Set Cardinality, Set operations, Demorgan’s law
5 Languages, Operations on Languages, Alphabets and Strings
6 String Operations, Empty String, Substring, Prefix and Suffix, Star-Closure (Kleene *), Positive Closure, Recursive Language Definition
7 Regular Expressions
8 Some Examples of REs
9 Languages associated with REs, Regular Languages
10 Some Examples of REs, Equivalent Regular Expressions
11 Introduction to Finite Automata and Rules for making FSA States
12 Transition, Acceptance or Rejection of string
13 Pictorial representation of Finite Automata: Some Practice examples in the class
14 Nondeterministic finite automata (NFA)
15 NFAs with epsilon transition, Some more Examples
16 Transition Graph
17 Generalized Transition Graph
18 NFA to DFA Conversion
19 Kaleen’s Theorem: Proof of part 1,2
20 Finite Automata With Output: Moore Machines
21 Finite Automata With Output: Moore Machines
22 Finite Automata With Output: Mealy Machines
23 Finite Automata With Output: Mealy Machines
24 Conversion from one model to another
25 Regular Languages and Properties: Closure Properties
26 Closure Properties of Regular Languages (Union)
27 Proof with machine: Complement, Intersection, Closure, and Concatenation of a RE
28 Non regular Languages
29 Pumping Lemma
30 Myhill-Nerode Theorem
31 Context Free Grammars (CFG) and CFL
32 CFG For identifier, CFG For arithmetic expressions, Backus-Naur Form

Assessment Criteria

Theory

  • Quizzes, Assignments, Presentations: 20 Marks
  • Mid-term Examination: 30 Marks
  • Final Examination: 50 Marks