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.
Frequency
This course normally runs twice a year.
Course dates
28th April 2025 | Oxford University Department of Computer Science - Held in the Department | 0 places remaining. |
Objectives
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.
Contents
- Propositional logic:
- propositions; logical connectives; deductive reasoning; hypothetical reasoning
- Predicate logic:
- quantification; substitution; scope of variables; generalisation; specialisation
- Equality:
- definite description; the one-point rule; uniqueness and quantity
- Sets:
- membership; extension; comprehension; power sets; Cartesian products; types
- Definitions:
- basic types; declarations; abbreviations; axioms; generics; consistency
- Relations:
- domains and ranges; projections; inverses; compositions; iteration; closure
- Functions:
- partial functions; injections; surjections; lambda notation; overriding; enumerations
- Sequences:
- order and multiplicity; sequence operators; sequences as functions; structural induction; bags
- Free types:
- constants and constructor functions; embedding; closure; induction principles
Requirements
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.