All Computer Science modules offered across the undergraduate programme, organised by year level.

Introduction to computer programming from a financial perspective. Basic financial problems are rephrased in terms of analytical problem solving. Stan…
Introduction to basic computer programming; formulation and solution of problems by means of computer programming; data representation and variable ty…
Further formulation and solution of problems by means of computer programming; introductory data structures and algorithms in an object-oriented set-u…
Formulation and solution of problems by means of computer programming in an object-oriented set-up; principles of testing and debugging; key concepts…
The classical data structures and algorithms in an object-oriented set-up. Advanced techniques for the analysis of algorithms.
Basic computer architecture. Programming in machine language and assembly language. Assemblers, binders and loaders. Basic concepts of operating syste…
Introduction to Linux; Linux commands; Linux file systems; editors; process control. Introduction to programming in Python: variables, types, control…
Introduction to networks in general and the internet in particular. Architecture and protocols. Allocation of resources and congestion control. Networ…
Introduction to programming techniques and principles of concurrent systems, from operating systems to application programs. This includes communicati…
Dimension reduction techniques; machine-learning techniques based on maximum-likelihood, maximum-posterior and expectation-maximization estimates; mod…
Introduction to relational databases. Mapping relational model onto object model. Implementing a database application in the context of the web. Web s…
Program specifications as guidelines for program design; reusable frameworks for program design; testability of program designs; development of a medi…
Introduction to automata theory and formal languages, computability and complexity. Regular languages, context-free languages and grammars. Turing mac…
Scientific-document construction and presentations in LaTeX. Regular expressions. Important algorithms including sorting, searching and random-number…
Introduction to networks in general and the internet in particular. Architecture and protocols. Allocation of resources and congestion control. Networ…
Dimension reduction techniques; machine-learning techniques based on maximum-likelihood, maximum-posterior and expectation-maximization estimates; mod…
This module continues from Computer Science 214 and covers advanced topics in the design and analysis of algorithms and associated data structures. To…
This module is an introduction to selected topics in machine learning.
The research assignment provides students with a comprehensive learning experience that integrates knowledge from previous courses. Students engage in…
Algorithms and techniques in Space Science, with applications.
This module gives an introduction to the functional programming paradigm.
The CS core curriculum includes: CS 114, 144, 214, 244, 343, 344, and at least two of 314 / 313 / 315. Fourth-year modules are part of the BDatSci programme.