School of Physics


Modelling and Visualisation in Physics (U01414)

This course starts on Tuesday Jan 8th 2008 at 2pm in 6206. Subsequent lectures for 2008 will be at 3 pm in 6206 on Tuesdays. The CPlab session is on Fridays 2-5: you can skip an hour of this if you have a clash. Due to the clash of the final lecture with project deadlines, information about the exam is here.

Foreword

The material of this course is designed to be accessible anywhere on the Edinburgh University campus, through a World Wide Web interface. Much of the practical work of the course requires java libraries which can be accessed, via a window to the LINUX operating system on the Computational Physics laboratory. Typically, you will be in the CPlab when you are doing this course although it is possible to work remotely. Detailed information about the CPlab is here.

The course comprises one formal lecture per week and one assessment session in the CPlab. The course runs by continuous assessment of a series of design and coding tasks. You will need to do the majority of the coding outside these formal hours. The CPlab is booked on Friday afternoons where I will be present to help with coding.

The language of the course is java. You should have a working knowledge of java to the level of Computational Methods 3. It is not necessary to have taken Computer Simulation 3 or CSim2h.

Schedule and Marking Scheme

The course involves lectures and the completion of a series of checkpoints, each requiring you to write and document some computer code in java. There are five compulsory checkpoints. Each checkpoint comprises a computer file containing the code and written documentation of the problem design. Each checkpoint has its own deadline which corresponds to the lectures.
Exercise 1 (Molecular Dynamics) must be finished by the end of week 3

Exercise 2 (Cellular automata and Percolation) must be finished by the end of week 5

Exercise 3 (Fields and Potentials) must be finished by the end of week 7

Exercise 4 (Ising Model) must be finished by the end of week 9

The exercise (Growing Networks) has been replace by popular demand by Exercise 5 (Rigid Body dynamics) which must be finished by the end of week 11

The checkpoints are not formally assessed, however the examination will require you to reuse (and alter) code written for the checkpoints. Your alternative is to hope to write the examinable code from scratch in three hours, which would be a bad plan.

It is expected that you will do much of the work of the course outside the formal sessions. The course material is available online, and you should be able to work remotely.

Compared with previous courses, there will be much more emphasis on analysing the results of simulations and less on the details of coding - I assume you are competent programmers by now.

and a designated practical session in the CPlab from 2pm on Friday afternoons. Prof Ackland will be available to assist at this session, and you are encouraged to work cooperatively with your classmates.

Feel free to ask questions by email. A note of general answers from previous years is here (FAQ)

You can work remotely using ssh to one of the cplab machines.

There is an online examination. This assessment will include an individual coding task to be completed in a limited time. Previous exams can be seen for 2004 , 2005 , 2006 . 2007 .

Plagiarism

In modern programming, borrowing or reusing other peoples' code is a virtue. However, it is not helpful in learning how to program. To balance these conflicting requirements, the following apply:

You may seek help, or java classes, from your classmates or by websearch provided you acknowledge that help as a comment within your code. If this is simply help with debugging or syntax, there is no problem and such cooperation is encouraged.

Prerequisites

The language of the course is java. You should have a working knowledge of java to the level of Computational Methods 3. It is not necessary to have taken Computer Simulation 3 or CSim2h. We will also use the swing library. You should have complete mastery of java syntax at the level of Scientific Programming.

The course assumes you have done Computational Methods or Computer Simulation 2h

Since you've only done one these courses, it will be wise to look over the other one. In particular, java Graphics will be introduced uncomfortably quickly if you've never seen it before. Clemson University has a nice tutorial .

Online Resources

There are many books and online sites which provide information about the java programming language. You are encouraged to surf the internet for relevant material. However, unlike languages such as FORTRAN, java is not designed primarily for scientific computing and the available material reflects this,

The definitive reference source and a set of tutorials is at SUN. This is an essential reference for looking up standard classes and their methods. the relevant section from CompSim on graphics is here