- Academic Registry
Programme & Unit Catalogues

MA10275: Programming and data science

[Page last updated: 03 August 2022]

Academic Year: 2022/23
Owning Department/School: Department of Mathematical Sciences
Credits: 12 [equivalent to 24 CATS credits]
Notional Study Hours: 240
Level: Certificate (FHEQ level 4)
Academic Year
Assessment Summary: CW 100%
Assessment Detail:
  • Coursework 1 (CW 50%)
  • Coursework 2 (CW 50%)
Supplementary Assessment:
Like-for-like reassessment (where allowed by programme regulations)
Requisites: Students must have A Level Mathematics grade A or equivalent to take this unit
Learning Outcomes: Students should be able to:
  • Write pseudo-code and implement algorithms in Python;
  • Apply modern procedural and object-oriented programming paradigms in data science applications;
  • Demonstrate understanding of principles of software design;
  • Analyse the complexity of algorithms;
  • Read and manipulate data;
  • Apply statistical methods to extract features and analyse data.

Aims: To teach Python-based programming for data scientists, including sustainable software engineering and the design and analysis of algorithms.

Skills: Numeracy T/F A, Problem Solving T/F A, Information Technology T/F A


Fundamentals of Python programming.

  • Introduction to programming:
    • Programming paradigms;
    • From Specification through algorithms to implementation.
  • Building Elements:
    • Preconditions and postconditions;
    • Basic data types;
    • Variables, identifiers and scope.
    • Arrays and strings
  • Control structures:
    • Conditionals;
    • Loops
    • Correctness issues when programming with loops.
    • Functions and subroutines
    • Iteration and recursion

Object oriented programming.

  • Programming with objects and classes:
    • Advanced data types;
    • Parameter passing by reference and by value;
    • Encapsulation.
  • Class inheritance:
    • Dynamic binding;
    • Multiple inheritance;
    • Interfaces and abstract classes.

Understanding and analysing algorithms.

  • Common design patterns such as:
    • recursion;
    • divide-and-conquer;
    • dynamic programming.
  • Complexity analysis:
    • Analyse complexity of common algorithms;
    • Big-O notation;
    • Master-Theorem for divide-and-conquer algorithms.

Sustainable software engineering.

  • Program design;
  • Error handling;
  • Methods of testing;
  • Version Control and workflows
  • Systematic debugging

Handling data with widely used open source libraries in Python:

  • Working with matrices and arrays;
  • Tools for importing, manipulating and analysing data.

Example applications to data science.

Programme availability:

MA10275 is Compulsory on the following programmes:

Department of Mathematical Sciences
  • USMA-AFB20 : BSc(Hons) Mathematics, Statistics, and Data Science (Year 1)
  • USMA-AAB20 : BSc(Hons) Mathematics, Statistics, and Data Science with Study year abroad (Year 1)
  • USMA-AKB20 : BSc(Hons) Mathematics, Statistics, and Data Science with Industrial Placement (Year 1)


  • This unit catalogue is applicable for the 2022/23 academic year only. Students continuing their studies into 2023/24 and beyond should not assume that this unit will be available in future years in the format displayed here for 2022/23.
  • Programmes and units are subject to change in accordance with normal University procedures.
  • Availability of units will be subject to constraints such as staff availability, minimum and maximum group sizes, and timetabling factors as well as a student's ability to meet any pre-requisite rules.
  • Find out more about these and other important University terms and conditions here.