Software Engineering BSc/MSci

Data Fundamentals (H) COMPSCI4073

  • Academic Session: 2023-24
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 4 (SCQF level 10)
  • Typically Offered: Semester 1
  • Available to Visiting Students: Yes

Short Description

This course will cover computational approaches to working with numerical data on a large scale. Computation on arrays of continuous variables underpins machine learning, information retrieval, data analytics, computer vision and signal processing. This course will cover vectorised operations on numerical arrays, fundamental stochastic and probabilistic methods and scientific visualisation.


Two one-hour lectures and one one-hour tutorial per week.

Excluded Courses





Examination 80% and Practical Skills Assessment 15%, in-class quizzes 5%.


Practical: Lab work, submitting code for a series of 4 laboratory exercises. Each will be worth 3.75% of the total marks for this course.

Quizzes: multiple choice questions administered during lectures.

Main Assessment In: April/May

Are reassessment opportunities available for all summative assessments? No

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non-Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below.


The coursework cannot be redone because it is impossible to generate an equivalent piece of coursework which replicates the original one because of the follow-up work which was done subsequent to the original submission. The nature of the coursework is such that it takes a significant number of days to produce it and this effort is infeasible for supporting the re-doing of such coursework over the summer.

Course Aims

This course will give students skills in manipulating continuous data, specifying problems in a forms that can be solved numerically, dealing with unreliable and uncertain information, and communicating these results. DF(H) will introduce operations on vectors and matrices, specifying and solving problems via numerical optimisation, time series modelling, scientific visualisation and basic probabilistic computation. Students will learn how to bridge the continuous and discrete worlds; for example solving graph flow problems via matrix operations, or how to do robust A/B testing of websites The focus will be firmly on applying and solving these problems from a computer science perspective and not on theoretical background or formal proofs.

Intended Learning Outcomes of Course

By the end of this course students will be able to:

1. formulate problems in tensor form and fluently manipulate tensors;

2. efficiently run vectorized code; 

3. apply matrix decomposition to practical problems;

4. represent problems as objective functions and apply optimisation to solve them;

5. formulate and understand problems with stochastic elements;

6. understand the principles of Bayesian inference and apply it to simple problems;

7. create effective, clear, and precise visualisations of scientific data;

8. understand the effects of sampling and noise on time series;

9. process, filter, summarise and plot time series and array data.

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.