The syntax and semantics of propositional and predicate
logic. Applications to program specification and verification.
Optional topics include set theory and induction using the formal
logical language of the first part of the course.
By taking this course, students will master the
syntax and manipulations of propositional and
predicate logic, as well their informal semantics.
The proper understanding of propositional logic is
fundamental to the most basic levels of computer
programming, while the ability to correctly use
variables, scope and quantifiers is crucial in the
use of loops, subroutines, and modules, and in software
design. Logic is used in many diverse areas of
computer science including digital design, program
verification, databases, artificial intelligence,
algorithm analysis, and software specification. We
will not follow a classical treatment of logic.
Instead we will use an "equational" treatment. This
equational approach will also be the basis for the
topics in discrete mathematics treated in MATH 2090.
See the first paragraph in the description of MATH 2090
(later in this minicalendar) for further comment about the
importance of formal logic for good programming.
Prerequisite:One OAC in mathematics or equivalent, or AK/MATH 1710 6.0.
Exclusions:AS/SC/MATH 1120 3.0,
AS/SC/AK/MATH 1190 3.0. This course is not open
to any student who has taken or is taking
any 3000- or higher-level MATH course.
Coordinator: Fall: S. Watson Winter: G. Tourlakis