Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Formal Languages and Automata Theory
Highest Rated
Rating: 4.7 out of 5(598 ratings)
8,542 students

Formal Languages and Automata Theory

Introduction to Automata Theory, Languages and Computation
Last updated 8/2024
English

What you'll learn

  • Develop a formal notation for strings, languages and machines.
  • Design finite automata to accept a set of strings of a language.
  • Prove that a given language is regular and apply the closure properties of languages.
  • Design context free grammars to generate strings from a context free language and convert them into normal forms.
  • Prove equivalence of languages accepted by Push Down Automata and languages generated by context free grammars.
  • Identify the hierarchy of formal languages, grammars and machines
  • Distinguish between computability and non-computability and Decidability and undecidability.

Course content

15 sections59 lectures37h 5m total length
  • Introduction to Automata Theory58:20
    • Introduction to Automata Theory or Theory of Computation

    • Applications of Automata Theory or Theory of Computation

    • Basic Fundamentals /Central Concepts of Automata Theory

  • Fundamental Concepts of Automata Theory and Chomsky Hierarchy1:19:23
    • Basic Fundamentals /Central Concepts of Automata Theory

      • Language - Language Operations

      • Formal Language

      • Grammar or Formal Grammar

      • Problems

      • Formal Languages and Chomsky Hierarchy

  • Introduction to Finite Automata (FA)1:06:55

    OUTLINE: 

    • Introduction to Finite Automata (FA)

    • Model of FA

    • Formal Definition of FA

    • Example of FA

    • Transition Table of FA

    • Transition Diagram of FA

    • Example Problems on FA

  • Finite Automata (FA): Acceptance, Structural Representations and Complexity36:25

    OUTLINE:

    • Acceptance of Strings and Languages by FA

    • Structural Representations: Grammars and Regular Expressions

    • Automata and Complexity: Decidability and Intractability

  • Deterministic Finite Automata (DFA)34:38

    OUTLINE:

    • Definition of DFA

    • How a DFA Processes Strings

    • Simpler Notations for DFA’s

    • Extending the Transition Function to Strings

    • The Language of DFA

  • Nondeterministic Finite Automata (NFA)34:52

    OUTLINE:

    • Introduction to NFA

    • Definition of NFA

    • Extended Transition Function

    • The Language of NFA

  • Equivalence of NFA and DFA59:33

    OUTLINE:

    • Equivalence of NFA and DFA

    • An Application: Text Search


Requirements

  • Mathematical Foundations of Computer Science
  • Data structures and Algorithms
  • Database Management System

Description

  • Formal Languages and Automat Theory deals with the concepts of automata, formal languages, grammar, algorithms, computability, decidability, and complexity.

  • The reasons to study Formal Languages and Automat Theory are Automata Theory provides a simple, elegant view of the complex machine that we call a computer.

  • Automata 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 Automata 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.

  • The purpose of this course is to acquaint the student with an overview of the theoretical foundations of computer science from the perspective of formal languages.

At the end of the course, the students will be able to:

  • Provide introduction to some of the central ideas of theoretical computer science from the perspective of formal languages.

  • Introduce the fundamental concepts of formal languages, grammars and automata theory.

  • Classify machines by their power to recognize languages.

  • Employ finite state machines to solve problems in computing.

  • Understand deterministic and non-deterministic machines.

  • Understand the differences between decidability and undecidability.

Who this course is for:

  • Engineering-Undergraduate/Postgraduate