
A Course on Automata Theory - brudgers
https://www.coursera.org/course/automata
======
gnuvince
When I was an undergrad at Université de Montréal, the theory of computation
class which dealt with automata was called "Informatique Théorique";
literally, "theoretical computer science". "Why do theoretical computer
science," I'd ask, "let's do practical computer science instead!" However,
thanks to the enthusiasm of my professor and his teaching assistant and the
very interesting nature of the subject, it became the class that I enjoyed the
most of my whole undergrad! And to this day, some of the lessons I learned
remain important in my day to day work for some of the reasons mentioned by
prof Ullman in the video: I now know that some problems can't be solved, some
take too long to solve, and some problems require less powerful mechanisms to
solve. And knowing this, I'm able to recognize when they are applicable or at
least have an intuition that maybe they could be applicable and thus I have a
clearer idea of how to solve certain problems.

I highly encourage you to learn about this stuff, it's a lot of fun and is
actually practical!

~~~
userbinator
Regular expressions are probably one of the most practical and immediately
obviously useful things to come out of automata theory.

~~~
jimhefferon
I'm interested to hear you say this. I teach this course, to students who
mostly go on to do Java coding. I have several times run into an old student
who told me that they never once used regexes after my class, either in school
or in work.

~~~
iso8859-1
One reason may be that practical regexes have so many extensions that you
can't many of the usual tricks on them.

[http://stackoverflow.com/questions/6363397/how-to-tell-if-
on...](http://stackoverflow.com/questions/6363397/how-to-tell-if-one-regular-
expression-matches-a-subset-of-another-regular-expres)

~~~
brudgers
I find it helpful to distinguish between "regular expressions" as something
mathematical and "regexes" as nebulous more-than an NFA and less than a Turing
complete grammar...DFA regex engines being the Platypus that proves the rule.

As soon as you have backtracking and capture groups it's not a regular
expression in the mathematical sense. These features make regexes more useful
in many simple cases at the cost of making them harder to reason about in more
difficult cases.

------
schoen
I took this on Coursera a couple of years ago and it was the automata theory
class I never managed to take in college but always wanted to.

As you might expect from a course by Ullman, it's heavy on theory and detail.

People are right to say that this is a core topic in computer science, and I'd
recommend it to people who like CS conceptually and are curious about the
parts beyond programming. Automata come up everywhere!

~~~
volkadav
Agreed; I took this the first time around and had a great time. Highly
recommended! :)

For what it's worth, Sipser's _Introduction to the Theory of Computation_
helped me get through some of the gnarlier spots (and in turn, the lectures
through some of the harder parts of the book). I picked up a used copy of the
2nd edition cheap off Amazon (it was sub-$20 iirc).

------
dhawalhs
A few user written reviews for those interested in the course:
[https://www.class-central.com/mooc/376/coursera-
automata#rev...](https://www.class-central.com/mooc/376/coursera-
automata#reviews)

------
dopeboy
Out of all the theory I learned in school, learning a FSA in compilers class
has probably been the most helpful. Whether I'm teaching kids 'if' statements
for implementing a vending machine or sitting down with a client and trying to
document their workflow, automata theory has been incredibly useful for me.

------
WasimBhai
I am an EE who has previously tried to take this course and found it
incredibly hard because of theory, formal proofs etc.. Can anyone recommend a
book, lecture notes to accompany this course to make life easy?

~~~
ArloJamesBarnes
I am not sure what the course is like, so I am not sure if this would help,
but Stephen Wolfram's book about automata is pretty good.

------
groar
For those who want to dive further in automata theory, transducers and the
non-commutative algebraic view of the theory, the following one by J.
Sakarovitch is a fantastic book :
[http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=978...](http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=9780521844253)

------
data_spy
I'm probably going to check this out. I've taken several Coursera courses in
the past and they've been great.

------
romaniv
I was lucky to have an excellent professor for a similar course in college (it
was called Computation Theory). It completely changed the way I think about
programming. Specifically, it changed how I think about program state and
software bugs. Also, knowing about finite state machines really helps with
requirement analysis.

So, highly recommended.

------
Chetan496
The book by Peter Linz for Theory of Computation
([https://books.google.co.in/books/about/An_Introduction_to_Fo...](https://books.google.co.in/books/about/An_Introduction_to_Formal_Languages_and.html?id=Cgooanwdo9AC))
is also a good text.

------
saurabhjha
I am taking this course as it is a prerequisite to the subjects of compilers
and computational complexity theory.

Has anyone used Sipser's text with this course? I found Sipser's textbook a
great introduction to this field and thinking of complementing this course
with the book.

------
psk
I've had a few similar courses at university, but they've always been limited
to NP-completeness, does anyone know how I can expand on this? That is, learn
beyond NP-completeness (Books / Online courses etc)?

~~~
grumpy-buffalo
If you're interested in computational complexity theory, I recommend
"Computational Complexity" by Christos Papadimitriou. It's a classic, though
it's a bit dated.

------
hyperpallium
Do you have to use your full name to enroll, in the field asking for it? I've
probably become excessively paranoid about giving personal info on the web -
Stanford is probably OK...

~~~
mden
Judging from my account, no you don't. Maybe if you are planning on being
certified but just to take a course, no.

