Software Engineering (in partnership with KMITL) BSc/MSci
Data Fundamentals (H) COMPSCI4073
- Academic Session: 2026-27
- School: School of Computing Science
- Credits: 10
- Level: Level 4 (SCQF level 10)
- Typically Offered: Semester 1
- Available to Visiting Students: Yes
- Collaborative Online International Learning: No
- Curriculum For Life: No
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.
Timetable
Two one-hour lectures and one one-hour tutorial per week.
Excluded Courses
None
Co-requisites
None
Assessment
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
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. The course also aims to develop students' understanding of sustainability and decarbonisation as related to the topic.
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.
10. recognise risks and ethical issues in data analysis and numerical computations and reason about their environmental impact.