Module Description:

The aim of this module is to cover fundamental mathematics for computer scientists. It does not assume A-level mathematics,
and the emphasis and delivery will be on understanding the key concepts as they apply to real-world situations. Appropriate tools will be used to support the application of these concepts to solving interesting problems, and emphasis will be placed on relating mathematical notation to executable statements in program code.


Learning Outcomes

After completing this module, students will be expected to be able to:

Relate mathematical equations to program code
Use propositional logic for reasoning
Calculate combinations and permutations
Calculate probabilities
Apply statistical significance tests
Solve problems using vectors and matrices

Outline Syllabus:

Logic.
Propositional logic operators, statements, truth tables, equivalences, tautologies and contradictions. De Morgan's rules. Link with programming languages: conditional AND (&&) and OR (||).

Combinatorics and Counting.
Summation. Ordered and unordered selections. Combinations and permutations. Sample spaces and events.
Discrete probabilities. Combination of events. Conditional probability. Independence. Random variables. Bayes Theorem.

Statistics.
Mean, variance, standard deviation. Statistical significance testing. Student's t-test.

Vectors and Matrices.
Basic definitions. Implementation of vector matrix arithmetic in a programming language. Mapping problems to vectors and
matrices. Solving simultaneous equations.