Create your own copy of this repository through "Use this template".
Read this document in its entirety and ensure you understand it.
Then, read it again, and begin the challenging but beautiful and enriching journey called "thesis".
Plan your thesis (possibly, talking with potential supervisors):
- Determine the type of thesis (i.e. the kind of work you'd like to carry out)
- project (tesi di progetto)
- research (tesi di ricerca)
- report (tesi compilativa) -- i.e., no project, no research, but a mere reportage/elaboration of existing material
- Determine your subject:
- project idea (for project-oriented theses)
- scientific/research question (for research-oriented theses)
- subject (for report-oriented theses)
- Try to devise a plan, e.g.,
- in terms of mandatory goals and optional goals
- Devise a tentive title summarizing the whole content and pinpointing the direction of the thesis
The suggestion is to carry out an iterative, incremental, agile approach. In each cycle (approx. 1 or 2 weeks):
- Work on your project/research (an increment)
- Report your increment and discuss it / next steps with your supervisor -- then back to (1)
- See next section
Suggestion: keep the raw material about your work under version control in a repository (e.g., on GitHub)
- Use distinct repositories (or orphan branches, if you know what you're doing)
- notes (e.g., on background, on literature reviews)
- experimental activities (e.g., to learn a new framework or library)
- the main development project or the research project artifacts
- the thesis document (ideally, in LaTeX)
- You may also consider to use an app to keep track of tasks and progress (e.g., Trello)
- Share those with your supervisor. When reporting progress to your supervisor, provide a link to a proper page/artifact describing the increment.
Delivery of your work depends on the agreement you have with your supervisor. Some want to read chapters one by one as soon as they're ready, others prefer to correct the work when it is ready.
Some supervisors contributed to the document and provide the strategy they use here:
Surname | Name | Strategy |
---|---|---|
Francia | Matteo | Deliver each chapter separately, one chapter at a time. Each chapter can be delivered only once |
Pianini | Danilo | Deliver the index of contexts, namely, have all chapters and sections defined. Iterate over the structure as needed. Once the whole document is ready, send it. The whole work can be delivered only once |
In any case, the supervisor is not there to verify the status of your work, so, typically, work is sent to the supervisor when its contents are considered finalized. Moreover, the supervisor is not as spell checker: thoroughly check your document before sending it to the supervisor. If you are writing in English, a tool that we recommend is Grammarly. Once you consider your thesis finished, a good approach (assuming there is enough time) is leaving the document alone for 2-3 days, then reading it from the beginning: a fresh look may provide better insights.
Typical steps
- Before writing the thesis document, you need your thesis content: it means, you need to have a rather stable software for a software project thesis, experimental/scientific results for a scientific thesis, a conceptual framework for a etc.
Once you have enough material to actually start writing your thesis
- Define the high-level structure (i.e., the Sections) of the thesis
- You may optionally start writing the background content, as it may serve to make it explicit and fully understand it in order to develop the contribution
- Complete the main content (contribution, experiments)
- If technical developments and experiments are needed, wait to have them done: this part of the thesis is a documentation of what you have achieved (i.e., the final system, the experimental results etc.).
- Write Title, Introduction, Conclusion, and Abstract
Once you have written significant increments of your dissertation, consider asking feedback to your supervisor. Send your supervisor a PDF (possibly, a diff wrt the previous PDF you shared -- e.g., using tools like Draftable).
A good structure is as per the project exam report of the OOP course at UNIBO Cesena Campus: https://github.com/APICe-at-DISI/OOP-report-template
- Introduction
- Background
- Here you may want to provide some background on tools / processes you considered or adopted
- Analysis
- High-level goals
- Constraints
- Functional and non-functional requirements
- Requirements analysis
- Problem analysis
- Domain model
- Design
- Architecture
- Detailed design
- Implementation
- Implementation highlights
- Evaluation
- Testing
- Experimental evaluation / demos -- the idea here is to provide evidence, possibly using quantitative metrics (but, sometimes, even qualitative metrics could be ok)
- Conclusion and Future Work
- Bibliography/references
Important: in your dissertation, you should also provide a link to the main project's artifacts (ideally from a permanent repository like Zenodo which well integrates with GitHub).
Various structures could work. For instance:
- Introduction
- Methods and Materials
- Results
- Discussion
- Conclusion and Future Work
- Bibliography/references
Or also:
- Introduction
- Motivation, Background, and Related Work
- Contribution
- Evaluation
- Conclusion and Future Work
- Bibliography/references
Note: you may also detail the section titles to match the actual content, e.g.,
- Introduction
- Background and Motivation: CAS Programming
- ScaFi: a DSL for CAS Programming
- Case study: Programming Swarms
- Related Work on CAS Engineering
- Conclusion and Future Work
- Bibliography/references
Notice that sometimes, section "Related Work" might also fit at the end of your manuscript.
- Abstract
- Very brief (e.g. 250-300 words)
- Abstract should briefly point out: Context, Problem/Objectives, Methods/Contribution, Results, Conclusions
- Introduction
- Introduction should set: Context, Scope, Significance (Motivation), Goals/High-level Questions, Methodology (briefly), Organisation of the paper (chapters and what they include)
- Conclusion
- Conclusion chapter should point out: (1) Briefly recall problem, starting point and methods adopted, (2) Briefly report Findings, (3) Briefly discuss benefits/limitations, (4) Discuss Future Work
- Contents
- A thesis is not a textbook: write solely contents concerning the activities.
- For instance: if the thesis concerns BI/OLAP and the implementation is ROLAP-based, it is fine to mention MOLAP and HOLAP for a quick comparison, but only ROLAP should be discussed in-depth.
- It is worthless and ethically questionable copying and pasting text from books.
- Do NOT use text generated by bots, large language models, and similar tools. Theses are meant to provide evidence that the student can produce a scientific contribution, the capability organize contents in written and oral form is relevant and part of the evaluation.
- Avoid long code snippets
- A thesis is not a textbook: write solely contents concerning the activities.
- Language
- Avoid whenever possible subjective, superficial, and informal comments that are not supported by a citation to a paper or very clear evidence. Example adjectives that should be avoided without citation or evidence: trivial, simple, easy, hard, very, too much, little, short, long, impossible, optimal.
- Be concise!
- bad: the idea of trajectory lies into the ability to capture subsequent moves of an object
- good: a trajectory can be formally defined as "quoted text" [citation to a paper]
- Do not abuse boldface and italic
- Use
monospace
for code
- Words in other languages
- If there is a need for words in languages other than the one in the document (e.g., Italian words in an English-written thesis, or English words in an Italian-written thesis), prefer wordings that maximize the usage of the document language. For instance, if the thesis is written in Italian, "Mining di traiettorie" is preferable to "Trajectory mining"
- Citations
- Follow this guide
- TL; DR:
- Don't copy long texts, summarize them
- If something is quoted verbatim, make it explicit by using quotes:
- Example: "Aggiungere inglesismi random non improva le vostre skills" 1
- Figures:
- Figures taken from another source (or is a derived work of another source) the source must be cited
- Prefer vectorial images (SVG, PDF, EPS...) over raster (PNG, JPEG, Bitmaps)
- Note: including a raster image into a vectorial format supporting embedding is useless
- Punctuation, lists, coherence
- Titles should not have full stops
- Watch your accents: don't write apostrophes in place of accents:
E'
is not the same ofÈ
. On Linux, with a layout supportingè
(e.g., Italian) use CAPS LOCK+è. On Windows, use alt followed by 0200 - In LaTeX, quotes are done by opening with double backticks and closing with double single quotes ``like this''. Do not use double quotes ("like this"). Backticks are made on Linux with alt gr+' with the Italian keyboard layout; on Windows, alt followed by 96
- Bullet points end in
;
or.
, depending on whether they are part of the same sentence or not. The initial letter in a bullet point must be capitalized if the previous bullet point terminates with.
.
- Reference guide for Computer Science and Engineering at UniBo
-
DON'T reuse material without citing the source
-
DON'T write personal stuff in your dissertation (even in the Conclusion)
- Your thesis is a technical document
- No reader would care about whether e.g. you got limited results because you had little time to work on your project, or because of your limited background on something.
-
DON'T write using informal language
- E.g., avoid contractions like
don't
,We're
, ...
- E.g., avoid contractions like
-
DO check whether you have the rights to reuse material from some source/author
-
DO consider consulting a writing style guide
- Q: When to start writing?
- As soon as you have stable results to report.
- You may start early writing the background.
- Wait for results to be stable to write the bulk of your thesis (as the actual implementation is usually the most costly and time-consuming part of the job).
- Write introduction/abstract/conclusion at last.
- Q: What tool to actually write the thesis?
- Use LaTeX
- Q: How to check for typos and grammatical issues?
- NOTE: it is not a responsibility of the (co-)supervisor to find or fix these
- Consider using tools like LanguageTool for spell and grammar checking
- Clone or (better) fork this repository
- Open
thesis-main.tex
with a LaTeX editor (e.g.,Kyle
,TeXMaker
,TeX Studio
, or VS Code with the LaTeX extension) - Compile
thesis-main.tex
withbibtex
andpdflatex
to produce the PDF of your thesis - Start writing your thesis, and commit/push often
See these video lectures by Ciatto.
What is a thesis and what to expect about it (see also this]
- IN GENERAL: "A thesis identifies a question on a topic that relates to your degree program, which you then have to answer with a sensible argument, using credible research and findings."
- Kinds of thesis in Engineering Degrees
- Project thesis: the thesis documents an engineering project
- Research thesis: a coherent and cohesive narrative describing a body of scholarly activity that adds to knowledge
- WHAT IS A THESIS FOR YOU: A thesis is a good chance to exhibit your technical skills (competence in the matter of study) and soft skills (e.g., autonomy, proactiveness, creativity) on a problem that you like and want to address in a field/area you want to explore
- The student is responsible for
- the content of the thesis and its final quality
- ensuring bureaucratic stuff is carried out by the deadlines
- The (co-)supervisor is responsible for
- providing guidance and support
- Note: your thesis is yours.
- Your supervisor can help you with that, but he/she is not a proofreader. So, your thesis is not something that "has to be checked/corrected" by someone.
- However, ask for advice, especially for the most important issues (e.g., goals, dissertation structure), early.
- How often should I contact my thesis (co-)supervisor, for what, and how?
- As often as agreed with the (co-)supervisor.
- A typical frequency is once every one or two weeks, or as often as there are significant increments.
- You should contact your (co-)supervisor for "important" stuff and "strategic" decisions, rather than implementation details.
- If you have minor questions and doubts, wait enough time to have a batch of these, and pose all the questions, numbered, in a single e-mail.
- As often as agreed with the (co-)supervisor.
- What if I have a blocking situation that prevents progress?
- If it is a technical issue, spend some time exploring for solutions. If you can't find a solution, contact your (co-)supervisor, with a detailed mail explaining the problem, your tentative solutions, etc.
See also the PhD thesis template by Ciatto.
Infos on structuring PhD theses:
- http://www0.cs.ucl.ac.uk/staff/c.clack/phd.html
- http://people.kmi.open.ac.uk/stefan/thesis-writing.pdf
- Introduction
- Motivation
- RW
- Experiments
- Conclusions