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.

Course dates

9th November 2020 Oxford University Department of Computer Science - virtual one week course 9am-5pm GMT time 0 places remaining. 1st February 2021 Oxford University Department of Computer Science - Held in the Department 0 places remaining. 17th May 2021 Oxford University Department of Computer Science 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.