During my research, I have developed some computer codes to optimize the coefficients of theoretical equations against the experimental data. The computer codes was developed to make things easier through automation which I would otherwise need to do it manually (rather painstakingly).

Do I need to include the codes that I have developed in my thesis, or it is just sufficient to provide an executable (.exe) in a disc?

  • 3
    What's a disc?? Oct 15 '15 at 9:16
  • 6
  • 2
    @DaveClarke: Various universities require handing in all code created for the thesis on a CD or DVD, along with the printed document, for archiving purposes. (The actual code might have been stored in a VCS, where it might be further extended in the future, but the version on the CD is the one "on file" as the unmodified state at the end of the thesis.) Oct 15 '15 at 9:24

I had the exact same situation with the completion of my thesis.

The first thing I did was to consult with my supervisor - seek your supervisor's advice - particularly if they have supervised someone doing similar before.

What I ended up doing (in my successfully completed thesis) was to include pseudocode and explanations of that pseudocode in the context of the experimental data (and with any theoretical background also). I was advised and did put the .exe in a CD in the back of the thesis.

Additionally, I published papers about the program and made reference to them in the thesis.

Another option is to upload the code in an online code repository (e.g. GitHub), only if there is no issues with sharing the code.

(Note: where I am, research theses are peer-reviewed for assessment)


In general:

If the program is really just to ease some work you might as well have performed manually, it’s not necessary; you do not even have to supply the software on a disc or otherwise. I have yet to see a paper or thesis that includes every code used in the process (and if there were some, who would want to read that). The general idea is that your scientific work is creating concepts and theories or translating them to a given problem and such programs exist only to alleviate the inevitable legwork.

As soon as there is any manual step involved in evaluating your work, it’s impossible to completely verify your work without reproducing it. If you had performed this task manually, you wouldn’t have yourself videotaped while doing it and appended the result to your thesis, would you?

Of course, if the program is central to your work or involves non-trivial steps, doing something between outlining the algorithm or actually appending the source code would be appropriate and sharing the program may help others in your field (and attract people to your work). But this doesn’t seem to be the case here.

In special:

Your advisor or unversity may think differently about this and their opinion counts. Ask them or read their guidelines, respectively.

  • 2
    "I have yet to see a paper or thesis that includes every code used in the process" - I have seen many thesis CDs that included everything used during the thesis (this includes document sources and presentation slides, but also sources of custom software developed for the thesis, central or supporting, build scripts, in Eclipse-based projects sometimes also a pre-configured IDE, etc.). In particular, I generally ask my students to put the whole contents of their VCS onto the CD. No-one reads that "for fun", but it can always be helpful for future students who want to apply similar procedures. Oct 15 '15 at 9:50
  • Also, concerning "The general idea is that your scientific work is creating concepts and theories and such code exists only to alleviate the legwork." - this statement probably assumes that the OP is talking about a PhD thesis (and even that is not limited to only showing conceptual work), rather than e.g. a Master thesis, which is not currently stated in the question. Oct 15 '15 at 9:55
  • If I were to include "everything used during the thesis" I would need several thousand CDs. I currently have ~2.5 terabytes of data generated so far. Oct 15 '15 at 10:04
  • 2
    As for including the .exe file: it's much better to also include the source code, since the .exe file may not run correctly on a different computer, may not run correctly in a few years time on a new Windows version, and it will definitely not run on OSX or Linux. Oct 15 '15 at 10:05
  • 1
    @semi-extrinsic and O.R.Mapper: Can you please take that discussion to chat?
    – Wrzlprmft
    Oct 15 '15 at 10:39

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