PX28115 Computational Physics
Introductory description
This module develops programming in the Python programming language and follows from PX150 Physics Programming Workshop
Module aims
To acquire programming skills necessary to solve physics problems with the help of the Python programming language, a language widely used by physicists
Outline syllabus
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
 Vectorized programming in Python using Numpy
 Handling, processing and analysing physics data: plotting distributions, data fitting, hypothesis testing
 Monte Carlo simulation for physics modelling: Different types of random numbers, generation of random numbers according to specific distributions. Brownian motion and diffusion
 Digital Signal Processing: the Fourier transform and convolution method, digital filters
 Numerical solutions of ordinary differential equations: the Verlet algorithm for many coupled ODE’s
 Speeding up Python: why, when and what again is a compiler
Learning outcomes
By the end of the module, students should be able to:
 Explain how computers can be used to solve physics problems
 Model physics problems using a computer
 Design algorithms and implement them.
 Handle and analyse physics data
Indicative reading list
M. Newman, Computational Physics, CreateSpace Independent Publishing Platform, ISBN: 978
1480145511 (2012).
H.P. Langtangen, A Primer on scientific programming with Python, Springer ebooks (2012):
http://link.springer.com/book/10.1007%2F9783642183669
Ch. Hill, Learning Scientific Programming with Python, CUP (2016) (ebook)

Python documentation: http://www.python.org/doc/

Scientific Python: http://docs.scipy.org/doc/scipy/reference/
View reading list on Talis Aspire
Subject specific skills
Knowledge of programming. Skills in numerical modelling.
Transferable skills
IT skills, analytical, communication, problemsolving, selfstudy
Study time
Type  Required 

Lectures  10 sessions of 2 hours (13%) 
Practical classes  20 sessions of 1 hour (13%) 
Private study  110 hours (73%) 
Total  150 hours 
Private study description
Working through lecture notes, formulating problems, programming and testing code, discussing with others taking the module, preparing and submitting coursework
Costs
No further costs have been identified for this module.
You must pass all assessment components to pass the module.
Assessment group A
Weighting  Study time  

Assessed Computing Assignments  100%  
Programming and reports 
Feedback on assessment
Timetabled workshops
Courses
This module is Option list A for:
 Year 2 of UPXAGF13 Undergraduate Mathematics and Physics (BSc)
 Year 2 of UPXAFG31 Undergraduate Mathematics and Physics (MMathPhys)
 Year 2 of UPXAF300 Undergraduate Physics (BSc)
 Year 2 of UPXAF303 Undergraduate Physics (MPhys)
 Year 2 of UPXAF3F5 Undergraduate Physics with Astrophysics (BSc)
 Year 2 of UPXAF3FA Undergraduate Physics with Astrophysics (MPhys)
This module is Option list B for:
 Year 2 of UMAAG105 Undergraduate Master of Mathematics (with Intercalated Year)
 Year 2 of UMAAG100 Undergraduate Mathematics (BSc)
 Year 2 of UMAAG103 Undergraduate Mathematics (MMath)
 Year 2 of UMAAG106 Undergraduate Mathematics (MMath) with Study in Europe
 Year 2 of UMAAG1NC Undergraduate Mathematics and Business Studies
 Year 2 of UMAAG1N2 Undergraduate Mathematics and Business Studies (with Intercalated Year)
 Year 2 of UMAAGL11 Undergraduate Mathematics and Economics
 Year 2 of UECAGL12 Undergraduate Mathematics and Economics (with Intercalated Year)
 Year 2 of UMAAG101 Undergraduate Mathematics with Intercalated Year