CCL | Software | Download | Manuals | Forum | Papers
CCL Home


Software Community Operations

Writing Process: From Idea to Final Submission

Step 0: Start Two Months in Advance

Writing a quality paper takes a significant amount of time. It’s not only a matter of getting the words on paper, but also a matter of working and re-working your idea until all of the imperfections are worked out.

Don’t wait until all of your programming and experimental work is done. Start the process of writing at least two months before the paper deadline. You can get the writing process started concurrently with your experimental work.

Step 1: Construct the Argument

Before writing in detail, first work out an argument that summarizes the paper in bullet points. Write out a sentence or two that that addresses each of the following issues briefly:

  • Problem: What is the problem being solved, and why should the reader care?
  • Key Idea: What is your key idea for solving that problem? What makes your idea elegant, clever, or otherwise appealing?
  • Related Work: Are there other approaches to solving this problem? How do they compare to yours? Briefly note 10-20 papers on closely related topics.
  • Details: What are the further details needed to turn your key idea into a working solution?
  • Evaluation: How do you evaluate the quality of your solution? Think carefully about the measurements that make sense: do you observe time of execution, or count operations in the system, or resources consumed, or something else?
  • Results: What is the significance of the results that you measured?

Write out your complete argument, and evaluate it critically before going any further. Are you really sure that your proposed solution addresses the stated problem? Does your proposed evaluation really measure the right things? Is your key idea (or evaluation) truly novel, relative to the related work? You may need to adjust one or the other until they match in scope. Practice stating your argument to multiple people (including your advisor) until it is bulletproof.

Step 2: Write the Outline

Once the argument is solid, then you are ready to start writing an outline. Write out the sections of the paper first, and then write one bullet point for each paragraph and the key idea in that paragraph. Include bullet points for figure and graph and what it is intended to convey.

Be ruthlessly consistent: Each section in the paper should correspond to a bullet point in your argument, in that order. Each paragraph in the introduction should correspond to a bullet point in your argument, in that order. Each sentence in your abstract should correspond to a bullet point in your argument, in that order.

Now go back to your advisor and go over the outline together to make sure it makes sense. If you find a problem with your argument at this point, then you need to fix it in the abstract and the introduction and the section structure, so that everything is consistent.

Step 3: Write the First Draft

Once the outline is complete and sound, then you can proceed to writing. Turn each bullet point in the outline into a full paragraph, each one five sentences or so. Don’t get stuck trying to express any single paragraph – just put some words onto the paper and more on to the next paragraph. You can come back and edit later.

Don’t go overboard using sub-sections and sub-subsections. The purpose and focus of each paragraph should be very clear from its topic sentence. Let the body of your text speak for itself.

Stop here and get feedback on your draft.

Step 4: Construct the Figures and Graphs

Great figures are critical to a paper – every paper needs detailed, explanatory figures that explain in detail how your system works. This takes time and attention to get right, just as your writing does. First start to draft a figure on paper or the whiteboard – this allows you to try different shapes and arrangements quickly before sitting down at the computer. Think about the aspect ratio of the figure: will it be roughly square, occupying a single column, or a double-wide figure stretching across two columns? Consider where you would like the reader’s attention to start, and how it will flow across the figure. Write out a key that explains the meaning of different shapes, line types, and so forth. Once you have something you like, then you can draft it using Google Drawings (or whatever tool you like) and then save the figure into the paper repository.

To present numeric data, get your raw data into a simple tabular form, and then plot it using gnuplot. Yes, use gnuplot: not Excel or Mathematica or Matlab or whatever. The big advantage of gnuplot is that it is simple, fast, and easy to script as part of an automatic makefile. This allows you to rapidly iterate on the details of a graph without starting over from scratch. Look at a variety of online examples to get a sense of the different kinds of displays that gnuplot can show. (

Some guidelines for both figures and graphs:

  • Output the figure or graph into a vector format like svg or eps or pdf. This ensures that the figure/graph will reproduce with high quality at different resolutions in a compact way.
  • Be consistent across different figures and graphs. If you use squares and circles to represent two kinds of objects in one figure, then use exactly the same representation in the next one.

Stop here and get feedback on your figures and graphs.

Step 5: Editing and Proofreading

With your outline complete and all of your figures and graphs done, then you are about 50% done with your paper. There is still a lot of work to do to edit it to perfection. Start by printing it out on paper (yes, really, on paper) because that makes it easier to visualize the “big picture” of the paper. Read it from beginning to end, and mark up problem spots with a pen. After reading the whole paper, then go back and edit it on the computer again.

  • Be aggressive about consistency. If you introduce a term at the beginning of the paper, use it consistently throughout. (e.g. don’t start talking about tasks and then switch to talking about jobs.) If you state that your system has three parts, then always present those parts with the same order and number.
  • Every paragraph should be about a single idea. The first sentence in every paragraph should be a topic sentence that introduces or summarizes the paragraph. You should be able to summarize the paper by simply reading the first sentence of each paragraph.
  • Eliminate unnecessary words and sentences. Consider a sentence and see if it would still mean the same thing if you remove a word. If so, do it.
  • Distribute figures to appropriate points in the paper. Generally, most figures should be at the top of the page, and close to the place where they are discussed in the text.
  • Eliminate “orphans” and “widows” which are individual words left hanging on the end of a line (or the top of a page) that result in the visual disruption of the page.
  • Consider transitions between sections. The concluding thoughts of the last paragraph of one section should lead naturally into the focus of the next section.
  • Ask other people to read the paper. Instead of just pointing out types, ask them to highlight bigger picture issues, such as the clarify of the “story” and the readability of the figures.
Now revise, revise, revise. Expect to print out and edit your paper at least twenty times (yes, really twenty times) in the final cycle of editing before submitting.