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 A-level 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 pseudo-code 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 Python-based 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 university-level 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, divide-and-conquer and dynamic programming B. Complexity analysis * Complexity of common algorithms * Big-O notation * Master-Theorem for divide-and-conquer 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 degree-level mathematics in industry and society. * Mathematics outreach and advocacy. |
Programme availability: |
MA10276 is Compulsory on the following programmes:Department of Mathematical Sciences
|
Notes:
|