MA124 Mathematics by Computer
Lecturer: Richard Lissaman
Term(s): Term 1 and 2
Status for Mathematics students: Core for Maths
Commitment: One lecture per week in term 1 weeks 1  3 and 8  10; two lectures per week in term 2 weeks 1  3, weekly support classes in same weeks in computing labs, a tutorial group project during terms 2 and start of term 3 (including a presentation at the end of term 2)
Assessment: Assessment will be via Moodle quizzes and assignments (50%) and the project (50%)
Formal registration prerequisites: None
Assumed knowledge: None, other than that already covered in core firstyear mathematics modules
Useful background: Prior experience with Python or other programming languages will be useful
Synergies: The lectures, course resources and assessment will make contact with material from other firstyear mathematics modules, in particular:
 MA141 Analysis 1
 MA139 Analysis 2
 MA146 Methods of Mathematical Modelling 1
 MA144 Methods of Mathematical Modelling 2
 MA132 Foundations
 MA151 Algebra 1
 MA150 Algebra 2
Leads to: The following modules have this module listed as assumed knowledge or useful background:
 MA261 Differential Equations: Modelling and Numerics
 MA398 Matrix Analysis and Algorithms
 MA4M1 Epidemiology by Example
Python is a widely used programming language that is increasingly essential knowledge for mathematicians and scientists. Python underlies important mathematical software such as Sage. It dominates many modern applications, particularly in Data Science and Machine Learning.
Python is too vast to master in an introductory module of this size. Our goal is to rapidly introduce you to some of the most important aspects of Python for mathematical and scientific work. You will learn to use powerful libraries that carry out complex tasks and allow you to concentrate on the "big picture". By the end of the module you will find the computer to be a tool that can aid you throughout your life as a mathematician and, in particular, in many modules you will take at Warwick. You should think of your computing skills as a powerful resource to be used, potentially, at any time.
Aims:
The first aim is to show how the computer may be used, throughout all of mathematics, to enhance understanding, make predictions and test ideas.
Objectives:
The module will be taught using Python. Through using this language you will be introduced to the rudiments of computer programming.
You will learn how to graph functions, study vectors and matrices graphically and numerically, how to iterate and use iteration to study sequences and series, how to solve algebraic and differential equations numerically, how to use symbolic algebra in Python as well as some statistical techniques.
Books:

 M Lutz, Learning Python, O'Reilly Media Inc., 3rd edition, 2007, ebook here
 JV Guttag, Introduction to Computation and Programming Using Python, MIT Press, 2nd edition, 2016, ebook here