The University of Southampton

PHYS1201 Physics Skills - Programming and Data Analysis

Module Overview

The primary goal is to provide students with the practical programming and data analysis skills that are necessary for both their degree course and most careers in physics. Python is used as the introductory programming language, and numerical simulations will be used extensively in order to introduce and illustrate key statistical concepts. The emphasis throughout will be on developing insight, understanding and practical skills, as opposed to the formal/mathematical aspects of programming and statistics. The skills developed in this module will be required in many experimental/practical modules across all physics programmes.

Aims and Objectives

Module Aims

This module aims to introduce students to the principles of computer programming and to statistics.

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Basic programming constructs, including sequence, selection and iteration, the use of identifiers, variables and expressions, and a range of data types
  • Good programming style
  • Fundamental statistical concepts, including probability distribution functions, cumulative distribution functions, hypothesis testing, parameter estimation and model fitting
Transferable and Generic Skills

Having successfully completed this module you will be able to:

  • Analyse problems in a systematic manner and develop algorithms to solve them computationally
  • Design, run, debug and test computer programs
  • Use existing software libraries in your own code
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Write code to analyse and present experimental/observational data
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Interpret experimental/observational results correctly


Programming - Writing and running programs - Variables and data types - Basic control flow: looping, branching and function calls - Functional programming - Computational thinking - Python libraries (for mathematics, data analysis and display) - Designing algorithms (Moving from problem to solution) Statistics/Data Analysis - Describing data - Defining & understanding probability - Probility distribution functions and cumulative distribution functions - Statistical distributions: Gaussian, Binomial, Poisson, Chi-squared - The central limit theorem - Understanding uncertainty -- statistical and systematic errors - Testing for and understanding correlations - Hypothesis testing - Understanding statistical significance - Model fitting and parameter estimation via least-squares and Chi-squared

Learning and Teaching

Teaching and learning methods

The aim of this module is to give students practical skills, so the teaching and learning methods used are designed to accomplish this. Formal lectures will be used primarily to introduce key ideas and concepts, but even these will be illustrated with extensive practical/computational examples and visualisations. Most of the teaching will take place during extended "practical" sessions, during which students will be expected to carry out programming and data analysis tasks that are related to -- and illustrative of -- the concepts that are being explored in the module at that time. Ideally, the formal lecture content will take place immediately before or during these sessions, so that new theoretical concepts being introduced can immediately be explored in practice by students. Teaching support in the form of multiple demonstrators will be available during all sessions, so that one-on-one help is available as needed. Additional learning is expected to take place independently, again mostly in the form of practical programming and data analysis. Lecture notes and practical examples will be made available in the form of ipython notebooks.

Wider reading or practice40
Completion of assessment task110
Total study time150

Resources & Reading list

Software requirements. Enthought may be OK for this module,but Anaconda is strongly preferred

Staff requirements (including teaching assistants and demonstrators). 

Barlow, Roger. Statistics: A Guide to the Use of Statistical Methods in the Physical Sciences. 

Teaching space, layout and equipment required. 


Assessment Strategy

Attendance of all practical sessions is mandatory; no mark will normally be returned for any student attending fewer than half of the sessions.


MethodPercentage contribution
Data analysis project 60%
Laboratory practicals 20%
Programming project 20%


MethodPercentage contribution
Coursework assignment(s) %
Coursework marks carried forward %

Repeat Information

Repeat type: Internal

Share this module Facebook Google+ Twitter Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.