Undergraduate Modules

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

Students working in a computer lab

First Year

CS 113Semester 1

Computer Science for Actuarial Studies

Introduction to computer programming from a financial perspective. Basic financial problems are rephrased in terms of analytical problem solving. Stan…

CS 114Semester 1

Introductory Computer Science 1

Introduction to basic computer programming; formulation and solution of problems by means of computer programming; data representation and variable ty…

CS 144Semester 2

Introductory Computer Science 2

Further formulation and solution of problems by means of computer programming; introductory data structures and algorithms in an object-oriented set-u…

Second Year

CSE 214Semester 1

Object-Oriented Programming

Formulation and solution of problems by means of computer programming in an object-oriented set-up; principles of testing and debugging; key concepts…

CS 214Semester 1

Data Structures and Algorithms

The classical data structures and algorithms in an object-oriented set-up. Advanced techniques for the analysis of algorithms.

CS 244Semester 2

Computer Architecture

Basic computer architecture. Programming in machine language and assembly language. Assemblers, binders and loaders. Basic concepts of operating syste…

SC 272Year-long

Scientific Computing

Introduction to Linux; Linux commands; Linux file systems; editors; process control. Introduction to programming in Python: variables, types, control…

Third Year

CS 313Semester 1

Computer Networks

Introduction to networks in general and the internet in particular. Architecture and protocols. Allocation of resources and congestion control. Networ…

CS 314Semester 1

Concurrency

Introduction to programming techniques and principles of concurrent systems, from operating systems to application programs. This includes communicati…

CS 315Semester 1

Machine Learning

Dimension reduction techniques; machine-learning techniques based on maximum-likelihood, maximum-posterior and expectation-maximization estimates; mod…

CS 343Semester 2

Databases and Web Centric Programming

Introduction to relational databases. Mapping relational model onto object model. Implementing a database application in the context of the web. Web s…

CS 344Semester 2

Program Design

Program specifications as guidelines for program design; reusable frameworks for program design; testability of program designs; development of a medi…

CS 345Semester 2

Computability and Automata Theory

Introduction to automata theory and formal languages, computability and complexity. Regular languages, context-free languages and grammars. Turing mac…

SC 372Year-long

Scientific Computing

Scientific-document construction and presentations in LaTeX. Regular expressions. Important algorithms including sorting, searching and random-number…

Fourth Year (BDatSci)

CS 411Semester 1

Computer Networks

Introduction to networks in general and the internet in particular. Architecture and protocols. Allocation of resources and congestion control. Networ…

E 414Semester 1

Machine Learning

Dimension reduction techniques; machine-learning techniques based on maximum-likelihood, maximum-posterior and expectation-maximization estimates; mod…

CS 412Semester 1

Advanced Algorithms

This module continues from Computer Science 214 and covers advanced topics in the design and analysis of algorithms and associated data structures. To…

CS 441Semester 2

Machine Learning

This module is an introduction to selected topics in machine learning.

CS 471Semester 2

Data Science Research Assignment

The research assignment provides students with a comprehensive learning experience that integrates knowledge from previous courses. Students engage in…

CS 491Semester 2

Space Science Algorithms

Algorithms and techniques in Space Science, with applications.

CS 495Semester 2

Functional Programming

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.