Explores the limits and capabilities of computational models. Core concepts are Regular Expressions and Finite Automata , Context-Free Grammars and Push-Down Automata , the properties of different languages (like the Pumping Lemma ), and the power of Turing Machines and the concept of Undecidability