Below are the two projects I am offering to two students on Nuffield placements.
I will add more detailed information as we get nearer to the start of the projects

A Monte Carlo study of a percolation model

The student will investigate a basic percolation model in two
dimensions, using computer simulations. A program will be developed in
Vpython to simulate the model and analyze the results, by looking for
spanning paths. The finite volume effects will be investigated and the
critical probability for filling will be determined. The student will
investigate applications of the percolation models to subjects such
as: terrorist networks and the propagation of diseases.  In the final
part of the project, the student will explore using a 3D printer to
visualize a snapshot of the model, based on the idea of "Sculplexity",
introduced by Tim Evans and collaborators at Imperial College.

See the more detailed notes on the project. The code below contains some hints for writing the
percolation code. The code is embedded in the web page using It uses the following parts of Python:

  • Functions (see the tutorial).
  • loops (see the tutorial).
  • It uses modules (see the tutorial).     In particular it uses the numpy module for arrays (see the tutorial)
  • See the update with the "pretty printing" of the lattice.

Visualization of a chaotic dynamical system

The student will be taught the basics of how to program physics applications in Vpython. A particular feature of this language is the
ability to create 3D visualizations of objects in a simple way. The
student will write computer programs to study dynamical systems with
chaotic behavior, such as the double pendulum, and a ball bouncing ona vibrating platform.
(The dynamics of bouncing is useful for spaceships landing on a comet.)

See the slightly more detailed notes on the project

A 3D printer will be used to print a snapshot of
the dynamics. The student will think about the forces and the
structorial stability of the printed objects.

YouTube Video

A video of a Vpython code to show a ball bouncing between two plates. In the project you will get the ball to bounce in the vertical direction and include the force of gravity.

YouTube Video

Background reading

Some curated links about topics we discussed.

  • An interesting article about randomness.   The simplest random number generator used in computer programs is described here.
  • Galilean relativity          This is the basic principle behind how the ball interacts with the platform when the platform is moving.