Welcome to the "Automata and Computability" course! This course explores theoretical models of computation, including finite automata, context-free grammars, and Turing machines. It examines how these models define the limits of computation, analyse algorithmic complexity, and apply formal logic techniques to problem-solving. It delves into computability theory, covering decidable and undecidable problems, NP-completeness, and the Chomsky hierarchy. Learners will explore regular expressions, context-free languages, and recursive functions to understand language processing and formal grammars.

Automata and Computability
Grow your skills with Coursera Plus for $239/year (usually $399). Save now.

Recommended experience
Recommended experience
Intermediate level
Learners are expected to have prior knowledge of formal languages before taking this course.
Recommended experience
Recommended experience
Intermediate level
Learners are expected to have prior knowledge of formal languages before taking this course.
What you'll learn
Master finite automata, pushdown automata, and Turing machines to analyse computation limits and formal language processing.
Understand computability, NP-completeness, and complexity classes to assess problem-solving limits in theoretical computer science.
Apply proof techniques and logic to formalise computational models, algorithmic efficiency, and automata-based problem-solving.
Construct regular expressions and context-free grammars to solve pattern matching and parsing problems in software engineering.
Details to know

Add to your LinkedIn profile
November 2025
See how employees at top companies are mastering in-demand skills

There are 10 modules in this course
This module provides an in-depth exploration of the foundational concepts of Automata Theory. It begins with an introduction to the theoretical underpinnings and practical relevance of automata in computing. Students will review finite automata, focusing on deterministic finite automata (DFA) and their structure, functionality, and applications. The module also explores the concept of languages accepted by DFAs, emphasising how automata relate to formal language theory and computational problem-solving.
What's included
13 videos12 readings12 assignments
13 videos• Total 94 minutes
- Meet Your Instructor - Prof. Saikishor Jangiti• 2 minutes
- Meet Your Instructor - Prof. S.P Vimal• 1 minute
- Course Introductory Video• 4 minutes
- Different Kinds of Automata• 10 minutes
- Sets• 11 minutes
- Functions and Relations • 6 minutes
- Graphs and Trees • 5 minutes
- Proof Techniques • 6 minutes
- Language and Strings• 14 minutes
- Operations on a Language • 9 minutes
- Finite Automata • 8 minutes
- Deterministic Finite Accepter (DFA)• 8 minutes
- DFA and Regular Languages • 11 minutes
12 readings• Total 170 minutes
- Course Overview• 10 minutes
- Course Structure & Critical Information• 10 minutes
- Recommended Reading: Different Kinds of Automata• 15 minutes
- Recommended Reading: Sets• 15 minutes
- Recommended Reading: Functions and Relations • 15 minutes
- Recommended Reading: Graphs and Trees • 15 minutes
- Recommended Reading: Proof Techniques • 15 minutes
- Recommended Reading: Language and Strings• 15 minutes
- Recommended Reading: Operations on a Language • 15 minutes
- Recommended Reading: Finite Automata • 15 minutes
- Recommended Reading: Deterministic Finite Accepter (DFA)• 15 minutes
- Recommended Reading: DFA and Regular Languages • 15 minutes
12 assignments• Total 105 minutes
- Different Kinds of Automata• 3 minutes
- Sets (Collection of Distinct Elements)• 3 minutes
- Functions and Relations • 3 minutes
- Graphs and Trees • 3 minutes
- Proof Techniques • 3 minutes
- Language and Strings• 6 minutes
- Operations on a Language • 6 minutes
- Finite Automata • 6 minutes
- Deterministic Finite Accepter (DFA)• 6 minutes
- DFA and Regular Languages • 6 minutes
- Let's Practice: Introduction to Automata Theory• 30 minutes
- Test Yourself: Introduction to Automata Theory• 30 minutes
Finite Automata is a fundamental module in theoretical computer science that introduces the mathematical models of computation and their applications in problem-solving and language processing. This module focuses on the study of abstract machines and the computational problems that they can solve. Students will learn how to design, analyse, and implement finite automata to recognise regular languages and perform pattern matching.
What's included
11 videos11 readings13 assignments
11 videos• Total 34 minutes
- Non-Determinism• 2 minutes
- Lambda Transitions• 3 minutes
- Definition• 5 minutes
- Input String Rejection by an NFA• 3 minutes
- Input String Acceptance by an NFA• 2 minutes
- Language Accepted by an NFA• 4 minutes
- Infinite Language Acceptance Through Lambda Transitions• 2 minutes
- Single Final State for NFAs• 1 minute
- Every DFA is Trivially an NFA• 1 minute
- NFA can be Converted to an Equivalent DFA• 7 minutes
- Equivalence Proof• 3 minutes
11 readings• Total 165 minutes
- Recommended Reading: Non-Determinism• 15 minutes
- Recommended Reading: Lambda Transitions• 15 minutes
- Recommended Reading: Definition• 15 minutes
- Recommended Reading: Input String Rejection by an NFA• 15 minutes
- Recommended Reading: Input String Acceptance by an NFA• 15 minutes
- Recommended Reading: Language Accepted by an NFA• 15 minutes
- Recommended Reading: Infinite Language Acceptance Through Lambda Transitions• 15 minutes
- Recommended Reading: Single Final State for NFAs• 15 minutes
- Recommended Reading: Every DFA is Trivially an NFA• 15 minutes
- Recommended Reading: NFA can be Converted to an Equivalent DFA• 15 minutes
- Recommended Reading: Equivalence Proof• 15 minutes
13 assignments• Total 99 minutes
- Non-Determinism• 3 minutes
- Lambda Transitions• 3 minutes
- Definition• 3 minutes
- Input String Rejection by an NFA• 6 minutes
- Input String Acceptance by an NFA• 6 minutes
- Language Accepted by an NFA• 3 minutes
- Infinite Language Acceptance Through Lambda Transitions• 3 minutes
- Single Final State for NFAs• 3 minutes
- Every DFA is Trivially an NFA• 3 minutes
- NFA can be Converted to an Equivalent DFA• 3 minutes
- Equivalence Proof• 3 minutes
- Let's Practice: Finite Automata• 30 minutes
- Test Yourself: Finite Automata• 30 minutes
This module focuses on the study of Regular Languages within the context of Automata Theory. Regular languages form the foundation of formal language theory and are closely linked with Finite Automata. The module covers the theoretical underpinnings of regular languages, their characterisation through finite automata and regular expressions, and the practical applications in areas such as compiler design, pattern matching, and text processing. Students will explore how to manipulate regular languages and prove their properties and limitations.
What's included
19 videos19 readings21 assignments
19 videos• Total 65 minutes
- Standard Representations of a Regular Language• 7 minutes
- Union of Two Regular Languages• 1 minute
- Concatenation of Two Regular Languages • 2 minutes
- Closure Under Star Operation• 4 minutes
- Reverse of a Regular Language• 3 minutes
- Elementary Questions About Regular Languages • 5 minutes
- Grammar• 3 minutes
- Definition of Grammars• 5 minutes
- Linear Grammar and Non-Linear Grammar• 1 minute
- Regular Grammar• 3 minutes
- Any Regular Grammar Generates a Regular Language • 6 minutes
- Every Regular Language is Generated by Some Regular Grammar • 3 minutes
- Pigeonhole Principle• 3 minutes
- The Pigeonhole Principle and DFAs • 5 minutes
- The Pumping Lemma• 4 minutes
- Applications of Pumping Lemma• 3 minutes
- The Pumping Lemma - Palindrome• 3 minutes
- Another Application of Pumping Lemma• 3 minutes
- Factorial Length Strings • 3 minutes
19 readings• Total 285 minutes
- Recommended Reading: Standard Representations of a Regular Language• 15 minutes
- Recommended Reading: Union of Two Regular Languages• 15 minutes
- Recommended Reading: Concatenation of Two Regular Languages• 15 minutes
- Recommended Reading: Closure Under Star Operation• 15 minutes
- Recommended Reading: Reverse of a Regular Language• 15 minutes
- Recommended Reading: Elementary Questions About Regular Languages • 15 minutes
- Recommended Reading: Grammar• 15 minutes
- Recommended Reading: Definition of Grammars• 15 minutes
- Recommended Reading: Linear Grammar and Non-Linear Grammar• 15 minutes
- Recommended Reading: Regular Grammar• 15 minutes
- Recommended Reading: Any Regular Grammar Generates a Regular Language • 15 minutes
- Recommended Reading: Every Regular Language is Generated by Some Regular Grammar • 15 minutes
- Recommended Reading: Pigeonhole Principle• 15 minutes
- Recommended Reading: The Pigeonhole Principle and DFAs • 15 minutes
- Recommended Reading: The Pumping Lemma• 15 minutes
- Recommended Reading: Applications of Pumping Lemma• 15 minutes
- Recommended Reading: The Pumping Lemma - Palindrome• 15 minutes
- Recommended Reading: Another Application of Pumping Lemma• 15 minutes
- Recommended Reading: Factorial Length Strings• 15 minutes
21 assignments• Total 117 minutes
- Standard Representations of a Regular Language• 3 minutes
- Union of Two Regular Languages• 3 minutes
- Concatenation of Two Regular Languages• 3 minutes
- Closure Under Star Operation• 3 minutes
- Reverse of a Regular Language• 3 minutes
- Elementary Questions About Regular Languages • 3 minutes
- Grammar• 3 minutes
- Definition of Grammars• 3 minutes
- Linear Grammar and Non-Linear Grammar• 3 minutes
- Regular Grammar• 3 minutes
- Any Regular Grammar Generates a Regular Language • 3 minutes
- Every Regular Language is Generated by Some Regular Grammar • 3 minutes
- Pigeonhole Principle• 3 minutes
- The Pigeonhole Principle and DFAs • 3 minutes
- The Pumping Lemma• 3 minutes
- Applications of Pumping Lemma• 3 minutes
- The Pumping Lemma - Palindrome• 3 minutes
- Another Application of Pumping Lemma• 3 minutes
- Factorial Length Strings• 3 minutes
- Let's Practice: Properties of Regular Languages• 30 minutes
- Test Yourself: Properties of Regular Languages• 30 minutes
This module introduces the concept of Context-Free Languages (CFLs) and their fundamental role in the theory of computation and formal language theory. It covers the theoretical foundations, practical applications, and formal representation of CFLs through Context-Free Grammars (CFGs). Students will explore how CFLs are generated, manipulated, and analysed using derivation trees, parse trees, and normal forms such as Chomsky Normal Form (CNF) and Greibach Normal Form (GNF). The module also examines key properties of CFLs, including ambiguity, the pumping lemma for CFLs, and closure properties. Practical applications in programming languages, syntax analysis, and compiler design are also discussed.
What's included
20 videos20 readings22 assignments
20 videos• Total 79 minutes
- Introduction to CFL • 2 minutes
- Definition for CFG • 2 minutes
- CFG Example• 2 minutes
- Derivation Trees • 2 minutes
- Ambiguity• 7 minutes
- Inherent Ambiguity • 2 minutes
- NPDA Definition • 5 minutes
- PDA Overview • 4 minutes
- NPDA Example - 1• 5 minutes
- NPDA for Palindrome Strings • 4 minutes
- NPDA Rejection • 2 minutes
- NPDA Example - 2• 3 minutes
- Push String in NPDA • 2 minutes
- NPDA Accepting Strings with Equal Number of A’s and B’s • 3 minutes
- NPDAs Accept Context-Free Languages • 1 minute
- Converting Context-Free Grammars to NPDAs• 8 minutes
- Converting NPDAs to Context-Free Grammars• 8 minutes
- Definition• 4 minutes
- DPDA Example • 7 minutes
- NPDA vs DPDA • 6 minutes
20 readings• Total 300 minutes
- Recommended Reading: Introduction to CFL • 15 minutes
- Recommended Reading: Definition for CFG • 15 minutes
- Recommended Reading: CFG Example• 15 minutes
- Recommended Reading: Derivation Trees • 15 minutes
- Recommended Reading: Ambiguity• 15 minutes
- Recommended Reading: Inherent Ambiguity • 15 minutes
- Recommended Reading: NPDA Definition • 15 minutes
- Recommended Reading: PDA Overview • 15 minutes
- Recommended Reading: NPDA Example - 1• 15 minutes
- Recommended Reading: NPDA for Palindrome Strings • 15 minutes
- Recommended Reading: NPDA Rejection • 15 minutes
- Recommended Reading: NPDA Example - 2• 15 minutes
- Recommended Reading: Push String in NPDA • 15 minutes
- Recommended Reading: NPDA Accepting Strings with Equal Number of A’s and B’s • 15 minutes
- Recommended Reading: NPDAs Accept Context-Free Languages • 15 minutes
- Recommended Reading: Converting Context-Free Grammars to NPDAs• 15 minutes
- Recommended Reading: Converting NPDAs to Context-Free Grammars• 15 minutes
- Recommended Reading: Definition• 15 minutes
- Recommended Reading: DPDA Example • 15 minutes
- Recommended Reading: NPDA vs DPDA • 15 minutes
22 assignments• Total 126 minutes
- Introduction to CFL • 3 minutes
- Definition for CFG • 3 minutes
- CFG Example• 3 minutes
- Derivation Trees • 3 minutes
- Ambiguity• 3 minutes
- Inherent Ambiguity • 3 minutes
- NPDA Definition • 3 minutes
- PDA Overview • 3 minutes
- NPDA Example - 1• 3 minutes
- NPDA for Palindrome Strings • 3 minutes
- NPDA Rejection • 6 minutes
- NPDA Example - 2• 3 minutes
- Push String in NPDA • 3 minutes
- NPDA Accepting Strings with Equal Number of A’s and B’s • 3 minutes
- NPDAs Accept Context-Free Languages • 3 minutes
- Converting Context-Free Grammars to NPDAs• 3 minutes
- Converting NPDAs to Context-Free Grammars• 3 minutes
- Definition• 3 minutes
- DPDA Example • 6 minutes
- NPDA vs DPDA • 3 minutes
- Let's Practice: Context Free Languages• 30 minutes
- Test Yourself: Context Free Languages• 30 minutes
This module introduces key techniques for simplifying context-free grammars (CFGs), including the removal of useless, nullable, and unit productions. It also covers the transformation of CFGs into normal forms, such as Chomsky Normal Form (CNF) and Greibach Normal Form (GNF), which are essential for parsing and algorithmic applications. Additionally, the module explores fundamental properties of Context-Free Languages (CFLs), including closure properties, the pumping lemma, and decision problems.
What's included
15 videos15 readings17 assignments
15 videos• Total 65 minutes
- S-Grammar • 8 minutes
- Simplification of Context Free Grammars • 8 minutes
- Decidable Properties of CFL• 2 minutes
- Positive Properties • 3 minutes
- Negative Properties • 2 minutes
- Intersection of Context-Free Languages and Regular Languages• 2 minutes
- Applications of Regular Closure • 3 minutes
- Introduction to Pumping Lemma for CFL• 6 minutes
- The Pumping Lemma for CFL • 6 minutes
- Application of the Pumping Lemma for CFL• 6 minutes
- The Language WW is not Context Free• 5 minutes
- Chomsky Normal Form• 4 minutes
- CYK Membership Algorithm• 5 minutes
- Greibach Normal Form• 2 minutes
- Chomsky Hierarchy• 3 minutes
15 readings• Total 211 minutes
- Recommended Reading: S-Grammar • 15 minutes
- Recommended Reading: Simplification of Context Free Grammars • 15 minutes
- Recommended Reading: Decidable Properties of CFL• 15 minutes
- Recommended Reading: Positive Properties • 15 minutes
- Recommended Reading: Negative Properties • 15 minutes
- Recommended Reading: Intersection of Context-Free Languages and Regular Languages• 15 minutes
- Recommended Reading: Applications of Regular Closure • 15 minutes
- Recommended Reading: Introduction to Pumping Lemma for CFL• 15 minutes
- Recommended Reading: The Pumping Lemma for CFL • 15 minutes
- Recommended Reading: Application of the Pumping Lemma for CFL• 15 minutes
- Recommended Reading: The Language WW is not Context Free• 15 minutes
- Recommended Reading: Chomsky Normal Form• 15 minutes
- Recommended Reading: CYK Membership Algorithm• 1 minute
- Recommended Reading: Greibach Normal Form• 15 minutes
- Recommended Reading: Chomsky Hierarchy• 15 minutes
17 assignments• Total 108 minutes
- S-Grammar • 6 minutes
- Simplification of Context Free Grammars • 3 minutes
- Decidable Properties of CFL• 3 minutes
- Positive Properties • 3 minutes
- Negative Properties • 3 minutes
- Intersection of Context-Free Languages and Regular Languages• 3 minutes
- Applications of Regular Closure • 3 minutes
- Introduction to Pumping Lemma for CFL• 3 minutes
- The Pumping Lemma for CFL • 3 minutes
- Application of the Pumping Lemma for CFL• 3 minutes
- The Language WW is not Context Free• 3 minutes
- Chomsky Normal Form• 3 minutes
- CYK Membership Algorithm• 3 minutes
- Greibach Normal Form• 3 minutes
- Chomsky Hierarchy• 3 minutes
- Let's Practice: Simplification, Normal Forms and Properties of CFL• 30 minutes
- Test Yourself: Simplification, Normal Forms and Properties of CFL• 30 minutes
This module introduces the Turing Machine, a fundamental theoretical model of computation. It covers the formal definition of a Turing Machine, its components, and its functioning as a computational device. Students will explore different approaches to designing Turing Machines and work through design examples to understand their applications. The module also examines the dual role of Turing Machines: As a language acceptor to recognise formal languages and as a transducer to compute functions, demonstrating their significance in theoretical computer science and the foundations of computation.
What's included
17 videos4 readings17 assignments
17 videos• Total 104 minutes
- Outline of the Module• 2 minutes
- Definition of a Turing Machine• 7 minutes
- A Simple TM• 6 minutes
- Transition Graphs to Represent TM• 5 minutes
- Instantaneous Description• 6 minutes
- Infinite Loops• 2 minutes
- Definition of Language Accepted by TM• 2 minutes
- TM that Accepts L = {0ⁿ1ⁿ: n ≥ 1}• 10 minutes
- L = {0ⁿ1ⁿ : n ≥ 1} - Computation of 0011 • 9 minutes
- TM that Accepts L = {0ⁿ 1ⁿ 2ⁿ : n ≥ 1}• 8 minutes
- Turing Computable Function• 2 minutes
- Addition• 10 minutes
- Turing Machine for Copying a String • 9 minutes
- Turing Machine for Comparison• 8 minutes
- How to Design a Turing Machine for a Simple Task? • 9 minutes
- Design a Turing Machine• 8 minutes
- Summary of the Module• 1 minute
4 readings• Total 180 minutes
- Recommended Reading: Fundamentals of Turing Machine• 50 minutes
- Recommended Reading: Turing Machines as a Language Acceptor• 40 minutes
- Recommended Reading: Turing Machines as a Transducer• 60 minutes
- Recommended Reading: Turing Defined Problems and Solutions• 30 minutes
17 assignments• Total 105 minutes
- Definition of a Turing Machine • 3 minutes
- A Simple TM• 3 minutes
- Transition Graphs to Represent TM• 3 minutes
- Instantaneous Description • 3 minutes
- Infinite Loops• 3 minutes
- Definition of Language Accepted by TM• 3 minutes
- TM that Accepts L = {0ⁿ1ⁿ: n ≥ 1}• 3 minutes
- L = {0ⁿ1ⁿ : n ≥ 1} - Computation of 0011 • 3 minutes
- TM that Accepts L = {0ⁿ 1ⁿ 2ⁿ : n ≥ 1}• 3 minutes
- Turing Computable Function• 3 minutes
- Addition• 3 minutes
- Turing Machine for Copying a String• 3 minutes
- Turing Machine for Comparison• 3 minutes
- How to Design a Turing Machine for a Simple Task?• 3 minutes
- Design a Turing Machine• 3 minutes
- Let's Practice: Introduction to Turing Machine• 30 minutes
- Test Yourself: Introduction to Turing Machine• 30 minutes
This module explores advanced concepts and variations of the Turing Machine, a cornerstone of computational theory. It delves into Turing Machines with finite control, multiple tracks, two-way infinite tapes, multi-tape configurations, multi-head mechanisms, and non-deterministic models, highlighting their unique capabilities and computational power. The concept of the Universal Turing Machine is introduced, demonstrating its role as a model of general computation. The module also examines Turing-computable functions and their implications, culminating in an understanding of the Church-Turing Thesis, which formalises the limits of algorithmic computation and the foundations of computer science.
What's included
17 videos4 readings17 assignments
17 videos• Total 75 minutes
- Outline of the Module• 2 minutes
- Turing Machine Design Example• 5 minutes
- Macro-Instruction in Turing Machine• 5 minutes
- Subprogram in Turing Machine• 5 minutes
- Turing’s Thesis • 4 minutes
- Equivalence of Classes of Automata• 7 minutes
- Turing Machines with Stay-Option• 8 minutes
- Turing Machines with Stay-Option Example• 4 minutes
- Turing Machines with Semi-Infinite Tape• 11 minutes
- Multitape Turing Machines• 5 minutes
- Multitape Turing Machine Example• 3 minutes
- Offline Turing Machine• 6 minutes
- Multi-Dimensional Turing Machine• 2 minutes
- Non-Deterministic Turing Machine • 4 minutes
- Universal Turing Machines• 3 minutes
- Turing-Computable Functions• 2 minutes
- Summary of the Module• 1 minute
4 readings• Total 180 minutes
- Recommended Reading: Combining Turing Machines• 50 minutes
- Recommended Reading: Models of Turing Machine• 40 minutes
- Recommended Reading: Models of Turing Machine (Part 2)• 60 minutes
- Recommended Reading: Foundational Concepts of Turing Machine• 30 minutes
17 assignments• Total 105 minutes
- Turing Machine Design Example• 3 minutes
- Macro-Instruction in Turing Machine• 3 minutes
- Subprogram in Turing Machine• 3 minutes
- Turing’s Thesis• 3 minutes
- Equivalence of Classes of Automata• 3 minutes
- Turing Machines with Stay-Option• 3 minutes
- Turing Machines with Stay-Option Example• 3 minutes
- Turing Machines with Semi-Infinite Tape• 3 minutes
- Multitape Turing Machines• 3 minutes
- Multitape Turing Machines Example• 3 minutes
- Offline Turing Machines• 3 minutes
- Multi-Dimensional Turing Machine• 3 minutes
- Non-Deterministic Turing Machine• 3 minutes
- Universal Turing Machines• 3 minutes
- Turing-Computable Functions• 3 minutes
- Let's Practice: Variations of Turing Machine• 30 minutes
- Test Yourself: Variations of Turing Machine• 30 minutes
This module examines the classification of formal languages and their relationship to computational models. It focuses on recursive and recursively enumerable languages, exploring their properties and distinctions within the computational framework. The concept of unrestricted grammars is introduced as a powerful tool for generating languages beyond regular and context-free classes. Additionally, the module delves into context-sensitive grammars (CSG) and their place in the Chomsky Hierarchy, providing a structured understanding of language classes and their computational complexity. These topics form the foundation for analysing the expressive power of different formal systems and their real-world applications.
What's included
15 videos4 readings15 assignments
15 videos• Total 42 minutes
- Outline of the Module• 2 minutes
- Recursive Languages• 2 minutes
- Recursive Languages Examples• 4 minutes
- Recursively Enumerable Language• 6 minutes
- Recursively Enumerable Language Examples• 3 minutes
- Non-Recursively Enumerable Language• 3 minutes
- Non-Recursively Enumerable Language Examples• 3 minutes
- Languages that is Recursively Enumerable but not Recursive• 3 minutes
- Unrestricted Grammars• 2 minutes
- Unrestricted Grammars - An Example• 1 minute
- Unrestricted Grammars & RE Languages• 2 minutes
- Context Sensitive Grammars• 3 minutes
- Context Sensitive Languages• 3 minutes
- Chomsky Hierarchy• 3 minutes
- Summary of the Module• 1 minute
4 readings• Total 215 minutes
- Recommended Reading: Recursive and Recursively Enumerable Languages• 50 minutes
- Recommended Reading: Languages that are not Recursively Enumerable• 45 minutes
- Recommended Reading: Unrestricted Grammars• 60 minutes
- Recommended Reading: Context Sensitive Grammars, Languages and Chomsky Hierarchy• 60 minutes
15 assignments• Total 99 minutes
- Recursive Languages• 3 minutes
- Recursive Languages Examples• 3 minutes
- Recursively Enumerable Language• 3 minutes
- Recursively Enumerable Language Examples• 3 minutes
- Non-Recursively Enumerable Language• 3 minutes
- Non-Recursively Enumerable Language Examples• 3 minutes
- Languages that is Recursively Enumerable but not Recursive• 3 minutes
- Unrestricted Grammars• 3 minutes
- Unrestricted Grammars - An Example• 3 minutes
- Unrestricted Grammars & RE Languages• 3 minutes
- Context Sensitive Grammars• 3 minutes
- Context Sensitive Languages• 3 minutes
- Chomsky Hierarchy• 3 minutes
- Let's Practice: Hierarchy of Formal Languages and Automata• 30 minutes
- Test Yourself: Hierarchy of Formal Languages and Automata• 30 minutes
This module, part of Automata Theory, focuses on the foundational concepts of computability and decidability. Students will study formal languages, automata models (finite automata, pushdown automata, Turing machines), and the classification of computational problems based on their solvability. The module examines how Turing machines serve as a standard for what is "computable" and explores the limits of algorithmic problem solving through examples of decidable and undecidable languages. Students will engage in formal reasoning, proofs, and reductions to understand the theoretical boundaries of computation.
What's included
11 videos11 readings13 assignments
11 videos• Total 50 minutes
- Decidability• 3 minutes
- Membership Problem• 4 minutes
- Halting Problem• 7 minutes
- Reducibility and the Halting Problem• 6 minutes
- Blank Tape Halting Problem• 6 minutes
- Decidability Properties of Recursively Enumerable Languages• 5 minutes
- The Post Correspondence Problem• 3 minutes
- Modified Post Correspondence Problem• 7 minutes
- Decidability of PC Problem• 4 minutes
- Uncomputable Functions• 2 minutes
- Rice’s Theorem• 4 minutes
11 readings• Total 165 minutes
- Decidability• 15 minutes
- Membership Problem• 15 minutes
- The Halting Problem• 15 minutes
- Reducibility and the Halting Problem• 15 minutes
- Blank Tape Halting Problem• 15 minutes
- Decidability Properties of Recursively Enumerable Languages• 15 minutes
- The Post Correspondence Problem• 15 minutes
- Modified Post Correspondence Problem• 15 minutes
- Decidability of PC Problem• 15 minutes
- Uncomputable Functions• 15 minutes
- Rice’s Theorem• 15 minutes
13 assignments• Total 93 minutes
- Decidability• 3 minutes
- Membership Problem• 3 minutes
- The Halting Problem• 3 minutes
- Reducibility and the Halting Problem• 3 minutes
- Blank Tape Halting Problem• 3 minutes
- Decidability Properties of Recursively Enumerable Languages• 3 minutes
- The Post Correspondence Problem• 3 minutes
- Modified Post Correspondence Problem• 3 minutes
- Decidability of PC Problem• 3 minutes
- Uncomputable Functions• 3 minutes
- Rice’s Theorem• 3 minutes
- Let's Practice: Computability and Decidability• 30 minutes
- Test Yourself: Computability and Decidability• 30 minutes
This module, integrated into Automata Theory, introduces the study of computational complexity, understanding not just what problems can be solved, but how efficiently they can be solved. Students will explore models of computation, such as Turing machines, to analyse time and space complexity. The course covers complexity classes like P, NP, and NP-complete problems, with a focus on formal methods to prove complexity bounds. Through examples and theoretical proofs, students will develop the ability to evaluate the efficiency of algorithms and the intrinsic difficulty of computational problems.
What's included
8 videos9 readings10 assignments
8 videos• Total 41 minutes
- Efficiency of Computation• 8 minutes
- Polynomial Time Complexity• 5 minutes
- The Class P• 2 minutes
- Exponential Time Complexity• 5 minutes
- Satisfiability Problem• 3 minutes
- Non-Deterministic Polynomial Time• 7 minutes
- Is P = NP?• 6 minutes
- NP-Complete Problems• 5 minutes
9 readings• Total 125 minutes
- Recommended Reading: Efficiency of Computation • 15 minutes
- Recommended Reading: Polynomial Time Complexity• 15 minutes
- Recommended Reading: The Class P• 15 minutes
- Recommended Reading: Exponential Time Complexity• 15 minutes
- Recommended Reading: Satisfiability Problem• 15 minutes
- Recommended Reading: Non-Deterministic Polynomial Time• 15 minutes
- Recommended Reading: Is P = NP?• 15 minutes
- Recommended Reading: NP-Complete Problems• 10 minutes
- Course Summary• 10 minutes
10 assignments• Total 84 minutes
- Efficiency of Computation• 3 minutes
- Polynomial Time Complexity• 3 minutes
- The Class P• 3 minutes
- Exponential Time Complexity• 3 minutes
- Satisfiability Problem• 3 minutes
- Non-Deterministic Polynomial Time• 3 minutes
- Is P = NP?• 3 minutes
- NP-Complete Problems• 3 minutes
- Let's Practice: Overview of Computational Complexity• 30 minutes
- Test Yourself: Overview of Computational Complexity• 30 minutes
Instructor

Offered by

Offered by

Birla Institute of Technology & Science, Pilani (BITS Pilani) is one of only ten private universities in India to be recognised as an Institute of Eminence by the Ministry of Human Resource Development, Government of India. It has been consistently ranked high by both governmental and private ranking agencies for its innovative processes and capabilities that have enabled it to impart quality education and emerge as the best private science and engineering institute in India. BITS Pilani has four international campuses in Pilani, Goa, Hyderabad, and Dubai, and has been offering bachelor's, master’s, and certificate programmes for over 58 years, helping to launch the careers for over 1,00,000 professionals.
Explore more from Algorithms
BBirla Institute of Technology & Science, Pilani
Course
TThe Hong Kong University of Science and Technology
Course
TThe Hong Kong University of Science and Technology
Course
UUniversity of London
Course
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.

Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,
¹ Some assignments in this course are AI-graded. For these assignments, your data will be used in accordance with Coursera's Privacy Notice.