MA10276: Programming, foundations and connections
[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) 
Period: 

Assessment Summary:  CW 100% 
Assessment Detail: 

Supplementary Assessment: 

Requisites: 
Students must have a grade A in Alevel Mathematics or equivalent in order to take this unit.
While taking this module you must take MA10207 AND take MA10209 
Learning Outcomes:  After taking the programming part of this unit, students should be able to:
* Write pseudocode and implement algorithms in Python; * Apply modern programming paradigms to mathematical problems; * Demonstrate understanding of principles of software design; * Analyse the complexity of algorithms; * Manipulate and analyse data; After taking the foundations and connections part of this unit, students should be able to: * Read and manipulate logical statements about mathematical objects; * Determine the validity of mathematical arguments; * Formulate and write simple mathematical proofs using construction, contradiction, induction; * Evaluate and improve upon the clarity of written mathematical arguments; * Work independently, through planned and effective reading and practice; * Work in a group, through effective discussion and collaboration; * Discuss the breadth of modern mathematical research; * Discuss the importance of mathematics in work and society; * Present mathematics verbally; * Formulate constructive feedback for others, and act on feedback received. 
Aims:  The unit is split into two parts: Programming; and Foundations and Connections.
Aims for Programming: To teach Pythonbased programming and sustainable software engineering for mathematics; design and analyse algorithms. Aims for Foundations and Connections: To improve the ability of the students to read and write mathematics well; to enable them to develop effective study skills for individual and group working; to introduce students to the beauty, the ubiquity and the importance of universitylevel mathematics. 
Skills:  Written and Spoken Communication (T/F A), Reasoning (T/F A), Numeracy (T/F A), Problem Solving (T/F A), Information Technology (T/F A) 
Content:  Programming:
1. Fundamentals of Python programming A. Introduction to programming: * Programming paradigms; * From Specification through algorithms to implementation. B. Building elements: * Variables and scope * Basic data types * Arrays and strings C. Control structures: * Conditionals * Loops * Functions and subroutines * Iteration and recursion 2. Object oriented programming * Advanced data types * Encapsulation and interfaces * Inheritance and abstract classes 3. Understanding and analysing algorithms A. Common design patterns such as * recursion, divideandconquer and dynamic programming B. Complexity analysis * Complexity of common algorithms * BigO notation * MasterTheorem for divideandconquer algorithms 4. Sustainable software engineering * Program design and modularisation * Testing and systematic debugging * Version Control 5. Working with data * data types for mathematical objects * libraries for manipulating and visualising data Foundations and Connections: * Study skills for mathematicians. * Thinking logically. * Introduction to definitions, theorems and proofs. * Techniques of proof, including construction, contradiction, induction. * Mathematical research at the University of Bath. * Applications of degreelevel mathematics in industry and society. * Mathematics outreach and advocacy. 
Programme availability: 
MA10276 is Compulsory on the following programmes:Department of Mathematical Sciences

Notes:
