Research Project and Thesis

From Computer Science Department
Revision as of 15:35, 1 February 2024 by Paba (talk | contribs) (→‎Finding a supervisor)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page provides information about the research project for MSc students in Computer Science (KCS), Software Design (KSD), and Data Science (KDS). The information on how to find a topic and supervisors also applies to projects in general as well as the MSc thesis.

Research Project

The research project is intended as the bridge between your specialization (KCS and KSD) or your electives (KDS) and your thesis. It allows you to focus very narrowly and in great detail on the particular sub-topics of your specialization or elective courses that will then be used in your thesis. The research project is formally a project like any other, however, we do offer some help and guidelines for finding a supervisor. The content of the project is not limited, but is intended to feed into your thesis. The Research Project very often takes the form of a narrowly focused literature study or a prototype implementation or use of particular software tools. In this guide, we will briefly highlight what your tasks are and explain the key aspects of the Research Project.

Registration for the Research Project

The Research Project is mandatory and you register in My Study Activities during the course registration period (1-10 June and 1-10 December).

Later, you must settle a problem statement with your supervisor. We also recommend that you settle a supervision agreement with your supervisor.

Information Meeting and Project Market

The Research Project is a special, mandatory, edition of an ordinary 7.5 ECTS project. In order to start a project, you need (i) a topic and (ii) a supervisor. In order to help you find these, we organize a combined Information Meeting and Project Market event during the first week of the semester.

In the Information Meeting, we will give a brief presentation of the Research Project based on this guide, and answer any and all questions you may have.

This gives you an opportunity to find both (i) topic and (ii) supervisor, or just find a supervisor if you already have a good idea about your topic.

Finding a Topic

The research project is intended to bridge your specialization and your thesis. This means that before embarking on your research project, you need to have some idea of what your thesis is going to be about.

You do not need to know exactly what your thesis will be about, but you need to have some idea within which part of your specialization it will likely be in. Knowing this part will also help you determine which supervisor will work better for you. At the same time, the Research Project allows to experiment with and adjust your thesis topic, and, if necessary, supervisor.

A typical question that we get asked is “What is it that makes a thesis topic good enough?”

Because of the diversity of both Computer Science and ITU Computer Science Department researchers, this question is difficult to answer generally. However, it must have the following properties:

  1. It must be interesting to you.
  2. It must be interesting to your supervisor.
  3. It must use tools, languages, techniques and theories that you find interesting.
  4. It must advance “what we know” in some way, although not necessarily by much.
  5. It must be a topic within Computer Science or applications of Computer Science.

We emphasize that you do not need to know exactly what the topic is going to be, but you need to know what you like to work with, which topics of your specialization you find interesting.

Groups of Students

You are strongly encouraged to write the Research Project (and then your MSc thesis) in a group of two or three students. By experience, students working in groups produce better work and have a better experience than students working alone.

Please note: If your group has students from more than one programme in it, you must inform the heads of the included study programmes (Marco, Luca and/or Patrick) by e-mail.

Finding a supervisor

You must choose your supervisor among a researcher (Professor, Associate Professor,  Assistant  Professor, Postdoc, PhD Fellow, Research Assistant) in the Computer Science department. There can be exceptions that must be approved by your Head of Study Programme.

It is your right as a student to get a supervisor for both the Research Project and the MSc. thesis. However, supervisors are researchers, expert in certain areas. Hence, it is important that you choose a topic for which we actually have people who could supervise you: if there is no expert in our department, we cannot guarantee that you will find a supervisor. Therefore, it is extremely important that you think about the two things (topic and supervisor) at the same time.

Obviously, since your topic is most likely associated to your specialization, you will have to look for a supervisor among the teachers and the research group of such specialization.

Research Group. It is almost never the case that there is only one expert for the area you are interested in. All Advanced courses are taught by more than one person and specializations are associated to a research group. So, please visit the research group page of the person you have in mind, and consider contacting other researchers too.

You can start from the following links:

How to contact researchers. Many supervisors get requests from multiple students, and will not be able to accept them all. In order to make the process fast and efficient, we recommend that you use the following protocol for contacting people in the CS department:

  • Contact people using email. Make sure you do not write very long emails: show you know what their research expertise is, ask for an appointment, do not spam!
  • If the previous point fails (wait 3 working days), try to go to their office or ask during a class.

Example: E-mail soliciting a supervisor:

From: Patrick Bahr (

To: Marco Carbone (
Subj: Research project and Thesis supervisor

Dear Marco,

I’m looking for a supervisor.

I’m interested in the intersection of distributed systems and it-security, particularly the use of cryptographic primitives for solving consensus problems. I particularly enjoyed your MODIS course and SECURITY II, and would like to do more work along these lines.

Could we meet and discuss?


This is an example of a good mail soliciting a supervisor. The student knows what he/she finds interesting, but does not have a particular idea in mind.

If you do have a particular idea in mind, add at most one paragraph (4 lines) explaining or hinting at the idea. Very likely, your supervisor will be interested in parts of your idea but not necessarily in its entirety, so you have to be ready to negotiate a topic that suits the both of you.

Problem Statement

Once you’ve found a supervisor and agreed informally on a research project topic, you must write a one-page problem statement. Your supervisor must formally agree to this problem statement.

Your problem statement should explain what problem you are solving, why anyone would be interested in that, and roughly how you imagine to go about it. The “why” part is by far the most important.

Your problem statement must be of impeccable quality: it is the first thing the examiners see, and first impressions last.

Usually, a problem statement looks like this:

  • 1-3 paragraphs of context. What is the general setting you are working in?
  • 1 paragraph outlining the specific problem you are interested in.
  • 1-2 paragraphs of state-of-the-art: what is the closest anybody has gotten to solving this problem?
  • 1-3 paragraphs outlining your specific idea for solving this problem.
  • 1 paragraph on method and deliverables: What are you specifically going to do and what will you submit? (Interviews, case study, literature study, informal survey, prototype implementation, explorative programming, proving theorems, constructing algorithms, etc.)

Some written guides:

Supervision Agreement

The supervision agreement is a supplement to the project statement. It is not a requirement to submit a supervision agreement. However we still strongly recommend that you and your supervisor align the expectations for the supervision: how you want to frame the cooperation with your supervisor. Such an alignment is key to making your project process successful.

Project Report

The report is a standard project report. That means that you must follow standard ITU rules.

You submit your project in LearnIT. Please see more information about submitting here.

Oral Exam

You will defend your project work (described in the handed-in report) with an oral exam. The exam is submission of written work with a following oral examination (7-scale; 40-minutes internal exam) . You will be examined by your supervisor(s) and an internal examiner (censor).