-
Software Programming (CS2020)
-
15 Credit Points
This course is concerned with tools and techniques for scalable and dependable software programming. It focusses primarily on the Java programming language and related technologies. The course gives extensive programming practice in Java. It covers in depth features of the language and how best to use them, the execution model of the language, memory management, design principles underpinning the language, and comparisons with other languages. Tools for collaboration, productivity, and versioning will also be discussed.
-
Databases and Data Management (CS2019)
-
15 Credit Points
Databases are an important part of traditional information systems (offline /online) as well as modern data science pipelines. This course will be of interest to anyone who wishes to learn to design and query databases using major database technologies. The course aims to teach the material using case studies from real-world applications, both in lectures and lab classes.
In addition, the course covers topics including management of different kinds of data such as spatial data and data warehousing. The course provides more hands-on training that develops skills useful in practice.
-
Linear Algebra i (MA2008)
-
15 Credit Points
Linear algebra is the study of vector spaces and linear maps between them and it is a central subject within mathematics.
It provides foundations for almost all branches of mathematics and sciences in general. The techniques are used in engineering, physics, computer science, economics and others. For example, special relativity and quantum mechanics are formulated within the framework of linear algebra.
The two courses Linear Algebra I and II aim at providing a solid foundation of the subject.
-
Analysis i (MA2009)
-
15 Credit Points
Analysis provides the rigorous, foundational underpinnings of calculus. It is centred around the notion of limits: convergence within the real numbers. Related ideas, such as infinite sums (a.k.a. series) and continuity are also visited in this course.
Care is needed to properly use the delicate formal concept of limits. At the same time, limits are often intuitive, and we aim to reconcile this intuition with correct mathematical reasoning. The emphasis throughout this course is on rigorous mathematical proofs, valid reasoning, and the avoidance of fallacious arguments.
-
Mathematics for Computing Science (CS2513)
-
15 Credit Points
This course provides an introduction to areas of Discrete Mathematics that are used extensively in Computing. The course covers three topics: (1) formal languages and machines; (2) formal logic; (3) probability and statistics. Applications of these in Computing are indicated throughout.
-
Algorithms and Data Structures (CS2522)
-
15 Credit Points
This course provides the knowledge needed to understand, design and compare algorithms. By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity, and make use of proof techniques. The practical component of the course will build on and enhance students' programming skills.
-
Linear Algebra II (MA2508)
-
15 Credit Points
Linear algebra is the study of vector spaces and linear maps between them and it is a central subject within mathematics.
It provides foundations for almost all branches of mathematics and sciences in general. The techniques are used in engineering, physics, computer science, economics and others. For example, special relativity and quantum mechanics are formulated within the framework of linear algebra.
The two courses Linear Algebra I and II aim at providing a solid foundation of the subject.
-
Analysis II (MA2509)
-
15 Credit Points
Analysis provides the rigorous, foundational underpinnings of calculus. This course builds on the foundations in Analysis I, and explores the notions of differential calculus, Riemann integrability, sequences of functions, and power series.
The techniques of careful rigorous argument seen in Analysis I will be further developed. Such techniques will be applied to solve problems that would otherwise be inaccessible. As in Analysis I, the emphasis of this course is on valid mathematical proofs and correct reasoning.