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.


您将学到什么
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.
您将获得的技能
要了解的详细信息
了解顶级公司的员工如何掌握热门技能

该课程共有10个模块
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.
涵盖的内容
13个视频12篇阅读材料12个作业
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.
涵盖的内容
11个视频11篇阅读材料13个作业
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.
涵盖的内容
19个视频19篇阅读材料21个作业
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.
涵盖的内容
20个视频20篇阅读材料22个作业
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.
涵盖的内容
15个视频15篇阅读材料17个作业
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.
涵盖的内容
17个视频4篇阅读材料17个作业
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.
涵盖的内容
17个视频4篇阅读材料17个作业
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.
涵盖的内容
15个视频4篇阅读材料15个作业
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.
涵盖的内容
11个视频11篇阅读材料13个作业
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.
涵盖的内容
8个视频9篇阅读材料10个作业
位教师

从 Algorithms 浏览更多内容

Birla Institute of Technology & Science, Pilani
状态:免费试用University of Colorado Boulder

EIT Digital
人们为什么选择 Coursera 来帮助自己实现职业发展




常见问题
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.
更多问题
提供助学金,
¹ 本课程的部分作业采用 AI 评分。对于这些作业,将根据 Coursera 隐私声明使用您的数据。





