(4)FA, alternate years. An introduction to first-order logic, computability and computational complexity. Topics covered include soundness and completeness of a formal proof system, computability and non-computability, and computational complexity with an emphasis on NP-completeness. Also listed as CS 312. Prerequisite: either MATH 255 or both MATH 251 and MATH 252.