Skip to content

Working on the thesis

isolin edited this page Nov 13, 2014 · 3 revisions

Topic overview

First you should get familiar with your topic. Search around on google, look for similar stuff. Search for demos, examples and tutorials. It might be useful to download trials of the main industrial software packages (e.g. CityEngine) and get familiar with the state of the art.

For a bachelor's thesis there is only a little scientific contribution required. You should mainly focus on adapting or comparing existing visualization or rendering techniques. In case you develop your own, it will be a nice bonus. Remember that your thesis must be a result of a scientific expertise.

Scientific writing

You should collect references to scientific papers and books relevant to your topic from the very beginning. If you base your work on examples from the internet, you need to find the scientific theory being their basis. References to internet pages are not considered to be peer reviewed, therefore such citations can be used only as a minor supplemental.

Collect the citations in a .bib file (use JabRef for management) and write the thesis using LaTeX. For win the best is to use MiKTeX with TeXMaker (textual) or LyX (visual).

Programming

You topic is part of a larger project. The good news is that in connection with the work contributed by others you can easier achieve outstanding results. The bad news is that there will be many people looking at and working with your code.

Comments

Therefore you have to keep it clean and readable with a lot of comments. Please be inspired by the comments in the AbstractRenderer and in the BasicThreeRenderer.

Expressiveness

You should use simple variable names only in special cases, e.g. the counter i in a for loop. Otherwise the variable and function names should describe the semantics of the object. Please also use consistent CamelCase and correct indentation.

Debugging

Considering the high popularity of JavaScript, its debugging is in particular difficult. There are several options

  • alert("A popup window appears. Please to avoid.")
  • console.log("Great for reporting code flow and minor problems.")
  • throw "Very good for reporting fatal errors.";

Problems solving

In case you get stuck at some point and neither FF nor CHR debugger can give you any hint, first try to search at google. In particular look for answers at StackOverflow. In case you are using Three.js, have a look at their examples. Try to get more debugging information by placing console.log calls, setting breakpoints and stepping through the code.

Commits

The only way to run your code is to make a commit or directly edit the repository. Please use the dev branch so that you do not affect the others which may link your files from the master. For each pull to the master, always include the description of changes. The dev commits should also contain very short annotations.

Time Management

Please hold the agreed work plan. The most important milestone is the review deadline before submitting the thesis. If your supervisor is not able to give you enough feedback before submitting it, you risk that your work will be negatively graded. Unfortunately it happens often, even to excellent students. The main problem is bad time management and/or lack of communication with the supervisor.

We will meet in person every 4 weeks. The period can be reduced by a half if necessary. It is very important to be prepared, to show progress and to discuss questions which were not possible to be answered by email. Otherwise it is just a waste of time for both you and your supervisor.