Most areas of Computer Science, from graphics to machine learning to cryptography, require specialised mathematical knowledge. Also, Computer Science as a discipline shares deep connections with the foundations of mathematics. This module introduces linear algebra (as used in graphics and machine learning), algebra (as used in cryptography), and set theory (a fundamental language of mathematics). It also deals with the formalisation of computability via (mathematical) automata, learning about regular expressions and grammars along the way, concluding with non-computability and complexity.

Learning Outcomes

By the end of the module students should be able to:

solve mathematical problems in algebra and set theory

apply mathematical techniques to solve a problem within a computer science setting

explain the basics of automata theory, formal language theory, computability theory and complexity theory

describe and use the connection between finite automata and regular language

explain non-computability and undecidability issues