Theory of computation is the study of how problems can be solved using formal mathematical models of computation that reflect real-world computers. It includes automata theory, which studies abstract machines and how they can be used to solve problems. Models of computation are represented using tools like flow charts, state transition diagrams, and transition tables. Theory of computation has applications in areas like text processing, web browsing, compiler design, and artificial intelligence. It builds on fields like set theory, model theory, and computability theory. Key topics covered include finite automata, regular expressions and languages, context-free grammars and languages, and the undecidability of some computational problems.