## MA10275: Programming and data science

[Page last updated: 05 August 2021]

Owning Department/School: Department of Mathematical Sciences
Credits: 12 [equivalent to 24 CATS credits]
Notional Study Hours: 240
Level: Certificate (FHEQ level 4)
Period:
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
Aims: To teach Python-based programming for data scientists, including sustainable software engineering and the design and analysis of algorithms.

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;
• Apply statistical methods to extract features and analyse data.

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

Content:

Fundamentals of Python programming.

• Introduction to programming:
• 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:
• 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)

 Notes: This unit catalogue is applicable for the 2021/22 academic year only. Students continuing their studies into 2022/23 and beyond should not assume that this unit will be available in future years in the format displayed here for 2021/22. 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.