-1

I have a few questions about writing my master thesis on computer science. The topic is "Automated generation of planar geometry olympiad problems". In short, it's about a piece of software that can generate geometry problems that could be proposed to International Mathematical Olympiad.

My main issue is regarding what I should or should not write. I have a GitHub page where all the code is and I intent to gradually add detailed documentation about the code and how to run it. This brings one question:

(1) To what extent should I describe this implementation also in the thesis? For example: Should I mention what programming language I used? Should I have any actual code in there?

Then there is this thing: I use analytic geometry to represent and find geometry problems. It is somewhat well-known, in fact, used heavily in computer graphics etc. I needed to figure out a few things that aren't generally common, for example finding the coordinates of the circumcenter of a triangle. I'm not sure how to write about it. My main concern is that it would take up lots of pages and from some point of view it's an implementation thing.

(2) Should I describe analytic geometry, i.e. well-known things plus all potentially interesting helper procedures?

Then there is yet another implementation detail. I verify theorems numerically. Therefore, theoretically speaking, my algorithms are probabilistic, but the real probability of them being correct is very close to 100% due to the fact that 64-bit floating numbers are precise enough for my purposes (though I can't formally prove this statement). To have the ability to compare numbers and correctly implement HashCode of my analytic objects I use a custom IEEE 757 bit-level rounding algorithm.

(3) Should I describe this custom implementation-detail algorithm in the thesis?

There is a lot to talk about, because the main algorithm is split into a few other algorithms (Generator, Theorem Finder, Theorem Prover, Theorem Ranker, Theorem Simplifier,...), so if I choose to write everything I would end up having 100+ pages.

I also have a helper utility program that generates MetaPost figures of the generated problems, to get an actual visual result. It is not part of the main algorithm. But there are some interesting details, for example, it is able to automatically position labels so that the figure looks pretty. Again, the question is the same:

(4) How should I describe this drawing program? Should I describe the implementation of this drawing utility?

In conclusion...

(5) Who am I writing this for? Should a thesis be just a review of what has been done without going too much into detail? Or should it be the best detailed description of the work?

  • 6
    All of these questions ought to be asked of your advisor, since they are the one who will ultimately decide whether your thesis is acceptable. – Nate Eldredge Jan 24 at 3:15
  • I agree. In some fields/countries, you can literally staple some publications together and call it a thesis. In others, a thesis is essentially the first draft of a book. You would do well to study some recent theses from your corner of academia. – cag51 Jan 24 at 3:26
1

(1) To what extent should I describe this implementation also in the thesis? For example: Should I mention what programming language I used? Should I have any actual code in there?

Your thesis should demonstrate that you have satisfied the (marking) criteria. I'll elaborate if you provide that criteria.

(2) Should I describe analytic geometry, i.e. well-known things plus all potentially interesting helper procedures?

Present enough to allow a computer scientist (uninterested in analytic geometry and computer graphics) to reproduce your results. That should certainly include, a few things that aren't generally common, for example finding the coordinates of the circumcenter of a triangle.

(3) Should I describe this custom implementation-detail algorithm in the thesis?

You mention, I verify theorems numerically...theoretically speaking, my algorithms are probabilistic, but the real probability of them being correct is very close to 100% due to the fact that 64-bit floating numbers are precise enough for my purposes (though I can't formally prove this statement). I'm not sure what you mean, but it seems you have heuristics, rather than theorems, since they aren't proven.

(4) How should I describe this drawing program? Should I describe the implementation of this drawing utility?

This comes back to the marking criteria, perhaps you can share it.

(5) Who am I writing this for? Should a thesis be just a review of what has been done without going too much into detail? Or should it be the best detailed description of the work?

At the very least, you're writing for your examiner. More idealistically, you are writing for your peers: A computer scientist (uninterested in analytic geometry and computer graphics) should, at the very least, be able to understand what you have produced, preferably, they should be able to reproduce your results.

| improve this answer | |

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