Theoretical Computer Science Stack Exchange is a question and answer site for theoretical computer scientists and researchers in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'll be teaching a standard undergraduate class on languages and automata next semester, and would prefer to use a legitimate free or low-cost text. Any suggestions?

I love the Sipser text but the latest edition costs $196, which is hard to say with a straight face in the age of free courses.

share|cite|improve this question
up vote 12 down vote accepted

Maheshwari and Smid's Introduction to Theory of Computation is free, with a Creative Commons license. It has some computability and complexity theory as well but seems to be primarily on languages and automata.

share|cite|improve this answer
Thanks! I will probably use this as the main text, augmented with the Fleck & Har-Peled lecture notes. – Kevin A. Wortman Oct 3 '12 at 21:51

Models of Computation — Exploring the Power of Computing by John E. Savage (Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States license).

share|cite|improve this answer

There are class notes online. For example...

share|cite|improve this answer

I totally recommend the draft of a book Mathematical Foundations of Automata Theory by Jean-Eric Pin. Also, you should check his home page for more automata related stuff. Note however that this books is oriented to semigroup-theory, so it depends on what you want to teach to your students.

share|cite|improve this answer
That's hardly an introductory text. – Dave Clarke Oct 3 '12 at 8:19
Yeah, that looks like a fine text, but my target audience doesn't generally have any abstract algebra background. – Kevin A. Wortman Oct 4 '12 at 0:37

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.