This course introduces different concepts in automata theory and formal languages, including formal proofs, deterministic and non-deterministic automata, regular expressions, regular languages, contextfree grammars and languages, and Turing machines.