University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Follow us on twitter
Linked in
Linked in
Google plus
Google plus
Stumble Upon
Stumble Upon

Software Engineering Mathematics

An essential advantage of a mathematical specification is the ability to reason about the objects it contains, and thus about the system it describes. This course is an introduction to specification using mathematics. It shows how we may reason about the objects in a specification with varying degrees of formality.


This course normally runs twice a year.

Course dates

8th January 2024Oxford University Department of Computer Science - Held in the Department 0 places remaining.
15th April 2024Oxford University Department of Computer Science - Held in the Department06 places remaining.
9th September 2024Oxford University Department of Computer Science - Held in the Department14 places remaining.
28th April 2025Oxford University Department of Computer Science - Held in the Department17 places remaining.


At the end of the course, students will understand the mathematics required for software engineering. They will be able to reason about the mathematical objects that appear in a specification. They will also gain an appreciation for varying degrees of rigour and formality, choosing an appropriate level of detail or elaboration.


Propositional logic:
propositions; logical connectives; deductive reasoning; hypothetical reasoning
Predicate logic:
quantification; substitution; scope of variables; generalisation; specialisation
definite description; the one-point rule; uniqueness and quantity
membership; extension; comprehension; power sets; Cartesian products; types
basic types; declarations; abbreviations; axioms; generics; consistency
domains and ranges; projections; inverses; compositions; iteration; closure
partial functions; injections; surjections; lambda notation; overriding; enumerations
order and multiplicity; sequence operators; sequences as functions; structural induction; bags
Free types:
constants and constructor functions; embedding; closure; induction principles


Although no previous experience is required, a positive attitude towards formal, mathematical notation would be an advantage. If you have any doubts as to your readiness, please feel free to contact the Programme Director before registering for the course.