Relevance of Maths for CS John Barnden School of Computer Science University of Birmingham Intro to Maths for CS 2013/14
Two Broad Types of Relevance Maths coming from the task performed by a program maths issues raised by CS concepts/techniques themselves
Task-Imposed Mathematics computation to help maths investigation itself, e.g. – testing numbers for primehood – proving mathematical theorems – doing algebraic manipulations – detecting and categorizing mathematical formulas in documents computational science, e.g. – simulation of molecules, galaxies, the weather, … massive statistical calculations in data mining and statistical approaches to natural language understanding, etc.
Task-Imposed Mathematics, contd maths involved in the mechanical, physical, visual and geographical aspects of robotics and computer games Maths involved in recognition and production of facial expressions, gesture, body language, … calculation in general tools, e.g. – statistical calculation in database systems – calculations in word-processing and diagram-drawing software
Task-Imposed Mathematics, contd It's not just that you need mathematical sensitivity to understand the imposed task and program it more reliably and helpfully, but there can be major maths complications in exactly how the task is done – e.g., clever ways of streamlining large scientific calculations.
Maths Issues raised by CS Techniques/Concepts Themselves (there are tastes of all these issues in various modules in this school, some at undergraduate levels and some at master's level) Analysis of the "space complexity" and "time complexity" of algorithms (i.e. programs, basically) – This concerns how much data an algorithm needs to store and how long the algorithm takes, as a function of the "size" of the problem. – This matter is very important for making intelligent choices of algorithms for particular real-world problems. – Even if you don’t yourself work out the formulas, you need to understand them and their significance. [issue introduced in the Foundations module]
Maths Issues raised … (contd) Maths involved in the calculations done by a data-structuring technique, e.g. in "hashing" Maths involved in the core concepts on which modern "relational“ database software is built – the word "relational" alludes to an abstract notion of "relation" that brings in complicated mathematical reasoning. Maths involved in computer security, notably the cryptography involved in securely encrypting documents sent over the internet, incl. in activities like electronic voting.
Maths Issues raised … (contd) Maths involved in the verification of programs - i.e. reliably establishing that a program does what it is meant to do, or uncovering often difficult-to-see cases where it might not. – Especially difficult and important in modern, highly parallel and distributed computing, interfacing with awkward entities such as people! [touched upon in Foundations]
Maths Issues raised … (contd) Maths (incl. pure, statistical and probabilistic, and calculus) involved in the nature of various advanced, non-traditional sorts of computational framework, such as neural networks, evolutionary computing and quantum computing – Neural and evolutionary: these are main types of “natural” or “nature- inspired” computing Relatedly: maths involved in algorithms for automated learning-- "machine learning".
Maths Issues raised … (contd) Maths involved in the general abstract notions of what programs, computers, computation, etc. are. – this includes proofs of what can and cannot be done through computing (e.g. the "Halting Problem") – and proofs about the equivalence or otherwise of different computational frameworks. Relatedly: precise mathematical specifications of the meaning of individual programs. Statistical/probabilistic maths involved in the theory of information and orderedness (cf. "entropy").
Summary: Two Broad Types of Relevance task-imposed maths performed by programs maths issues raised by CS concepts/techniques themselves