Exercises

There are four computing exercises to be completed in the last four weeks of full Lent term; one per week. The exercises count for 0.2 units or further work, or roughly 2% of your final mark for the year. Thus each exercise should only take you a few hours. Each of the four exercises is marked out of 5 for a total of 20 marks. Marks will be awarded in proportion to the amount of each exercise you successfully complete. Successfully complete means that at the very least the relevant code should run!

You will receive a link to the exercise via email on the first day before noon (i.e. Friday 17th February for the first exercise). The deadline for every exercise is 12 noon on the final day (i.e. Friday 24th February for the first exercise).

1 How to submit

You will be using GitHub classroom to submit your work, so you will need a GitHub account if you don’t already have one.

If you’ve never used GitHub before, you can try out the starter course. On clicking this link you will be asked to pick your identifier (CRSid) in order to join the classroom. Let me know if your id is missing.

Each week I will email you a link to a new exercise. Once you accept the assignment, GitHub will create a repository called <exercise-name>-<your-username> in the Part-II-Computational-Physics organization on GitHub. This repository will contain the exercise description. Please change the name of the repo to <exercise-name>-<CRSid> for ease of marking. Only you and the course admins (the demonstrators and me) can see this repo.

Note that there is no explicit “submit” button. You submit your work by making changes (“commits”) to the repository on GitHub (if you make commits to a copy of the repository on your computer, you must “push” them to GitHub). You can make as many commits as you like up until the deadline. Note that you can continue to add commits to the repo after the deadline, but only the last commit before the deadline is counted as the submission.

Please use the discussions section to ask questions to your demonstrators (about the exercises) and me (about everything else). Treat the discussions as if they are a real life examples class where others can learn from your questions and the answers to them.

If you’re using VS Code, there is a GitHub Classroom extension that allows you to view, work on, and submit assignments directly within the editor.

2 First exercise: PDEs

The first exercise concerns solving a simple PDE using different methods. Your demonstrator for this exercise is Nathan Magnan, a PhD student from DAMTP.

3 Second exercise: exact diagonalization

The second exercise is about using some of the linear algebra techniques from the linear algebra lecture to study spin chains. Your demonstrator is Jonathan Hallén, a PhD student from TCM. You can read about some of Joanthan’s recent research here.

4 Third exercise: Monte Carlo

The third exercise is about Monte Carlo techniques applied to the Ising model. You demonstrator is Danny van der Haven, a PhD student from Materials Science.

5 Fourth exercise: automatic differentiation

The fourth exercise is about using automatic differentiation to train a simple neural network. Your demonstrator is Cecilie Glittum, a PhD student from TCM.