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: |
- 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;
- 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;
- 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.
|