Formal Language & Automata Theory (BTCS 502-18)

Course Objectives

This course aims to:

Course Outcomes

Upon completion of this course, students will be able to:

  1. Design finite automata, pushdown automata, and Turing machines for specific languages.
  2. Analyze the capabilities and limitations of different types of automata.
  3. Prove the equivalence of different formalisms for representing languages.
  4. Identify and prove the decidability and undecidability of problems.
  5. Apply the concepts of formal language theory to compiler design and other areas of computer science.

Detailed Syllabus

Module 1: Introduction & Finite Automata

Module 2: Context-Free Grammars and Pushdown Automata

Module 3: Turing Machines & Undecidability

Suggested Readings