I'm working in software development and plan to start a part-time masters degree.

I've read in some places that a thesis shouldn't have much code and should use pseudo-code instead. Then on other sites I see thesis that seem to center around a newly developed code base. Then other example thesis relating to mechanizations seem to include code, schematics, and 3d designs.

Are some of these examples I'm seeing project streams or can a thesis still include these?

  • 7
    This varies so much with the topic… Both my Master thesis and my PhD have exactly 0 lines of code. And 0 of pseudo-code. – Clément Nov 7 '17 at 15:23
  • 6
    For the love of God, please don't include only a link to github (or your university home directory, or your personal homepage, or any other similarly non-permanent location) in your thesis! Github will eventually die! Including code listings with your work helps to ensure that anyone with access to the work has access to the relevant code, even if they have to re-type it. Also, depending on the nature of the thesis, it's quite possible that the ideas & algorithms are more important than the implementation, so reading an appendix is completely adequate. – A C Nov 7 '17 at 17:29
  • 4
    @FábioDias University regulations are often bizarre and out of date. For example, the copy of my PhD thesis in the university library is printed single-sided and double-spaced because that's the rule, even though it quadruples the amount of paper the library has to store forever. It wouldn't be surprising if some institutions' regulations demand printed code, even though storage in a repository makes more immediate sense. (Having said that, who knows if a github archive will be still exist in 50 years -- the paper copy almost certainly will.) – David Richerby Nov 7 '17 at 17:29
  • 1
    @alephzero I don't recall if the regulations specified that theses must be printed on low-acid paper, but that's what I used for mine. – David Richerby Nov 7 '17 at 18:03
  • 2
    Relevant: xkcd.com/1909 – Fábio Dias Nov 7 '17 at 18:29

For someone who's already enrolled, this is prime ‘ask your supervisor’ territory, since thesis requirements and expectations vary enormously between countries, universities, departments, and research groups.

If you’re not enrolled yet and want to gauge the code requirements at a particular department before deciding to do a Master’s there, you have a few options:

  1. Many universities have a publicly accessible, online research repository where theses are deposited. Download some recent Master’s theses from your department of interest and see what they do.

  2. If your department of interest is not too hard for you to reach physically, you can go to their library and peruse hard-copies of theses.

  3. Just about every university should have a written handbook for theses, and these are often publicly available for download. You may find some guidance for code inclusion here.

  4. Contact a professor at the department, or an alumnus of the department, to ask your question. It can be hard to get a reply to an out-of-the-blue email to an academic, but if you are seriously considering study there, and make this clear in your enquiry, your chances should improve :).

Visiting the department, looking at past theses, and making contact with professors are of course things you'll want to do anyway if you’re thinking of applying to that department, so checking the amount of code needed in a thesis is really just another item to add to your checklist when you’re finding out about the institution.


As always: Ask your supervisor, always.

Generally speaking (for personal experience) one doesn't see a lot of code in the thesis themselves. The main logic behind this is that if whatever you are showing is just code, then just link GitHub! The document is meant to be an addition to the code, text explaining why/what/how of the code.

If someone wanted to just look at the code, why would they do it in a PDF instead of in their IDE? Additionally, very often code has a lot of redundant/obvious parts that are completely unuseful to anyone reading it, and would only take space on paper (e.g. input parsing, file reading, output preparing code). However, providing only partial code for a function is generally unuseful also, as its hard to read others code even when its complete. Thus, most people tend to use pseudocode as what you want is to explain what the code does, not show the exact syntax.

All in all, this is partially my experience and partially my opinion, and regardless of what anyone says around here, listening to your supervisors is likely the best option.

  • 1
    +1 for considering the purpose of code in a document like this, which is to illustrate a concept, and not to provide working code. Nobody wants to pore over syntax, especially if it's in a language the reader isn't intimately familiar with. There are far better vehicles for making code available, as you point out. – Nuclear Wang Nov 7 '17 at 18:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.