I’m incredibly proud to have recently graduated with a First Class BSc degree in Computer Science from the University of Birmingham. To my surprise, during the graduation ceremony, I have also been awarded the Distinguished Dissertation Prize 2020/2021 for the highest-graded dissertation in the graduating cohort. This was a huge honour as it came completely unexpected, and it made a lot of the effort that went into writing my dissertation worthwhile.

I was going to write a post reflecting on my dissertation at some point. Given that I’ve received such an accolade, however, I thought it made sense to document and pass on some knowledge that I believe went into making my dissertation stand out.

Dissertation Context

The dissertation accounted for a third of the overall mark for my final year. I chose to base mine on cybersecurity and titled it “Analysing the Security of 4G LTE Networks using an Independently Developed MITM Proxy/Relay”. This is quite a mouthful, but the specifics of it don’t matter for this post. Overall, I received a mark of 90% in my dissertation.

I compiled a list of 10 tips that helped me work on my dissertation below. Some tips I’ve received from my dissertation supervisor, some I figured out as I worked on my dissertation, and some I found through discussion with my peers. I tried to keep them general, yet specific enough to the field of computer science. Hopefully they’re useful and provide something new compared to existing advice online!

The 10 Tips

1) 🏁 Set many, achievable goals

Your dissertation will feel overwhelming at first. There is a lot of work to do over the year and it may feel like there’s no way you’d be able to finish it all. I overcame this by setting myself milestones that I discussed with my supervisor. I then split those milestones into smaller goals and sub-goals.

As for milestones, make sure you have some small ones so that it feels like you made progress early on. Equally, make sure to have some ambitious ones towards the end. It’s great to have an “impossible” goal to strive towards as then you’ll always feel like there is work to do, which can also help with eliminating procrastination. In the worst case, if those difficult goals aren’t achieved, you can mention them as potential improvements. In the best case, you’ll achieve those goals and have a substantial contribution to the field in your dissertation.

It’s also important to assign a priority to your goals. I split my tasks into “high”, “medium”, and “low” priority. High priority tasks were done first as they were key to progress with my dissertation. Once those were done, I moved on to lower priority tasks. I found keeping a “low” priority list helpful to note down “nice to have” features that I could come back to at the end.

I kept track of my goals with Apple Notes, but I know many people like using special to-do list apps or keeping track of tasks in a notebook. Whatever works for you!

2) 🗣 Regularly ask for feedback

This one is super important and I feel like many students don’t do it enough. Whenever you can, solicit feedback on your project. It will help you stay on track and give you a fresh perspective on your work so far, ensuring that you’re making the most of your time and aren’t missing anything.

I asked for feedback regularly during meetings with my supervisor, which helped with prioritising my work. Talking to peers about my project also helped as they had different perspectives to my dissertation supervisor.

If you ever need to prepare a presentation on your project, make sure to take the feedback of any parties on board and directly address it when you’re presenting your work at a later time. When preparing the presentation, practice by presenting it to your friends or family and gather their feedback. It will go a long way.

Gathering feedback will also be important once you’ve written up your dissertation. You could swap dissertations with other students and give each other feedback. This can help you as it will expose you to aspects that you may have missed, and it will get you to think about your dissertation from a more critical angle.

3) 💻 Make the most of resources provided to you

There are a lot of resources available to students writing their dissertations. This is not something I felt in previous years of university, and it has become very apparent over the last year. Whenever I needed any equipment (and I needed a bunch of specialised 4G equipment), I asked my supervisor. He usually managed to sort something out promptly, or if he couldn’t then he referred me to someone that could help.

Universities generally also have lots of online resources that you have access to. Namely, there is a large collection of books I could access online. Those helped greatly with obtaining technical diagrams and writing up the background section for my dissertation.

If your university provides example dissertations from previous years or mark schemes, use them! Especially if you’re able to find a highly-graded dissertation similar to your dissertation topic, use it as inspiration as to how to structure your dissertation and what to include in it.

4) ✅ Keep a record of all you’ve done

It’s very useful to make a note of what work you’ve done and the details of it. It especially comes in handy when writing up the dissertation and trying to remember the details of something you’d have done months ago.

Making detailed notes is also helpful when discussing progress in supervisor meetings. Your supervisor might ask you things that you can’t remember off the top of your head, so having what you did noted down helps in such cases.

5) 🙋‍♂️ If you’re stuck, systematically try everything you can

