This document provides an introduction and overview of the Theory of Computation course BCSE304L. It discusses what computation and computers are from an abstract, theoretical perspective. Computation is defined as an effective method that can solve problems with a finite number of inputs and outputs. Computers are physically realizable machines that can perform computation. The Theory of Computation studies what problems can and cannot be solved by computers based on their physical limitations. The course will cover automata theory including finite automata, context-free grammars, and Turing machines. It will examine formal language classes and their relationships. Students will learn to design grammars and recognizers, prove theorems, and determine decidability of problems. The course is divided