Formal logic is the fundamental mathematics of computer science. Its impact ranges from the design of programming languages and hardware, to the specification and verification of critical software, to artificial intelligence systems that can reason. This course introduces propositional and predicate logic. We discuss how to reason within these logics, how to reason about their properties and limitations, and how to use them to model situations of interest in both natural language and computer science applications. We explore how computational thinking can help us solve logic problems.
Learning Outcomes
Upon successful completion, students will have the knowledge and skills to:
- Model natural language and computer science applications using logical notation.
- Construct formal proofs in logical calculi.
- Apply computational methods to solve logical problems.
- Analyse the properties of logics, including the relationship between logical calculi and mathematical semantics.
- Understand the relationships between different logics with applications to computer science.
