Using a unique pedagogical approach,
this text introduces mathematical logic by guiding students
in implementing the underlying logical concepts and mathematical proofs
via Python programming.
This approach, tailored to the unique intuitions and strengths
of the ever-growing population of programming-savvy students,
brings mathematical logic into the comfort zone
of these students and provides clarity that can only be achieved
by a deep hands-on understanding and
the satisfaction of having created working code.
While the approach is unique, the text follows the same set of topics
typically covered in a one-semester undergraduate course,
including propositional logic and first-order predicate logic,
culminating in a proof of Gödel’s completeness theorem.
A sneak peek to Gödel’s incompleteness theorem is also provided.
The textbook is accompanied by an extensive collection of programming tasks,
code skeletons, and unit tests.
Familiarity with proofs and basic proficiency in Python is assumed,