Models of Computation - COMP50003
Aims
This module focuses on formal descriptions (models) of computational behaviour. You will learn about:
- the operational semantics (formal description) of a simple 'WHILE' programming language
- the operational semantics of other styles of real-world languages, such as Java and Haskell
- equivalent definitions of algorithm, initiated in the 1930s and providing the foundations for programming languages and computation
Role
Course Leader
Logic & Reasoning (JMC) - COMP40012
Aims
In this module you will have the opportunity to:
- learn about syntax, semantics and proof systems of first-order logic
- learn how to translate human natural language to formal logic, and vice versa
- apply various semantic methods for proving validity of arguments and logical equivalences
- use logic to reason about program behaviour through the use of pre, post and mid conditions and invariants
- use induction to reason about recursive programs
Role
Course Leader
Discrete Mathematics, Logic & Reasoning - COMP40018
Aims
In this module you will learn how discrete mathematics and logic can be used to describe and reason about computational structures and systems. The module provides an important foundation for many core topics in Computing, such as computer hardware design, algorithm analysis, and program reasoning. Central to this module are proof techniques, which are important when establishing whether or not a program or system behaves according to its specification. The ability to use mathematics and logic to formalise such specifications is also a key learning outcome.
Role
Course Leader