Writing and Typesetting Theses and Papers
I have to read many theses, term papers, and draft publications each year. Often I see multiple versions of each. A large amount of my reading energy is spent on reading badly written and typeset material. When I have to correct typos, grammatical mistakes, and ugly typesetting, I cannot think about the research ideas in your paper. “Just ignore the bad writing for now” doesn’t work for me. Of course, the occasional typo can slip through, but starting today I will return papers that exceed my threshold of distraction. On this page I will collect pointers to useful resources on writing, and vent on some of my petty annoyances, so that you know what to avoid when sending me a paper.
Resources
Classics about writing
- Style: The Basics of Clarity and Grace by Joseph M. Williams and Joseph Bizup
- The Elements of Style by William Strunk Jr. (Bol.com)
The writing course for PhD students at TU Delft uses the following book:
- Getting it across by Sören Johnson. Techne Press, 2014.
Writing research papers in computer science
- How to write a great research paper by Simon Peyton Jones (includes a video), another version, transcript
- How To Write Papers So People Can Read Them by Derek Dreyer
- Tips and Tricks for Communication in Computer Science: Reviews, Papers and Talks by Olivier Danvy
- Writing a technical paper by Michael Ernst
- Some Research Paper Writing Recommendations by Arie van Deursen
- Writing Reports by Peter Sestoft
- How to get a paper accepted at OOPSLA by Kent Beck
- Teach Technical Writing in Two Hours per Week by Norman Ramsey
- Writing a (Computer Science) Paper by Jakob E. Bardram
- My top ten presentation issues in other’s papers by Andreas Zeller
Resources for writing a dissertation / doing a PhD
- The Programming Language Mentoring Workshops at SIGPLAN conferences (SPLASH, POPL, PLDI, and ICFP). Look for the PLMW track; e.g. SPLASH 2019
- TU Delft Promotie Reglement (PDF)
- Dissertation advice by Olin Shivers
- Thoughts on the Structure of CS Dissertations by Spencer Rugaber
General research advice
- Various research advice by Jeff Offutt (links at the bottom of the page)
- Advice to a student by Anthony Finkelstein
Some writing rants
- How to edit your own writing (New York Times)
- Zombie Nouns by Helen Sword
- Those irritating verbs-as-nouns by Henry Hitchings
- The alot is better than you at everything
- Writing 10K words per day
See also my collection of resources on reviewing papers.
Literature
Research requires literature study. In the SLDE group, we use http://researchr.org for collecting references to literature in bibliographies. Using researchr you can build on the bibliographies collected by previous efforts of the SLDE group and you can share the results of your efforts with your peers and successors.
Citation
Not like this
- citations are not nouns: “In \cite{FooBar89} it is shown …”
- citations are not part of words: “The Baz tool\cite{FooBar89} …”
But like this
- “As shown by Foo and Bar \cite{FooBar89}, …”
- “The Baz tool \cite{FooBar89} …”
Or use author-year style
- “Foo and Bar (1989) showed that …”
Draft
- When sending someone a draft document PDF, give the file a useful name that identifies the project (and will be distinct in the recipient’s context), and include at least a date in the format YYYY-MM-DD so that if one receives multiple drafts, it easy to identify the latest one.
Typesetting
-
Include page numbers, when you send a paper for reviewing, either formally to a conference or journal, or informal to a friend or supervisor. That makes their job of referring to your paper a lot easier. Just ignore the official style when composing a draft.
-
Don’t get fancy and go overboard with fonts and other clever stuff; spend your energy on writing instead.
-
Use LaTeX to typeset your document. It is very likely that your document will be too ugly to read otherwise, since you don’t understand typesetting.
-
Use standard LaTeX document styles. It is very likely that your document will be too ugly to read if you try to make up your own LaTeX style, since you don’t understand typesetting
- For papers: use the style required by the conference or journal you are writing for.
- For master’s theses: use the PL master’s thesis style
- For PhD theses: no style is formally required, but Bravenboer’s thesis style can save you a lot of work
- For term papers: use the Springer LNCS style
-
Treat your LaTeX document like you treat programs: the source code should be accessible (readable) like the source of your programs should be accessible. Thus, use proper layout to clarify the structure of the document.
-
Don’t use typewriter (courier) for the body text of a document.
-
Don’t use a body text font (such as Times or cmr) for code. Preferably use a proportional font (e.g. some typewritter font), which gives neat alignment and indentation. (Using math for typesetting code, as is done in literate Haskell for example, is not for me. I overdosed on that in my PhD thesis.)
-
Capitalize the words in section headers
-
Paragraphs should start with an indentation. In LaTeX paragraphs should be separated by a blank line, not by a line break (
\\
) -
balanced sections; not too short or too long; all sections should be comparable in length; same for subsections, paragraphs
-
don’t overdo nesting
-
Use LaTeX’s section hierarchy: section, subsection, paragraph. More levels of nesting are probably a bad sign
-
A 50+ page thesis should have a table of contents, a paper of 20 pages or less, should not.
Writing
-
There is no excuse not to use a spellchecker.
-
Double negations are probably not a good idea.
-
Don’t use contractions. They’re just not part of academic writing.
-
Avoid parentheses (If a remark is not relevant, why include it at all?)
-
Like vs Such As: usually you should use ‘such as’
Common Errors
- A lot of -> many
- Therefor -> Therefore
- there are