Upload
samson-stanley
View
212
Download
0
Embed Size (px)
Citation preview
Relevance of Maths for CS
John Barnden
School of Computer ScienceUniversity of Birmingham
Intro to Maths for CSIntro 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