Writing a dissertation is difficult. There were many points over the year where I felt like I hit a wall. In times like this, I made it a point to instead try to do anything that could help (even if I thought it’s unlikely to work) and noted down what I tried and what the outcomes were. In many cases, I could get closer to the solution through this methodological trial-and-error. If I was still stuck, I could use my notes to formulate the problem well and explain the problem to someone else.

If you’re very stuck, make sure to be upfront and honest about your issues in progress meetings. Your supervisor will then be aware of these issues early and will be able to help you in a timely manner. In the end, they want you to succeed, so there’s no shame in asking for help.

It’s also useful to ask any technical friends about what ideas they may have when you’re stuck. I found myself fixating on certain intricate aspects of my project sometimes, where the solution turned out to be much simpler once I spoke to someone about it. At worst, this would be a glorified way of rubber duck debugging, which can help in itself.

6) ⏱ Manage your time well

You will have other modules and commitments that you’ll need to allocate time for. Therefore, time management is key. You may find that during some weeks you get lots of work on your dissertation, and in other weeks there won’t be much. That’s completely fine, but it’s important to communicate this to your supervisor and in any progress checks.

Personally, I did a bulk of the work in the first term, so in the second term, I focussed on aspects that might not work and writing up my dissertation. Also when I knew that an assignment is coming up from another module, I made sure to focus on my dissertation beforehand. Then, once the assignment was released, I didn’t feel pressured to work on my dissertation knowing that I worked on it additionally already.

7) 🥇 Don’t lose sight of the big picture

Continuously remind yourself of what the end goal is of what you’re trying to do. I did a security project where I was being marked on the accuracy and thoroughness of my methods. Nevertheless, I found myself spending hours employing various software engineering methods and making my code look good and maintainable. This wasn’t necessary and if any, I got negligible credit for this. It simply wasn’t the goal of the project and that time could have been better allocated elsewhere.

8) 📚 Allocate time to learn about academic writing

Writing up a dissertation will likely be quite different from any work you’ve done previously. Especially in computer science, where essays and longer pieces of writing aren’t common in many modules, it can take some time to get used to.

You will need to read a lot of academic papers to get used to the academic writing style. I underestimated quite heavily how much this would take, and resulted in having to re-write some sections of my dissertation when my sense for academic writing improved.

It can be useful to keep a small bank of published papers that you like of which you can refer back to. I did this and then picked aspects I liked out of each one and incorporated them into my dissertation. This also ensured that my dissertation read more like a paper, and less like a student essay.

Along with reading about academic writing, some time will need to be allocated to getting familiar with academic writing tools. The vast majority of academic papers are written using LaTeX. I’d recommend using LaTeX, as your markers are likely to be researchers that also use it and are likely quite fond of it. It also makes your writing look great out of the box. However, sometimes things may break and extra time will need to aspects that just wouldn’t break in an ordinary word processor. A good alternative is using a word processor with a LaTeX document theme.

I used Overleaf as my LaTeX editor, which made working with LaTeX a breeze. I also used Zotero as my bibliography manager. Writefull also came in handy to make my work look more academic and it integrated with Overleaf well. Finally, Grammarly and Hemingway Editor were useful in giving my dissertation an extra level of polish and helped with getting it to read better.

9) ✍️ Keep your final write-up concise

After working on your dissertation for almost a year, you’ll find that there is a lot you can write about. I had to do lots of cutting down to reach the 10,000-word limit and wished I’d have been much more concise from the start.

The hardest bit for me was parting with the misconception that the time spent on a certain task directly correlates to the amount of space it should take up in the write-up. I spent weeks at the start simply trying to understand the basics of what I was working on, which eventually seemed trivial to me. Towards the end, however, I could spend a couple of days working on something that I could write whole chapters about. It’s important to realise how much value each point brings to your overarching goal.

On the contrary, it’s important to be aware of the curse of knowledge. You’re likely to be working on a highly specialised topic that’s not common knowledge for many computer science researchers. Something trivial to you may not be trivial to others. To help with this, I recommend reading your dissertation in its entirety from time to time and getting other people to read it also.

In the end, a longer dissertation won’t mean a better dissertation. In a long dissertation, your weak points will likely dilute your strong points, which could make your markers doubt your understanding of the topic. A good rule to follow is that if it doesn’t directly improve your project or feed into something that does, cut it out.

10) 😊 Have fun!

Your dissertation is a substantial piece of work, and likely the largest piece of academic work you’ve undertaken so far. It’s also a great opportunity to hone in on one research topic that you’re interested in. Therefore, it’s important that you have fun along the way and treat it as an opportunity to focus on what you enjoy in computer science!