# Guidelines for Master's Students
Mark van der Wilk, April 2022
Please read these guidelines carefully. Keep in mind that I often supervise 10+ master's projects. Following these guidelines will make organisation a lot more efficient, and this will allow me to spend more time on what is actually important (and fun): supervising projects!
## The Individual Project
Your Individual Project is a significant undertaking where you develop your ability to perform independent work and research. Of course, you will be guided by myself and possibly a member of my [research group](https://mvdw.uk/people/).
Throughout the project, you will independently:
- explore the literature, which means finding scientific papers and following their references to teach yourself recent techniques,
- develop your mathematical skills, and,
- develop your technical skills, e.g. programming algorithms, handling remote computing resources, and organising infrastructure to create systematic and reproducible computational experiments.
The main thing you can expect from your supervisors is **a clear statement of what is to be investigated**. This could include:
- specific results that should be replicated,
- a new capability that should be developed, and/or
- a metric by which you can measure any improvements.
In addition, you can expect guidance from your supervisors throughout the project. Since the projects are all related to your supervisors' research, they are invested in ensuring that you get as far as possible, and are often enthusiastic to see the results you get. However, in principle, you should be able to make progress by yourself, and you may have to in periods where your supervisors are busy and cannot meet as regularly.
You can rely on roughly half an hour per week with your supervisor. This may be a bit more or less, depending on the needs of the project. If you have a PhD candidate co-supervisor, you may arrange additional meetings with them, if they have time.
## Effective Meetings
You should treat your supervisor as a resource or a consultant on your project. The responsibility lies with you to make progress, but you should definitely consult your supervisor if you are stuck. Do keep in mind that you should use your meetings with your supervisor effectively. Time is limited and needs to be shared with many other master's students.
To use your meeting time optimally, follow the following tips:
- **Have a clear view of what you want to discuss in the meeting.** Write down the points you want advice on beforehand.
- **Be ready to concisely summarise your progress at the start of the meeting.** The more effectively you describe the overall progress, and the relevant details, the more time is left for productive discussion.
- **Summarise any experimental results in a way that is obvious to others.** For example, to illustrate a particular point, create a full graph *with* axis labels and a title including important details of the setting (e.g. dataset).
- **Be honest about your progress.** Do not make results look better than they actually are, and clearly state limitations of what you have done. This actually improves the value of your scientific work, and improves the quality of advice you get. Limitations that are discovered after your report hand-in or during your oral examination.
- **Take notes** on suggestions, e.g. recommended papers or experiments. Also, note down concrete actions that you will do. At the next meeting, you can measure your progress. You could either present results of what you did, discuss roadblocks, or discuss reasons for why you ended up not doing something. Not doing something is good if you realised it wasn't relevant, since it allows you to spend time on things that are actually important.
- **Replace a meeting by an e-mail** if you can. If you don't have a lot to report, it's better to give a short written status update.
- **Keep a shared progress log with your supervisor**. This can be a HackMD file, a Google doc, Overleaf, etc, where you keep a summary of e.g.
- things you agreed you would do,
- important benchmark numbers that you have previously achieved,
- your latest plots that you want to discuss.
## The First Meeting
Different courses have slightly different timetables, so it is your responsibility to decide when the project starts. Once you are ready to start, you should organise a first meeting with your supervisors.
For this first meeting, please prepare a Gantt chart that includes important dates like your final hand-in, and any intermediate deadlines. Include any ideas on tasks and milestones you need to do to make the project.
You should also be prepared to explain to your supervisors, what your current understanding of the project is. You should do this based on the project description, recommended papers, and perhaps by reading around key concepts that are mentioned. This is to ensure that everyone has a clear view on what should be done, and that your supervisors can steer you in the right direction if you do not have a clear view.
The most important outcome of the first meeting is that you leave with an understanding of what your project is supposed to achieve, and some initial suggestions for papers to read to solidify your understanding of the field.
It is really important to get a clear view of the goal of the project in the first few meetings. If you understand what your goal is, it will be much easier to for you to independently make progress.
It's a good idea to also do some of the recommended reading for the first meeting. Try to understand as much as you can, and come up with concrete questions to ask. It's normal to feel a bit lost at the start, but do try to understand as much as possible.
## Scheduling Meetings
- You should give your supervisor a status update about once per week, whether you do this by e-mail or in a meeting.
- You should meet by video or face-to-face at least once a month.
- Please book your meeting [online through Calendly](https://calendly.com/mvdw/masters-project-meetings). Try to choose a time that is back-to-back with another meeting.
- If you have a PhD student co-supervisor, please check availabilities with them beforehand, and forward any calendar invites to them as well. They are not automatically included in the Calendly system.
- Please allow for the meeting to be delayed by a bit, if an earlier meeting overruns. Keep an eye on your calendar as well, as I may need to reschedule.
- If you can't make a meeting, cancel the meeting as soon as possible.
- If you're stuck between meetings or want to discuss something, you can ask for a meeting. It may not always be possible, but everyone wants you to be as productive as possible!
## Compute Resources
At a certain point in most projects, you will need compute resources. The Department of Computing provides quite a lot of useful resources. To _fully_ see all that DoC offers, check out the [CSG](https://www.imperial.ac.uk/computing/csg/) page. See our [group's guide](https://github.com/Occam-ML-Lab/machine-learning-workflow) for more pointers.
Generally, it is a laborious process to get a good workflow for running machine learning experiments. You can help improve this by being proactive about asking questions, and improving our [group's guide](https://github.com/Occam-ML-Lab/machine-learning-workflow).
## The Intermediate Report