Guidelines for Reports and Theses
I evaluate reports and theses based on their quality, not based on the number of pages. If you need a rough guideline for your thesis, I would say that about 30 pages for a bachelor's thesis and about 60 pages for a master's thesis are reasonable. If you have many examples and illustrations, more space will be needed an that is fine. You should take the space that is needed in order to convey the message comprehensibly, but not fill the pages in order to reach a particular page number.
There are no particular formatting requirements. The standard settings of your text processing software should be fine. I recommend that you use Latex for your thesis. It requires some time to learn, but it just looks more professional and will be helpful throughout your whole academic career. Even if you already know that you want to work in industry, knowledge of Latex may be useful later in order to write professional documentations or to publish a book.
As usual, your work should be roughly divided in introduction, main part and conclusions.
Your introduction should, in particular, cover the following points:
- What is the problem that you want to solve and why is it interesting?
- What are the main contributions of your work?
- How does your work roughly relate to existing work? (this can be explained in more detail in the next section)
The main part should be further divided in additional sections like
- Background and related work,
- Conceptual Part,
- Practical Part,
- Evaluation Part
In the first part, you should explain the basics that are necessary to understand the following parts of your thesis. You should briefly introduce all basic definitions, results and algorithms from the literature that you will use later. However, you should not introduce more than what is actually needed. For example, if you want to use Bayesian networks, you should give the basic definition, but you do not have to explain d-Separation unless you actually want to apply it. You should also discuss related work that inspired your work and explain how your work is different from or extends related work. Again, you should focus on literature that is actually relevant.
In the conceptual part, you should describe your solution conceptually. For example, if you develop a software, you should discuss the architecture and the libraries that you use, discuss alternatives and justify the decisions that you made. If you write a theoretical work, the conceptual part should contain the basic definitions and formal descriptions of the problems that you want to analyze and solve.
The practical part puts the conceptual part into practice. In case of a software, you may describe implementation highlights here. However, usually you should not paste in code sections, but only show pseudocode for particularly interesting parts of your implementation. If possible, the textual explanations should be accompanied by illustrations. In case of a theoretical work, this part may contain algorithms and theorems.
The evaluation part should contain an empirical evaluation of your work. In case of a theoretical work, this part can be omitted, of course. If possible, you should use conventional evaluation approaches from the literature. For example, if you consider an optimization problem, you should use standard benchmarks, show the usual statistics and compare your results to other state-of-the-art methods. If you consider machine learning problems, you should also make clear that you evaluated your solution on test data that is independent of the training and validation data. If you make up your own evaluation metrics, you should explain why.
The four parts of the main part are just a rough guideline. There should always be a section for background and related work, but the remainder of the main part may be structured in other ways. However, usually, conceptual ideas should come before their implementation, which should come before the evaluation.
In your conclusions, you should briefly repeat the problem that you were interested in, how you attacked this problem and how your solution goes beyond previous work in this area. You should also give a critical and honest assessment of your work. Remember that you do not write a marketing article, but a scientific report. If you found that something is not possible, this can also be an interesting finding. If possible, you should also discuss some ideas about how to extend your work in the future.
Comprehensibility and Reproducibility
The goal of scientific writing is not to impress or to intimidate the reader, but to convey interesting and novel information. Sadly, phrases like "it is well known" and "it is easy to see" are common in the literature. You should set your bar higher than that. If you do not know how to prove a theorem, just call it a conjecture. You can still substantiate your conjecture with empirical evidence. If you refer to a result from the literature, give a reference that includes the theorem or page number. Just adding a reference to a 500-pages book is not of any help to the reader.
Your results should be reproducible. In particular, your implementation must be documented and there should be well documented code that allows rerunning your experiments. You should also document your platform information (hardware, operating system, version numbers of libraries).
Finally, you should try not to get lost in meaningless information. It is okay to write down all thoughts in a first draft, but at some point, you should filter the relevant Information. Again, the quality of your work is not measured by the number of pages or the number of ideas that you mention, but by the quality and relevance of these ideas. Too much information will only confuse the reader and interesting ideas may get lost in excessive digressions. There should be a clear train of thought throughout your work and at every point the reader should know what you discuss and why you discuss it.