Reader Management:

Give me double spaced drafts so that I have room to write (and my handwriting doesn't become even more illegible because of space constraints!).

Don't ever ignore what your readers say! But feel free to come talk to me (or them) if you don't agree. I can probably explain what I was trying to fix and we can come up with a 3rd alternative that we both like.

A good trick is to mark off each change as you make it and circle those that you don't have time to deal with or that you want to discuss in a new color of ink.

Don't give you paper to many readers at once or they will waste their time marking the same things. Marshall your naive readers carefully--they are valuable and they are only naive once.

Always spell check your paper before giving a copy to a reader. You don't want them to waste their precious time finding errors that a machine could have found.

Organization:

A paper usually goes through the material three times:

Each time that you mention a topic, it should have significantly more information that the previous time that it was mentioned. If not, then your paper will be redundant and frustrate your reader.

Mom (a retired, professional editor) says that computer science people use section headers in lieu of good organization. That's harsh but there is some truth in it. Don't overuse section headers. Two levels of depth is almost always enough in a paper (three in a thesis).

Don't have two section headers in a row:
1. Background
1.1 Animation

There should be some glue in there so the reader knows where he/she is going.

Section headers should be pretty general and shouldn't break to the next line. The first sentence of the section can contain the details, they don't have to go in the section header.

Awkward Sentences:

The best trick that I know for catching these is to read your sentences aloud. If you can't read it aloud without tripping, your reader will certainly not be able to get through it.

Don't use the same word twice in a sentence: "... create an interface for creating ..." I think that the brain puts a word "on the tip of your tongue" when you have just used it and that makes this problem very hard to fix.

But calling your widget three different things just for the sake of variety will confuse your reader so don't do that either.

Anthropomorphizing your software/system/robot:

Be careful about saying: "We randomized the list" when you really mean, "The computer randomized the list." This rule is tricky because it can be reptitive and can lead to passive voice ("Then the list was randomized") but you must be clear about what the computer did and what you did. I had originally suggested using "the system did x" but "system" is considered by some to be a loaded word that may imply that there is nothing new--just an assembling of existing techniques. Other choices are method, algorithm, or approach.

Grammar and Punctuation:

Punctuate equations [this rule is definitely debatable, but I think that it helps the reader].

Use "since" only where it refers to time, use "because" otherwise. This rule is falling out of fashion but I think that it still stands.

Don't hyphenate adjective pairs if the first ends in "ly":

"This" should always be followed by a noun:

No contractions (doesn't, isn't etc.) in formal writing.

Some people think that "so" is too informal for technical writing. Use sparingly.

Use a comma for a list longer than two:

[This one is a matter of style, not a rule, but I think that it leads to easier to read text most of the time.]

No colon after forms of the verb to be

Quotes go on the outside of punctuation--pretty much always.

Numbers less than ten should be written out unless they are mixed in with a lot of larger numbers:

e.g. not eg. Both words are abbreviations and need periods. When using latex, you need to write this as "e.\ g.\ cats and dogs" to prevent latex from putting the larger space that follows the period in a sentence after the periods of your abbreviations.

Invented words and abbreviations:

Use invented words and system names very sparingly. You're asking your reader to remember something when you invent a word and they can't remember very many things at once. Making them remember invented words might cause them to forget the point of the paper.

Abbreviate only if if the phrase occurs a lot or is very common (3D for example).

Always define abbreviations the first time that they are used. Even if they are as common as three-dimensional (3D).

Figures:

Capitalize Figure 1 and Equation 1 (or Fig. and Eq.). Use Equation or Eq. not just (5). This one is a matter of style but I think that Figure 1 is preferable. Jon Bentley once said that "Fig." was two characters shorter at the cost of great ugliness.

Figures should go at top or bottom of page (using [tb] in latex). Figure should almost never go in the middle of a column. Word does this very badly so don't let it ruin your text.

Force latex to join your figure numbers to the word "Figure" without an intervening line break:

References:

Sentences should read correctly without the references.

Put the citations at the end of the sentence unless it is ambiguous.

"et al." not "et. al." or "et. al" Only "al" is an abbreviation. I prefer "and colleagues" to et al.

"work" is too informal -- try "research" instead.