This course discusses topics in finite automata, regular languages, regular grammars, and applications. Push down automata, trees, context-free grammars, and applications. Turing machines. Introduction to computability and complexity theory as well. Research papers of high impact published recently in the literature will be provided as reading assignments.