This course is an introduction to basic mathematical logic, and
its deep connections to computing. The goal of the course is to
learn how logical techniques can be used to reason formally
about programs and computation. The purpose of such reasoning is
to prove interesting and relevant properties about programs. In
the course of doing so, one frequently uncovers program errors
that failed to be exposed during test runs.
The links on the left allow you to navigate to specific
information about this course.
Class web page layout borrowed from Pete Manolios.