The course introduces different concepts related to formal languages, including regular/context-free/unrestricted grammars, finite/pushdown automata, regular expressions/languages.
These concepts are motivated by concrete examples (word completion, programming language design); in particular we explain how unrestricted grammars can be used as models of computation.