A Crash Course on Theory of Computation -Key Concepts of Automata Theory and Formal Language for Interview and Exams