Skip to main content

Students working at computer screens


The Level 3 computing project will allow you to investigate an exciting physics problem, via simulations, in the same way as many researchers.

Computing Projects

Computational Physics

Course aims

In previous years, you have learned the basics of Python and how to write simple algorithms.

Your computing project gives you the chance to apply these skills to undertake some research in physics. You will be able to investigate aspects of physics that go well beyond most undergraduate textbooks, questioning whether the results presented are correct, and extending the ideas into regimes that cannot be addressed with analytic mathematics. The computer is a powerful tool – if you can write down a problem in mathematical form, then the computer will be able to solve it. You must however pay attention to the accuracy of your result and understand the errors that arise from the way in which you have discretized the problem. An ideal report should be a mini-research paper, perhaps re-examining old work with new methodologies.


After the introductory lecture, there will be two further lectures on different topics including version control, testing and debugging. Following the lectures, you will attend a tutorial style workshop every fortnight with your academic staff supervisor. In order to make the most out of your tutorial time, you should come prepared, having made progress on your research in your own time. It is suggested that you keep a notebook to record ideas and questions that have occurred to you between the tutorial sessions. It is up to you to bring up topics for discussion in the tutorial.

The tutorials are not intended to solve problems with computer programs. Computing support will be provided by post-grad demonstrators who will use a mixture of synchronous and asynchronous tools such as drop-in sessions and Talkyard.

Most of your project work must be undertaken in your own time!


Current students will find a project description on BLU, which is intended only as a guide to get you started. In order to produce a good report, you will need to complete in depth research into your topic.

You will undertake multiple tasks:

  • A “milestone” program: You will make a simple program that will get you started on your research. All the programs have well defined plots that you need to make and values that you need to calculate. Don’t rush into this program, spend some time designing it so that it can easily be extended to achieve your research goals. The marks for this program are “formative” – we will check your program works and give you suggestions to help you be a better programmer. Everyone should have a working program before the end of Michaelmas term!


    • You will also need to show your work in progress – research and preliminary results – on the extension(s) of your projects (beyond the milestone)


  • A Poster: In Michaelmas term, you will also create a poster drawing on your own research and research papers you have found on the web. Your poster is aimed at demonstrating the excitement of your project to a general physics audience. You will be given the opportunity to practise "marking a poster" in Michaelmas term as well.


  • A short presentation: As you develop your milestone program, you will research your topic, and present your ideas for further exploration in a short talk, along with some preliminary results. You will give your talk during the Epiphany term.


  • Your Report: Most of the marks are awarded on the basis of your report. This is a document similar to a research paper. Highest marks will be awarded to reports that show an innovative approach. Reports are to be submitted towards the end of Epiphany term.

Help on Python

Python is a good beginners' language because you can develop programs very quickly. This means you can spend more time focused on the physics of the problem you are tackling. For help on Python programming, visit this page.

If you find any errors in any of the documentation, please tell us so that we can update it for next year's students!