Program start date | Application deadline |
2023-09-01 | - |
2023-09-11 | - |
Program Overview
Many of the key computing processes and operations such as programming and data analysis are founded on the study and understanding of mathematical disciplines such as algorithms. This degree is ideal for students who have a strong interest and skill in mathematics but want to understand the applied nature of it to the computing science industry. This is an excellent combination of degrees which would open up a range of career opportunities.
Program Outline
What You'll Study
Year 1
Compulsory Courses
Getting Started at the University of Aberdeen (PD1002)
This course, which is prescribed for level 1 undergraduate students (and articulating students who are in their first year at the University), is studied entirely online, takes approximately 5-6 hours to complete and can be taken in one sitting, or spread across a number of weeks.
Topics include orientation overview, equality and diversity, health, safety and cyber security and how to make the most of your time at university in relation to careers and employability.
Successful completion of this course will be recorded on your Enhanced Transcript as ‘Achieved’.
Detailed course informationProgramming 1 (CS1032)
15 Credit Points
This course will be delivered in two halves. The first half will provide a self-contained introduction to computer programming. It will be accessible to all undergraduates. Students will be exposed to the basic principles of computer programming, e.g. fundamental programming techniques, concepts, algorithms and data structures. The course contains lectures where the principles are systematically developed. As the course does not presuppose knowledge of these principles, we start from basic intuitions. The second half will be particularly of use to those studying Science and Engineering subjects, broadly interpreted, as well as Computing and IT specialists. It will include a gentle introduction to professional issues and security concepts.
Detailed course informationModelling and Problem Solving for Computing (CS1029)
15 Credit Points
This course will introduce students to techniques that support problem solving and modelling with computers, and concepts and methods that are fundamental to computing science. The techniques and concepts will be illustrated with numerous computing examples.
Detailed course informationCalculus 1 (MA1005)
15 Credit Points
Calculus is the mathematical study of change, and is used in many areas of mathematics, science, and the commercial world. This course covers differentiation, limits, finding maximum and minimum values, and continuity. There may well be some overlap with school mathematics, but the course is brisk and will go a long way quickly.
Detailed course information
Algebra (MA1006)
15 Credit Points
This course introduces the concepts of complex numbers, matrices and other basic notions of linear algebra over the real and complex numbers. This provides the necessary mathematical background for further study in mathematics, physics, computing science, chemistry and engineering.
Detailed course information
Computer Systems and Architecture (CS1533)
15 Credit Points
This course provides an introduction to computer systems. It includes an introduction to computer architecture and organization, and an introduction to operating systems.
The course is taught without prerequisites; students are taught with plenty of exercises from lectures, tutorials, practical and tests every week.
Detailed course informationObject - Oriented Programming (CS1527)
15 Credit Points
This course will build on the basic programming skills acquired in the first half-session and equip the students with advanced object oriented programming knowledge, implementation of data structure and algorithms, and basic software engineering techniques. The students will be challenged with more complicated programming problems through a series of continuous assessments.
Detailed course information
Calculus II (MA1508)
15 Credit Points
The aim of the course is to provide an introduction to Integral Calculus and the theory of sequences and series, to discuss their applications to the theory of functions, and to give an introduction to the theory of functions of several variables.
This provides the necessary mathematical background for further study in mathematics, physics, computing science, chemistry and engineering.
Detailed course information
Set Theory (MA1511)
15 Credit Points
Set theory was introduced by Cantor in 1872, who was attempting to understand the concept of "infinity" which defied the mathematical world since the Greeks. Set Theory is fundamental to modern mathematics - any mathematical theory must be formulated within the framework of set theory, or else it is deemed invalid. It is the alphabet of mathematics.
In this course we will study naive set theory. Fundamental object such as the natural numbers and the real numbers will be constructed. Structures such as partial orders and functions will be studied. And of course, we will explore infinite sets.
Detailed course informationYear 2
Compulsory Courses
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.
Detailed course informationDatabases 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.
Detailed course informationLinear 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.
Detailed course informationAnalysis 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.
Detailed course informationMathematics 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.
Detailed course informationAlgorithms 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.
Detailed course information
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.
Detailed course informationAnalysis 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.
Detailed course informationYear 3
Compulsory Courses
Principles of Software Engineering (CS3028)
15 Credit Points
Students will develop large commercial and industrial software systems as a team-based effort that puts technical quality at centre stage. The module will focus on the early stage of software development, encompassing team building, requirements specification, architectural and detailed design, and software construction. Group work (where each team of students will develop a system selected using a business planning exercise) will guide the software engineering learning process. Teams will be encouraged to have an active, agile approach to problem solving through the guided study, evaluation and integration of practically relevant software engineering concepts, methods, and tools.
Detailed course informationGroup Theory (MX3020)
15 Credit Points
Group theory concerns the study of symmetry. The course begins with the group axioms, which provide an abstract setting for the study of symmetry. We proceed to study subgroups, normal subgroups, and group actions in various guises. Group homomorphisms are introduced and the related isomorphism theorems are proved. Sylow p-subgroups are introduced and the three Sylow theorems are proved. Throughout symmetric groups are consulted as a source of examples.
Detailed course information
Analysis III (MX3035)
15 Credit Points
Analysis provides the rigourous, foundational underpinnings of calculus. The focus of this course is multivariable analysis, building on the single-variable theory from MA2009 Analysis I and MA2509 Analysis II. Concepts and results around multivariable differentiation are comprehensively established, laying the ground for multivariable integration in MX3535 Analysis IV.As in Analysis I and II, abstract reasoning and proof-authoring are key skills emphasised in this course.
Detailed course informationSoftware Engineering and Professional Practice (CS3528)
15 Credit Points
In this module, which is the follow-up of CS3028, students will focus on the team-based development of a previously specified, designed, and concept-proofed software system. Each team will build their product to industrial-strength quality standards following an agile process and applying the software engineering concepts, methods, and tools introduced in CS3028. The course includes a series of mandatory participatory seminars on professional and management issues in IT and IT projects. Students will be expected to relate their engineering work to these issues.
Detailed course informationAnalysis Iv (MX3535)
15 Credit Points
Analysis provides the rigourous, foundational underpinnings of calculus. This course builds on MX3035 Analysis III, continuing the development of multivariable calculus, with a focus on multivariable integration. Hilbert spaces (infinite dimensional Euclidean spaces) are also introduced. Students will see the benefit of having acquired the formal reasoning skills developed in Analysis I, II, and III, as it enables them to work with increasingly abstract concepts and deep results. Techniques of rigourous argumentation continue to be a prominent part of the course.
Detailed course informationOptional Courses
Select
one
of the following for the first half-session:
Select
one
of the following for the second half-session:
Plus
one
of the following:
Artificial Intelligence (CS3033)
15 Credit Points
The course provides an introduction to Artificial Intelligence (AI). It discusses fundamental problems of AI and their computational solution via key concepts.
Detailed course informationOperating Systems (CS3026)
15 Credit Points
This course discusses core concepts and architectures of operating systems, in particular the management of processes, memory and storage structures. Students will learn about the scheduling and operation of processes and threads, problems of concurrency and means to avoid race conditions and deadlock situations. The course will discuss virtual memory management, file systems and issues of security and recovery. In weekly practical session, students will gain a deeper understanding of operating system concepts with various programming exercises.
Detailed course information
Languages and Computability (CS3518)
15 Credit Points
This course provides a basic-level introduction to formal languages, mathematical models of computation, and the theory of computation. Application areas include the design of programming languages, and the recognition of fundamental limits of computation in solving problems.
Detailed course informationDistributed Systems (CS3534)
15 Credit Points
This course discusses core concepts of distributed systems, such as programming with distributed objects, multiple threads of control, multi-tier client-server systems, transactions and concurrency control, distributed transactions and commit protocols, and fault-tolerant systems. Weekly practical sessions cover a set of techniques for the implementation of distributed system concepts such as programming with remote object invocation, thread management and socket communication.
Detailed course informationEnterprise Computing and Business (CS3525)
15 Credit Points
This course provides insight into the business reasons for large software systems such as loyalty card systems, backend systems integrating firms and their suppliers and larges systems that integrate payroll, finance and operational parts of a business. You also learn the entrepreneurial aspects of business during the practical sessions where you explore and develop your own business application idea using service design and lean startup approaches centred around customer development, which you will find useful in any future work. This course is open to anyone across the university and requires no programming experience.
Detailed course information
Rings & Fields (MX3531)
15 Credit Points
Many examples of rings will be familiar before entering this course. Examples include the integers modulo n, the complex numbers and n-by-n matrices with real entries. The course develops from the fundamental definition of ring to study particular classes of rings and how they relate to each other. We also encounter generalisations of familiar concepts, such as what is means for a polynomial to be prime.
Detailed course informationDifferential Equations (MX3536)
15 Credit Points
Differential equations play a prominent role in many disciplines including engineering, physics, economics, and biology. In this course we will study the concept of a differential equation systematically from a purely mathematical viewpoint. Such abstraction is fundamental to the understanding of this concept.
Detailed course informationYear 4
Compulsory Courses
Galois Theory (MX4082)
15 Credit Points
Galois theory is based around a simple but ingenious idea: that we can study field extensions by instead studying the structure of certain groups associated to them. This idea can be employed to solve some problems which confounded mathematicians for centuries, including the impossibility of trisecting an angle with ruler and compass alone, and the insolubility of the general quintic equation.
Detailed course informationJoint Honours Computer Project (CS4525)
30 Credit Points
Consists of a supervised project which provides experience of investigating a real problem in computing science, or a computing application/technology. Learner will apply knowledge and skills gained earlier in their degree programme, and seek to go even further. Managing the project and presenting the results obtained are an integral part of the investigation.
Detailed course informationOptional Courses
Plus further credit points from level 4 MX4 courses and CS4 courses to gain a total of 60 credits in each discipline.
A graduating curriculum for the Honours degree must include 90 credit points from Level 4 courses.
We will endeavour to make all course options available; however, these may be subject to timetabling and other constraints. Please see our InfoHub pages for further information.
Within Subject Areas
Careers
There are many opportunities at the University of Aberdeen to develop your knowledge, gain experience and build a competitive set of skills to enhance your employability. This is essential for your future career success. The Careers and Employability Service can help you to plan your career and support your choices throughout your time with us, from first to final year – and beyond.