Introduction to the mathematical foundations from discrete mathematics for analyzing computer algorithms, both for correctness and performance. Focuses on the introduction to models of computation, including finite state machines and Turing machines.