We use cookies to ensure that we give you the best experience on our website. You can change your cookie settings at any time. Otherwise, we'll assume you're OK to continue.

Durham University

Department of Physics


What is the Aim of the Course?

At levels 1 and 2, you have learned how to write simple programs using the python programming language and how to code up simple computer algorithms.

Your computing project gives you a 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 text books, 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.

What to attend

After the introductory lecture (which everyone attends), you will attend tutorial style workshop (and perhaps the drop-in programming help sessions) every two weeks. You should check the schedule to see which day and which week you are to attend, and check the departmental webpage giving the official deadlines for your work . It is up to you to make the best use of this tutorial time, so you should come prepared, having made progress on your research in your own time. I would suggest that you keep a notebook in which you record ideas and questions that have occurred to you over the course of the two weeks between the tutorial sessions. It is very important that you take responsibility for your work and for making these tutorial sessions useful. It is up to you to bring up topics for discussion in the tutorial.

It is extremely important that you realize that most of your project work needs to be undertaken in your own time.

The tutorials are not intended to solve problems with computer programs. In order to get help with technical problems, you should seek help from the post-grad demonstrators: these sessions run in parallel with the tutorials in the computing laboratory.

What you have to do

You will find a description of your project in the project booklet on DUO under:

Physics Problem Solving > Course Documents > Computing Projects

The initial description is intended only as a guide to get you started. You will need to research your topic in much more depth in order to present a good report. There are four tasks that you will need to undertake: the dates below are only indicative: make sure you check the official deadline on the department’s page.

  • Design and create a “milestone” program: This is a simple program that will get you started on your research. All the programs have well defined plots that you need to make and numbers that you need to calculate. You should not rush into this program, but spend some time designing it so that it can easily be extended to undertake 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. You should be able to show progress on your milestone program in session 2. Everyone should have certainly have a working program before the end of Michaelmas term.
  • A 10 min Presentation: As you develop your milestone program, you will research your topic, and present your ideas for further exploration in a 10 minute talk, along with some preliminary results. You will give your talk in session 3.
  • A Poster: In epiphany term, you will create a poster drawing on your 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.
  • Your Report: The majority of your marks are awarded on the basis of your report. This is a document similar to a research paper. Check the department pages for the page limits and other details . The highest marks will be awarded to reports that show an innovative approach. Reports are to be submitted in early March, as detailed on the official page.

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, go to the Lab's computing guide here.

The very useful "Introduction to Programming in Python" booklet from the Level 1 course can also be found there, as can "Python Traps and Pitfalls'' where we've collected together some common errors that are often made.

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


Head of Level 3 Computing Project

Prof Richard Bower, BA Physics, PhD.

Personal web page

Professor in the Department of Physics
Telephone: +44 (0) 191 33 43526
Room number: ocw214

(email at