Course Term: Michaelmas & Hilary
Course Lecture Information: Lectures in Weeks 1 and 2 of Michaelmas term. Demonstration sessions in Weeks 3-8 of Michaelmas term.
Course Overview:
Many mathematicians use general-purpose mathematical software which includes tools for symbolic and numerical computation and other features such as plotting, visualization and data analysis. Such software is used for solving linear and nonlinear equations, graphing the results, as a tool for exploring mathematical concepts, and as a technique for verifying the correctness of calculations done "by hand". In this introductory course, students will explore these ideas in the Python programming language.


Python:
Python is the most popular programming language in the world, due to its simplicity, versatility, parsimony, power, and flexibility. Python is widely used in science and engineering, quantitative finance, web programming, computer gaming, and data science. Python code is executed by a Python interpreter; the Python interpreter is open-source software that may be freely installed on almost any computer. In this course we will employ the Visual Studio Code environment to provide a user-friendly code development and debugging experience. Students will install Python and Visual Studio Code on their own individual computers, or access this software on college computers. For the latter they should consult the computing support at their own college.


Teaching and Assessment:
The course relies heavily on self-teaching through practical exercises. A manual for the course and examples to be worked through will be provided.

You are expected to go through the lecture notes and problem sheets at a steady pace, and you will be timetabled for sessions every fortnight where you will have access to help and advice from demonstrators. Clear instructions will be provided on how to install the necessary software; please install it in advance of these sessions.

Your work in this course will be taken into account as part of the Preliminary Examinations. For further information, see the section on examinations in the Undergraduate Handbook.
Learning Outcomes:
Students will be introduced to the Python programming language, with a heavy emphasis on the use of programming to investigate and solve mathematical problems, both pure and applied. Students will develop confidence and expertise in a tool which can be used in the later years of the mathematics course and in their subsequent careers.
Course Synopsis:
Using Python on the command line and working with ".py" files;

Plotting in two and three dimensions;

Works with lists, dictionaries, matrices and linear algebra;

Symbolic computing using sympy;

Logic, flow control and iteration;

Solving problems in algebra, calculus, and applied mathematics.