Researcher's Golden Rule no. 2

These rules are good research conventions that I’ve adopted based on both their intuitive appeal and the observed consequences of not applying them. The first is “it always needs more study”, which refers both to the perfectionism that can keep people from ever accomplishing anything as well as the convention of stating this in papers. I only intended one, but then I realized that there are a number of unstated rules that lead to good research productivity. That said, the second can be given as follows:

“Don’t be sloppy.”

The methodology / algorithm should be clean and easy to understand. So should the way the data is formatted. Make sure that the function of each file is immediately clear and that the entry point to running the experiments is easy to spot (something like run_classification_experiments.m is a good idea). Program generically, as your dataset and analysis will probably change at some point. Don’t program only for yourself, because at some point, someone else is going to need to run your analysis. That person will not think highly of you if you make his life difficult. Don’t program unless you know how to program well; it is a vital skill in computer science research and you should be as proficient in it as a professional programmer would be.

I spent the majority of this weekend wrapping data up from over a thousand different .hdr / .img files into one matlab “data” structure. The fields of the structure correspond to properties of the data. For example:

data.Source //”DVD 1″
data.task //”Left Squeeze”
data.subject //”John Doe”
data.volume //Raw image data.
data.foregroundIndices //Indices into volume that represent foreground voxels.
data.wavelets //Wavelet descriptors of the volume.

etc.

This is neat. Any researcher just joining the project could easily follow what is going on in this structure.

Leave a Reply

Your email address will not be published. Required fields are marked *