MA10275: Programming and data science
[Page last updated: 05 August 2021]
Academic Year:  2021/2 
Owning Department/School:  Department of Mathematical Sciences 
Credits:  12 [equivalent to 24 CATS credits] 
Notional Study Hours:  240 
Level:  Certificate (FHEQ level 4) 
Period: 
 Academic Year

Assessment Summary:  CW 100% 
Assessment Detail: 
 Coursework 1 (CW 50%)
 Coursework 2 (CW 50%)

Supplementary Assessment: 
 Likeforlike reassessment (where allowed by programme regulations)

Requisites: 
Students must have A Level Mathematics grade A or equivalent to take this unit

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

Learning Outcomes:  Students should be able to:
 Write pseudocode and implement algorithms in Python;
 Apply modern procedural and objectoriented 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.

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

Content:  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;
 divideandconquer;
 dynamic programming.
 Complexity analysis:
 Analyse complexity of common algorithms;
 BigO notation;
 MasterTheorem for divideandconquer 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
 USMAAFB20 : BSc(Hons) Mathematics, Statistics, and Data Science (Year 1)
 USMAAAB20 : BSc(Hons) Mathematics, Statistics, and Data Science with Study year abroad (Year 1)
 USMAAKB20 : 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 prerequisite rules.
 Find out more about these and other important University terms and conditions here.
