MAU22C00 – Discrete Mathematics

(Full Year, 10 credits) The mathematical objects studied in this module are fundamental not just for theoretical computer science but constitute the building blocks for formalising problems and writing down algorithms to solve those problems. The aim of the module is to provide a lifelong ability to operate with the mathematical objects and to make students comfortable with mathematical proofs.

CSU22011 – Algorithms and Data Structures I

(Semester 1, 5 ECTS) The topics of this module are: the theory and practice of algorithmic design; evaluation algorithm performance; and standard algorithms and data structures.

CSU22062 – Natural Language Processing

(Semester 2, 5 ECTS) Regular languages, context free languages, feature structures, a brief into to Probailistic Methods in NLP, topic varying year to year,
examples being the use of Hidden Markov models in speech recognition, or
statistical machine translation, a brief into recursive computation of semantic values from grammatical structures.

CSU22061 – Intermediate Programming

(Semester 1, 5 ECTS) Fundamentals of C++ including built-in types and coercion, pointers, arrays, reference parameters, STL containers string and vector structs, classes, inheritance (illustrated by Qt library for GUIs), dynamic memory allocation and recursive data structures.

CSU22012 – Algorithms and Data Structures II

(Semester 2, 5 ECTS) This module continues directly from Algorithms and Data Structures I and addresses topics including recursion, divide-and-conquer, graph traversal and dynamic programming.