Part II Computational Physics
Calendar for 2021
Event  Date 

First Lecture  11:00 Thursday 21st January 
First Practical Class  14:00 Monday 15th February 
Last Lecture  10:30 Tuesday 16th February 
Last Practical Class  14:00 Friday 12th March 
Exercises handin  16:00 Friday 19th March 
Project handin  16:00 Monday 3rd May 
Course Structure
The course consists of three components: a lecture course, a set of compulsory practical exercises, and an optional project (1 unit of Further Work). The formal details of these modules are available on the relevant course pages on the Teaching Information Service (TiS) website. A summary is given below, together with some additional information and links to resources elsewhere.
Lectures take place on Tuesdays and Thursdays, weeks 14 of the Lent Term. The lectures will be delivered by video on Moodle. Lecture handouts will appear on the Computational Physics section of the TiS. Details of "office hours" where you can ask questions about the lecture material are on the Moodle site.
Practical classes with demonstrator support will take place on Fridays, Mondays, and Wednesdays in weeks 47, from 14:0017:30.
The manual for the practical exercises will be available on the Computing Exercises section of the TiS. You can start these as soon as the manual is available. The deadline for the handin of exercises is the last day of Lent Term.
You will be able to download the projects manual from the Computing Project section of the TiS. You can choose a project and start as soon as the manual is available  note that you do not need to formally register for a project before you start work. The project deadline is the first Monday of the Easter Term.
Resources
Python/Numpy/Scipy
 Garth Wells' course from the Engineering Tripos is a selflearning resource which is a good preparation for the Part II course.
 Recommended by a student on the course as being at the right level for a physics student learning Python: the book Python for Scientists by John Stewart (formerly at DAMTP). This book is available online for students in Cambridge.
 For an introduction to Python, see the official python tutorial.
 For an introduction to Scientific Python, see the official Scipy site.
 See also this unofficial lecture series on scientific Python, and these lecture notes on numerics, science and data with Python.
 More advanced users may benefit from an online book From Python to Numpy. This concentrates on vectorisation but introduces other aspects of python numerical programming.
 LIGO gravitational wave data analysis in Python
C++
Version/Revision Control
 Matthew Evans' tutorial website also includes a PDF of the slides he presented in the practical session.
Numerical Methods
 A nice article on Verlet integrators

There are lots of good programming courses on the web, but fewer comprehensive numerical methods websites. Useful books on numerical methods include:
 "Numerical Recipes", 3rd edition. (also in C, C++, FORTRAN, Pascal, etc), by Press, Teukolsky, Vetterling & Flannery (CUP). Excellent encyclopedic summary of theory of many numerical methods and techniques. Almost a bible of methods for researchers.
 "Computational Physics", Giordano & Nakanishi. Nice introduction at the right level to several commonlyused techniques.
The best texts separate implementation details (i.e. how you use the language) from the theoretical details of the methods.
Latex
Note: if you use an online service for work you intend to submit for credit, make sure that your project is private (i.e. not publicly viewable on the web).
 Probably the best place for beginners to learn Latex these days is on Overleaf (signup required). It has now merged with ShareLatex, its major competitor in the field.
 An alternative is Authorea (signup required) which is a more focussed on general scientific document formatting and is less Latexcentric.
 For those more confident in running Latex on the command line, it is available on the MCS systems and you can install a package on your own computer. There are many tutorials online. One starting point is provided by the Cambridge University Engineering Department.