top | item 10089092

A Course on Automata Theory

198 points| brudgers | 10 years ago |coursera.org

30 comments

order
[+] gnuvince|10 years ago|reply
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|10 years ago|reply
Regular expressions are probably one of the most practical and immediately obviously useful things to come out of automata theory.
[+] schoen|10 years ago|reply
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|10 years ago|reply
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).

[+] dopeboy|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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.
[+] data_spy|10 years ago|reply
I'm probably going to check this out. I've taken several Coursera courses in the past and they've been great.
[+] romaniv|10 years ago|reply
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.

[+] saurabhjha|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
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|10 years ago|reply
Judging from my account, no you don't. Maybe if you are planning on being certified but just to take a course, no.
[+] schoen|10 years ago|reply
Coursera is trying to branch out into academic partnerships and professional credentialing, which will probably want your legal name if they become relevant to your use of Coursera. I don't think they have a way to confirm your name for a simple course enrollment.
[+] makoz|10 years ago|reply
Only really matters for certificate.
[+] jules|10 years ago|reply
The signup form has a field named Full Name, but what's stopping you from using a pseudonym?