Skip to content

Instantly share code, notes, and snippets.

@gerritgr
Last active April 24, 2024 05:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gerritgr/25f62c99dadff269966192d7ebbf005f to your computer and use it in GitHub Desktop.
Save gerritgr/25f62c99dadff269966192d7ebbf005f to your computer and use it in GitHub Desktop.

How to Thesis 📘

The process of writing a thesis is an important and transformative phase for every student. It can illuminate new knowledge and perspectives but also trigger stress and doub. Howver, physical and mental well-being should always be prioritized and never sacrificed for the sake of university obligations. This guide aims to streamline the process by providing you with practical guidelines to navigate this challenging yet rewarding endeavor.

General 📌

  • Most communication should run via Mattermost (I recommend you turn on Mattermost email notifications to not miss anything. We also expect you to try to respond to messages within two working days). Online meetings are typically organized in MS Teams. Feel free to proactively create meetings and invite people. 
  • You must attend the group seminar ("Bachelorseminar" or "Masterseminar"), for more information see https://mcms.cs.uni-saarland.de/bama/ (there will be a mailing list in the future).
  • Please carefully read the "Prüfungsordnung" (study regulations). It is our responsibility to comply with the Prüfungsordnung. If you think there is a contradiction between the "Prüfungsordnung", our website, or what we say to you, please tell us.
  • It is your responsibility to regularly update your advisor on your progress (e.g., once a week). Please be proactive in this regard.
  • Writing your thesis should be your main academic focus during this time. We expect that you work on it (more or less) persistently and continuously. If you are unable to work on your topic for a longer period of time, please communicate this as soon as possible.
  • Instead of making incorrect assumptions or remaining inactive, it is important that you ask for clarifications if something is not clear.

Typical Procedure 🔄

  1. Find a topic together with your advisor.
  2. Conduct a careful literature review to set realistic expectations and make sure it hasn't been done the same way before.
  3. Implement a first prototype.
  4. Give your proposal talk and submit the thesis agreement (see website).
  5. Register your thesis (shortly after the presentation).
  6. You have time to finalize your experiments and write your thesis.
  7. Together with your advisor, find a second reviewer.
  8. Submit your thesis.
  9. Give a final talk (called "defense") (ideally within two weeks after submission).
  10. 🏆

Literature Review 📚

The literature review at the beginning of your thesis (but also during writing) is critical, and many students struggle with it or do not want to put in the effort. However, doing a thorough literature review will pay off later. Potential tools are:

  • Use a literature management system like ReadCube or Zotero.
  • Google Scholar search for keywords.
  • Google Scholar -> go to a paper and see "cited by".
  • Identify relevant conferences and journals and scan them systematically.
  • Tools like consensus.ai (ChatGPT interface at https://chat.openai.com/g/g-bo0FiWLY7-consensus), litmaps.com (I really like this one), connectedpapers.com, scite.ai, and ResearchRabbit.ai can help.
  • Follow relevant researchers on Twitter/X.
  • Use ResearchGate to save and find interesting papers.
  • Talk to everyone you know who has experience in this area.

Writing the Thesis ✍️

  • Start by looking at some theses from the university library to get a feeling for the range of different possible works.
  • Using a good template makes life a lot easier. I like Clean Thesis: (http://cleanthesis.der-ric.de/) but there are many others.
  • There are some good books on scientific writing for CS/math, I really like Writing for Computer Science by Justin Zobel.
  • Don’t write with ChatGPT, it is horrible to read. But you can use LLMs to catch errors or improve formulations.
  • Use Grammarly or something similar to find obvious errors.
  • Make sure the thesis is structured such that your contribution is clear. Don’t mix your contribution with previous work.
  • Include the code (GitHub link) and make sure experiments are reproducible.
  • Use Turnitin to check for plagiarism: https://www.uni-saarland.de/en/administration/turnitin.html.
  • I like to use capitalizemytitle.com (APA style) for consistent titles. You can also use a style guide for consistency.
  • Often figures are a problem:
    • Use vector graphics (or at least high-resolution images).
    • I often export matplotlib figures as PDF and then use a PDF editing tool to finalize the image. Tools like Inkscape or pdfresizer.com or simply Keynote help with small edits.
    • Make sure the text in the figures is easily readable. The font size within a figure should not be (much) smaller than the actual text.
    • Make sure you use meaningful and consistent color schemes that are readable when printed on paper.
    • If you use external figures, cite the source in the figure caption.

Your Talks 🎤

  • The goal is to tell a self-consistent story.
  • It is of utmost importance that the following questions are answered very clearly and without any ambiguity: What problem are we solving? Why is this problem worth solving? How do we solve it?
  • Put time and effort into creating visualizations and preparing (running) examples.
  • Prioritize concreteness, simplicity, and clarity.
  • Focus on intuition, high-level understanding, and contextualization, not on technical details.
  • Don’t overcrowd your slides. Try to avoid full sentences and be cautious with bullet points.
  • Use slide numbers.
  • Submit your slides as .pdf one week before your talk (or whatever is specified on the group seminar website).
  • If you use Keynote, you can use LaTeXiT to get proper LaTex vector graphics on your slides.

Other Resources You Might Like ✨

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment