Creative Inquiry

Logo

The hub for CUFCTL creative inquiries.

View the Project on GitHub CUFCTL/mlbd

Research

Research is often seen as doing a lot of work that amounts to not a lot of useful results – graduate students working long hours every day, constantly trying to publish papers that nobody will read, and so on. When put this way, research doesn’t sound very enticing. But research, whether in academia or industry, is not about experiments and publications alone. It is about answering hard questions and solving hard problems. You’ve probably done research many times without actually calling it “research”. Even if it wasn’t something novel, like learning how to solve homework problems for a course, it was novel for you. Those problem solving skills that you gain from taking courses are even more necessary when doing research – because with research you can’t just look up the answer in the back of the book.

Research is essentially the application of the scientific method, and the key to doing good research is essentially to stick to the scientific method – identify a research question, create a hypothesis, test your hypothesis with experiments, and so on. But there is more to say about how to continually do good research, as part of a career for example. So we’ll list some of the key stages in research and give some practical advice on how to do each stage well:

When you identify a potential research problem, it’s important to look first at what has already been done. In fact, when researchers publish a paper, they often include a “Future Work” section in which they describe ways to continue from the results they found – they practically give it away! Use these “Future Work” sections to help you define a solid research direction for yourself.

To do a good literature review, you need to know where to look, which means having a decent knowledge of the top conferences and journals for your field. We’ve provided a list further down the page to get you started. This knowledge will also be important later on when you’re trying to publish your own work.

Furthermore, you must be able to read papers efficiently. As it turns out, beginning to end isn’t always the best way to read a paper – you’ll probably just get lost in the details. Instead, try something like this:

  1. Read the abstract
  2. Skim the introduction
  3. Skim the figures in the paper – do they tell a story?
  4. Read the conclusions
  5. Go back and read the remaining sections

In other words, first try to understand what the authors are trying to convey on a high level, so that you can decide whether the paper is both good and relevant, before digging deep. The unfortunate reality is that not all papers are good just because they were published. If you stick to well-known publishers then you should be safe, but the peer-review process is far from perfect, so it is important that you learn how to discern for yourself whether a paper is good or not.

A literature review may seem rather daunting, especially when you’re eager to get to work on your own project. The key thing to remember is that you should always be reading. Once a week, once a day, or however you want to pace yourself, find just one paper that looks to be of interest and just read it! If you like it, save it, and over time you’ll acquire a collection of papers, as well as a solid understanding of the state of your research field. Mendeley is a great tool for doing exactly this – it allows you to store PDFs of papers, and do things like organize papers into folders and highlight important things in a paper.

In many fields, but especially in computer science, your research will likely involve some kind of software and/or hardware implementation. The important tips here are move fast and if you use it, save it.

When you come up with a research question, it’s very important that you be able to answer it – that is, perform experiments in an attempt to answer it – quickly. If you get caught up trying to get code to work or be perfect, you may lose track of the vision that you had at first. Now of course you shouldn’t perform experiments with code that is incorrect, and sometimes you may just have to write a difficult piece of code because it hasn’t been done before. But if it looks like you will need to spend a lot of time to just to write the code you need, make sure that this development time is warranted for the research problem you are trying to tackle. In many many cases, you can find tools and libraries that already have what you need.

As you write more and more code and collect more and more data, it becomes easier to misplace code that you later have to find again or just rewrite. Try to keep your code organized, and even better, use version control. Trust me, you’ll be glad you did. The guiding principle is, if you lost all of your results today, could you reproduce everything? Whatever code you would need to reproduce your results, keep that code! And make sure it still works!

Again, your experiments should simply follow the scientific method: ask a question, design a test that can answer your question one way or the other, and then do the test! It’s not complicated, but if you don’t stop to frame your experiments this way, then you will make it unnecessarily complicated. Your “experiment” may actually be a series of several experiments – all the more important that you state the exact questions that you are trying to answer.

Another important point with experimentation is to always question your assumptions. That is, if you find yourself assuming that something is true but you’re not really certain, just do the experiment! At worst you’ll confirm what you already thought, and at best you’ll be thrust into some exciting new direction by having your prior assumptions refuted. That being said, you don’t have to perform an experiment every time one comes to mind! Just don’t let your assumptions keep you from doing one. In the words of Isaac Asimov:

The most exciting phrase to hear in science, the one that heralds new discoveries, isn’t ‘Eureka!’ but rather ‘hmm….that’s funny.’

For the longest time, the most intimidating part of research in my mind was writing research papers, and I think it was because I didn’t understand that writing a paper is the culmination of all of the previous steps. It would indeed be scary to try to write a paper if you have nothing to say! Or to try to perform an experiment when you don’t have a research question that you’re truly motivated to answer.

So remember that all of the previous steps really do come first, and then the paper will come much more naturally. The key idea here is that you should always be writing! When you think of a potential research question, write it out and you’ll have the beginnings of an abstract. When you do a literature review, list the most relevant papers and their contributions, and you’ll have the base material for the background and related work sections. When you plan an experiment, write out the steps – one of the most important sections of the paper is literally just describing your experimental design! The same is true for your results, write them down when you collect them, write down your thoughts as you go. None of these things are strictly paper writing, they are just writing so you don’t forget. And if you make a habit of these things, the paper will practically write itself.

Of course, what I just described is the ideal, and it’s easier said than done. The reality is that research is messy by it’s very nature. Whatever research question you think you’re trying to answer when you start… it will probably change by the end. You may perform an experiment which yields results that cause you to shift into an entirely new direction, and it will feel like a never-ending cycle at times. This is why it’s so important to write things down as you go, even if your plans change, because recording your thoughts helps you stay on track amidst the chaos. And when you see a good point at which to press pause and report your findings to the world – that’s when you write the paper.

Lastly, some general advice. Find a good mentor, and find good peers. One of the greatest factors in choosing a lab is the people you work with. Your research advisor, and your more experienced peers, should be people who will mentor you and set an example for you to follow. And your peers in general should be people with whom you can bounce around ideas and who will challenge your work. Much of the advice on this page is thanks to my own mentorship by Dr. Melissa Smith, Dr. Alex Feltus. and other fellow graduate students. Research is so often something that lives inside your mind, so don’t go it alone when you don’t have to. Your hypotheses will be more focused, your experiments will be more rigorous, and your research experience on the whole will be so much more fun.

Journals

General

Bioinformatics

High-Performance Computing

Machine Learning

Conferences

Computer Vision

High-Performance Computing

Machine Learning

Reading Digests

Other Helpful Things