Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Online Course

# Automata Theory

860
• Provider
• Cost Free Online Course (Audit)
• Session Self Paced
• Language English
• Certificate \$129 Certificate Available
• Effort 5-10 hours a week
• Duration 7 weeks long

Taken this course? Share your experience with other students. Write review

## Overview

We begin with a study of finite automata and the languages they can define (the so-called "regular languages." Topics include deterministic and nondeterministic automata, regular expressions, and the equivalence of these language-defining mechanisms. We also look at closure properties of the regular languages, e.g., the fact that the union of two regular languages is also a regular language. We consider decision properties of regular languages, e.g., the fact that there is an algorithm to tell whether or not the language defined by two finite automata are the same language. Finally, we see the pumping lemma for regular languages -- a way of proving that certain languages are not regular languages.

Our second topic is context-free grammars and their languages. We learn about parse trees and follow a pattern similar to that for finite automata: closure properties, decision properties, and a pumping lemma for context-free languages. We also introduce the pushdown automaton, whose nondeterministic version is equivalent in language-defining power to context-free grammars.

Next, we introduce the Turing machine, a kind of automaton that can define all the languages that can reasonably be said to be definable by any sort of computing device (the so-called "recursively enumerable languages"). We shall learn how "problems" (mathematical questions) can be expressed as languages. That lets us define problems to be "decidable" if their language can be defined by a Turing machine and "undecidable" if not. We shall see some basic undecidable problems, for example, it is undecidable whether the intersection of two context-free languages is empty.

Last, we look at the theory of intractable problems. These are problems that, while they are decidable, have almost certainly no algorithm that runs in time less than some exponential function of the size of their input. We meet the NP-complete problems, a large class of intractable problems. This class includes many of the hard combinatorial problems that have been assumed for decades or even centuries to require exponential time, and we learn that either none or all of these problems have polynomial-time algorithms. A common example of an NP-complete problem is SAT, the question of whether a Boolean expression has a truth-assignment to its variables that makes the expression itself true.

Jeffrey Ullman

## Reviews for edX's Automata Theory Based on 20 reviews

• 5 stars 35%
• 4 stars 40%
• 3 stars 20%
• 2 star 0%
• 1 star 5%

Did you take this course? Share your experience with other students.

Write a review
• 1
Anonymous
Anonymous completed this course.
This course covers following topics : finite automata (deterministic, non-deterministic), regular expressions, context-free grammars and languages, Turing machines, decidability, and P and NP problems. The course closely follows the book “Introduction to Automata Theory, Languages, and Computation” by John Hopcroft, Rajeev Motwani and Jeffrey Ullman. I found the book more interesting than video lectures that , in my opinion, were too long and sometimes boring. Last two weeks, again, in my opinion, were rushed and I didn't really understand P and NP problems. That said, I'm glad I took this course and satisfied my interest in regular languages and context-free grammars.
6 people found
Mark W
Mark completed this course.
Automata lead me to more revelations about the nature of computing than any other class I’ve taken, online or offline. It was fantastic. Discrete math is definitely a pre-requisite but the course info page provided a link to a free online book for students without the needed background!

The only caveat about this class is that unlike a lot of MOOCs, just working at the keyboard doesn’t work so well. I strongly recommend breaking out a pencil and paper and working through all the problems in the videos and homework assignments.
7 people found
Anonymous
Anonymous completed this course.
Automata is an interesting concept and I had no prior knowledge to this part of computer science. Course content is good but one needs to invest lot of effort to learn it. I used 2 books linz(1) and ullman(2) books for studying the subject. But still i need to study hard to learn the concepts properly. NP complete and context free grammars were the points where i became blank.

But finally completed the course :D

Cheers!

1 person found
Anonymous
Anonymous completed this course.
As the other reviewer stated, the lectures are too long , and the concepts advanced is a very rapid fashion.

However i would say , i don't have a computer science or maths background. It was useful for quality information on automata
3 people found
Kristina Š
by Kristina completed this course and found the course difficulty to be hard.
This is a great course covering automata and complexity theory, aimed at those who can follow university-level mathematics easily. So, if there's no prior background, this might not be the case for you, since it's more math-oriented rather than computer science-oriented. There are a lot of proofs, and interesting discussion problems that have been posted every week, and solved in the forums. There are two programming assignments as well, so this is a nice combination of theory and practice. Discussion forums were very useful, and professor was active in these as well. I came to this class after finishing the Mining Massive Datasets one, which I extremely enjoyed, and I've put the Automata on my watchlist, and it certainly was not a mistake.

Anonymous
Anonymous completed this course.
Automata is an interesting concept and I had no prior knowledge to this part of computer science. Course content is good but one needs to invest lot of effort to learn it. I used 2 books linz(1) and ullman(2) books for studying the subject. But still i need to study hard to learn the concepts properly. NP complete and context free grammars were the points where i became blank.

But finally completed the course :D

Cheers!

Prashant S
by Prashant is taking this course right now, spending 10 hours a week on it and found the course difficulty to be hard.
This course could be made more interesting .Video lectures sometimes feel very dry .This course is foundation of computer science so this concepts should be explained using concrete example to enforce understanding .
Andrei
Andrei completed this course.
1 person found
Marat M
Marat completed this course, spending 10 hours a week on it and found the course difficulty to be hard.
0 person found
Ashlynn P
by Ashlynn completed this course.
Monica G
Monica completed this course.
Rey C
by Rey completed this course.
Mohammed E
by Mohammed completed this course.
Bruno L
by Bruno completed this course.
Félix P
by Félix completed this course.
Marian M
by Marian completed this course.
Colin K
by Colin completed this course.
Christopher P
by Christopher completed this course.
Ilya R
by Ilya completed this course.
1 person found
Rafael P
Rafael is taking this course right now.
0 person found