This document discusses using quantum computers for computation and simulation. It begins by defining classical computation and complexity theory. It then introduces quantum computation, describing how quantum bits can represent information and how quantum algorithms provide speedups over classical algorithms for some problems like factoring and simulation. It discusses challenges like error correction and outlines some applications of quantum computers like solving systems of linear equations and optimization problems.