This is a mobile version, full one is here.

Yegor Bugayenko
6 February 2024

Research Flow

Say, you are a student, and I’m your teacher. Your task is to conduct an experiment or a study and then write a research paper about it. You can do it on your own and then present me with the results in the end. Sometimes it may work, but most probably it won’t. I will have many comments, suggestions, and plain simple disagreements with your research questions, results, or conclusions. Just like in software engineering, the Waterfall approach is not an effective one. Instead, an incremental and iterative workflow may yield way better results: you take a small step forward, we discuss it, you rewrite, we agree, and you take the next step. The ultimate objective is to write a paper that will be published in a good journal or presented at a decent conference. Well, yes, a passing grade is also an objective.

Since the goal is a research paper, your first step is to create a skeleton of it in LaTeX. If you don’t know LaTeX yet, read LaTeX: A Document Preparation System by Leslie Lamport (just 242 pages). If you think you already know LaTeX, read this short list of its best practices and Writing for Computer Science by Justin Zobel (just 284 pages).

Now, create a document in Overleaf, and share a link with me so that I can also edit the project. Make your skeleton look like this (you should also create an empty main.bib file too):

\documentclass[sigplan,nonacm,anonymous,review]{acmart}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\title{My article}
\author{John Doe}
\orcid{0000-0001-0000-0000}
\email{your email}
\affiliation{\institution{University}\city{City}\country{Country}}
\begin{abstract}
This paper is about something new.
\end{abstract}
\begin{document}
\maketitle
\section{Introduction}
Hello, world!
\bibliographystyle{ACM-Reference-Format}
\bibliography{main}
\end{document}

Now, you are ready to begin your research incrementally, and I will review each step in the following order:

  1. Research Questions
  2. Research Method — how to?
  3. Preliminary Experiments
  4. Related Work — how to?
  5. Results — how to?
  6. Limitations
  7. Discussion — how to?
  8. Conclusion
  9. Introduction
  10. Abstract
  11. Title

Each step produces a few new paragraphs in the LaTeX document. In this blog post, you can find recommendations for each of the steps. I strongly advise against moving on to the next step unless the previous one is discussed and approved. Doing so may result in greater frustration on your part when you’ve written almost the entire paper, and we both realize that the whole piece must be rewritten, and experiments must be redone.

Before we start, please put a date on each of the steps mentioned above and send me the entire work plan. It’s better to meet every milestone as a disciplined student; otherwise, the risk of failure will be larger.

I believe that you, the reader of this blog post, are an honest and motivated student who not only cares about achieving a passing grade but also values contributing to computer science. However, not every student fits this description. Surprisingly, some may lack motivation or diligence. To prioritize the enthusiastic and dedicated students who require most of my attention, I may halt a research project when I discern a lack of genuine commitment. The use of ChatGPT, plagiarism, and negligence may lead to an unfavorable assessment of your work. I strongly advise avoiding them.