# PX277 Computational Physics

##### Lecturer: Yorck Ramachers

##### Weighting: 7.5 CATS

This module develops programming in the Python programming language and follows from PX150 Physics Programming Workshop.

**Aims:
**To acquire programming skills necessary to solve physics problems with the help of the Python programming language, a language widely used by physicists.

**Objectives:
**Students should:

- Understand how computers can be used to solve physics problems
- Be able to translate physics problems into a form suitable for solution using a computer program
- Be able to design algorithms and implement them
- Be able to handle and analyse physics data.

**Syllabus:
**1. Handling, processing and analysing physics data: plotting distributions, least square and maximum likelihood fit.

2. Monte Carlo simulation for physics modelling. Different types of random numbers, quality of random number generators. Generation of random numbers according to specific distributions. Brownian motion and diffusion.

3. Numerical integration and differentiation. Mass and centre of mass of object with variable density. Electric fields generated by distributed charge.

4. Numerical solutions of ordinary differential equations. Mechnical oscillations, motion with resistance.

**Commitment: **5 lectures and 10 x 1 hour workshops

**Assessment: **3 assignments

This module has a home page.

**Recommended texts: **M. Newman, *Computational Physics*, CreateSpace Independent Publishing Platform; H.P. Langtangen, *A Primer on scientific programming with Python*, Springer (e-book).

**Leads from: **PX150 *Physics Programming Workshop*

**Leads to: **PX390 *Scientific Programming*