Tips for Writing Technical Papers
As a running (fictitious!) example, suppose you’ve designed and run experiments with a new algorithm for external multipass merge-sort. Your algorithm reduces the complexity from O(n log n ) to O(n ), under the premise that it’s acceptable to have some bounded “unsortedness” in the result. You plan to write up the results for submission to a major conference.
Note. This example was used throughout the live presentation but I haven’t followed through much in these notes. Thus, the notes include several exercises for the reader.
Titles can be long and descriptive:
- Linear-Time External Multipass Sorting with Approximation Guarantees
or short and sweet:
- Approximate External Sort
Here’s a middle-of-the-road length, plus a cute name that sticks in people’s minds:
- Floosh: A Linear-Time Algorithm for Approximate External Sort
State the problem, your approach and solution, and the main contributions of the paper. Include little if any background and motivation. Be factual but comprehensive. The material in the abstract should not be repeated later word for word in the paper.
(Exercise: Write an abstract for the multiway sort example.)
The Introduction is crucially important. By the time a referee has finished the Introduction, he’s probably made an initial decision about whether to accept or reject the paper — he’ll read the rest of the paper looking for evidence to support his decision. A casual reader will continue on if the Introduction captivated him, and will set the paper aside otherwise. Again, the Introduction is crucially important.
Here is the Stanford InfoLab ‘s patented five-point structure for Introductions.
Unless there’s a good argument against it, the Introduction should consist of five paragraphs answering the following five questions:
- What is the problem?
- Why is it interesting and important?
- Why is it hard? (E.g. why do naive approaches fail?)
- Why hasn’t it been solved before? (Or, what’s wrong with previous proposed solutions? How does mine differ?)
- What are the key components of my approach and results? Also include any specific limitations.
(Exercise: Answer these questions for the multiway sort example.)
Then have a final paragraph or subsection: “Summary of Contributions”. It should list the major contributions in bullet form, mentioning in which sections they can be found. This material doubles as an outline of the rest of the paper, saving space and eliminating redundancy.
(Exercise: Write the bullet list for the multiway sort example.)
The perennial question: Should related work be covered near the beginning of the paper or near the end?
- Beginning. if it can be short yet detailed enough, or if it’s critical to take a strong defensive stance about previous work right away. In this case Related Work can be either a subsection at the end of the Introduction, or its own Section 2.

Guideline #1: A clear new important technical contribution should have been articulated by the time the reader finishes page 3 (i.e. a quarter of the way through the paper).
Guideline #2: Every section of the paper should tell a story. (Don’t, however, fall into the common trap of telling the entire story of how you arrived at your results. Just tell the story of the results themselves.) The story should be linear, keeping the reader engaged at every step and looking forward to the next step. There should be no significant interruptions — those can go in the Appendix; see below.
Aside from these guidelines, which apply to every paper, the structure of the body varies a lot depending on content. Important components are:
- Running Example: When possible, use a running example throughout the paper. It can be introduced either as a subsection at the end of the Introduction, or its own Section 2 or 3 (depending on Related Work).
We could have an entire treatise on this topic alone and I am surely not the expert. Here are some random thoughts:
- Many conferences expect experiments.
- Pure running time
- Sensitivity to important parameters
- Scalability in various aspects: data size, problem complexity.
- Others?
- Absolute performance (i.e. it’s acceptable/usable)
- Relative performance to naive approaches
- Relative performance to previous approaches
- Relative performance among different proposed approaches
- Others?
In general a short summarizing paragraph will do, and under no circumstances should the paragraph simply repeat material from the Abstract or Introduction. In some cases it’s possible to now make the original claims more concrete, e.g. by referring to quantitative performance results.
This material is important — part of the value of a paper is showing how the work sets new research directions. I like bullet lists here. (Actually I like them in general.) A couple of things to keep in mind:
- If you’re actively engaged in follow-up work, say so. E.g. “We are currently extending the algorithm to. blah blah, and preliminary results are encouraging.” This statement serves to mark your territory.
Don’t forget them or you’ll have people with hurt feelings. Acknowledge anyone who contributed in any way: through discussions, feedback on drafts, implementation, etc. If in doubt about whether to include someone, include them.
Spend the effort to make all citations complete and consistent. Do not just copy random inconsistent BibTex (or other) entries from the web and call it a day. Check over your final bibliography carefully and make sure every entry looks right.
Appendices should contain detailed proofs and algorithms only. Appendices can be crucial for overlength papers, but are still useful otherwise. Think of appendices as random-access substantiation of underlying gory details. As a rule of thumb:
- Appendices should not contain any material necessary for understanding the contributions of the paper.
- Appendices should contain all material that most readers would not be interested in.
In general everyone writing papers is strongly encouraged to read the short and very useful The Elements of Style by Strunk and White. Here’s a random list of pet peeves.
- Acceptable: We shall number the phases 1, 3, 5, 7, etc.
- Unacceptable: We measure performance factors such as volatility, scalability, etc.
(Exercise: The above rule is violated at least once in this document. Find the violations.)
(Exercise: The above rule is violated at least once in this document. Find the violations.)
(Exercise: The above rule is violated at least once in this document. Find the violations.)
- The algorithms that are easy to implement all run in linear time.
- The algorithms, which are easy to implement, all run in linear time.
- Always run a spelling checker on your final paper, no excuses.