Over the years I've supervised many student projects. I've seen some really great work that turned into
first-class research papers, but I've also seen students struggle and even occasionally fail. The projects that
don't go too well often fail because of similar reasons. One of these is a lack of understanding of the
expectations and the workload, an other one is a lack of structure. And while I try to be clear and transparent
with my students, it is helpful to have a written document describing the process and my expectations. This is
Why do a research project?
First, here is a list of wrong reasons to do a research project in visualization:
You want credit for a research-class, and figure doing something like this is less work than a regular
class. It is not. A project is probably more work and you have no way to hide in the masses: I will know how
much time and effort you have put into the project. You need to stick to a schedule and be prepared to
demonstrate progress constantly.
You'd like to graduate with honors and thus have to write a thesis, but are not particularly interested in
research and are not willing to put in a significant amount of work. Don't do this just for the grade, and
be warned that this is not an easy path.
If you find your motivation falls into those categories, my advice is: don't do a research project. You and your
adviser will be frustrated and you will get a bad grade. To contrast that, here is a list of good reasons to do a
research project in visualization:
You'd like to get research experience. If you're considering a PhD program you should definitely try
to do as many research projects as you can. And you should excel at them. Not only will you find out whether
this is the right thing for you, you also build a relationship with an adviser who then can write a good
letter of recommendation for you, which is critical for admissions to PhD programs.
You love to write code. Not every project has to be scientifically novel. If you like to develop
interactive user interfaces using a modern web-stack, we can talk about an implementation-heavy project.
This will be valuable for you because you will experience what it means to build larger and more complex
software than you would in the class. In an implementation-focused project, I might ask you to port or
re-implement an existing technique. This is typically not an option for thesis-oriented projects though,
since they require independent conceptual work.
You'd like to publish a paper. This is related to point #1, but here I'm assuming that you already
know that research is something that interests you. A paper-worthy project is usually significantly larger
in scope than a project under #1, and of course the result has to be novel. I expect a different level of
dedication to the project if this is your goal. Also, transitions between #1 and #3 are possible, depending
on success. You might want to publish a paper to strengthen your grad-school application, or you might just
want to get the experience. You can either take the lead on a paper yourself, or, if I already know you, I
can involve you in a research project in the group.
Visualization is a great area to be in. While these other points could equally apply to any computer
science project, if you work with me you will work on a visualization project. Modern visualization is at
the intersection of human computer interaction, data science, and computer graphics. You will learn to
develop new user interfaces and interaction techniques for cutting edge systems and might get to work with
domain scientists, interesting datasets, etc. You will also have an opportunity to apply machine learning,
statistics and algorithms in visualization. Finally, you'll get to work with the latest web-technology,
which will be a great skill to have on the job marked.
I'm happy to work with students for all of these reasons, but I'm most excited when you want to publish a paper.
Typically, however, students first work with me on #1 or #2 and then continue with another project in the #3
I have two rules that you must meet before I take you on as a project student:
You have to have taken a visualization class and have done well in it. A one on one student-teacher
relationship is not the right framework for getting to grips with the basics of visualization. You should
know the theory and also have practical experience through homeworks and/or final projects. I will ask for
evidence of this if you haven't taken my class.
You know how to write code independently. I unfortunately often don't have time to help you with the
technical details. There are other people in my team that might be able to help out, but they might not be
local and it might take time.
Another rule applies only for paid RA-ships:
I'm not going to pay you as a master's student if I haven't worked with you before. An RA-ship is a
significant financial commitment and I will only occasionally consider this if you have completed a very
successful project with me or have been an outstanding TA in my class. I might make exceptions to this if I
have external funds and need to deliver a project, but then you'll have to still meet the standard project
rules. RA-ships imply that you're working on a project with a clear goal to write a paper.
Don't be discouraged!
These guidelines are here to help you understand what a project entails and what I expect from project students.
That said, it can be a lot of fun and a very rewarding experience. If you read all of this and can imagine doing a
project like that - please reach out - I'll be glad to work with you! Also, check out my guidelines of how a project should be structured.