Ten Tips for Writing CS Papers, Part 1

As a non-native English speaker I can relate to the challenge of writing concise and clear English. Scientific writing is particularly challenging because the audience is only partially known at the time of writing: at best, the paper will still be read in 10 or 20 years from the time of writing by people from all over the world.

Learning to write papers well takes a long time and is achieved mostly by practice, that is, writing and publishing papers. But to improve your writing at a faster pace you can actively reflect on certain patterns and writing habits you may have.

Below I compiled a short list of some best practices from my own experience and preference, with more following in a second part. This list is by no means exhaustive and has a certain bias towards computer science publications. However, I hope it will serve as an inspiration to improve your writing.

I provide some examples of poor writing from published papers. To avoid offending anyone, I select the examples from my own published papers.

1. Use Simple Language

Concepts and ideas in scientific papers can at times be complex but the writing used to describe them should remain simple. Simple writing has short sentences, a clear logical structure, and uses minimal jargon. Writing papers is not poetry but still requires you to pay attention to the language you use.

Computer science does not seem to have an overly large problem with complex writing, possibly due to a large number of non-native English speakers. Or perhaps there is a strong desire to be understood by the writers; other academic fields are more challenged.

Yet, I have frequently seen non-native English speaking junior authors, perhaps when writing their first paper, who attempt to copy style from their native language. At least for native German speakers (like me) this would often lead to comparatively complex writing in terms of sentence lengths and less than optimal didactics in terms of presenting the abstract before the concrete.

If still in doubt whether using simple language is a good idea, check this Ig-Nobel-prize-winning work: (Oppenheimer, "Consequences of Erudite Vernacular Utilized Irrespective of Necessity: Problems with Using Long Words Needlessly", Applied Cognitive Psychology, 2006).

2. State your Contribution

The key contribution of most published papers falls into exactly one out of the following three categories.

  1. Insight: you have an explanation for something that is already there.
  2. Performance: you can do something better.
  3. Capability: you can do something that could not be done before.

If you know which category your paper falls into this, emphasize this aspect early in the paper, ideally in the abstract. This sets the tone and expectations for the remainder of the paper.

3. See Everything as a Facet on the Contribution

Every scientific paper claims a contribution over previous work. Once you have stated the contribution clearly, the rest of the paper is there just to support the contribution: The introduction motivates the need for your contribution. The related work section differentiates prior work against your claimed contribution. The method section typically provides a description of the contribution. The experiments verifies that your contribution works as advertised. Etcetera.

The point is: the contribution anchors everything else in the paper. If the contribution is clear, every part of the paper should make sense and become a different facet or view onto the contribution.

There are two common ways how this simple structure is violated, leading to a poorly written paper. The first way is to not clearly state the contribution, leaving it ambiguous during the whole paper. In such papers some method may be described, some experiments may be performed, but the higher goal does not emerge. At the end of the paper, the reader may agree with all statements of the paper and still wonder what he should make of it.

The second way to violate the structure is less severe: a long description of another method or work is added to the paper. I have seen this frequently with junior authors who have just learned about a cool method and want to showcase their understanding. Such description may even be interesting to a reader of the paper, but it is orthogonal to the contribution of the paper thus has negative value and is best removed.

4. Consider Using a Page-1 Figure

Consider using an explanatory figure on page one of the paper. This was started in the SIGGRAPH community with the work of Randy Pausch, but has slowly spread to other communities.

The main purpose of a page one figure is to provide a gist of the paper, much like a "visual abstract". It highlights what is important and sets the right expectations. It is also visually engaging and wets the appetite of the reader.

What makes a good page one figure? 1. Simplicity: You need to be able to understand it in 20 seconds or less. 2. Being self-contained: All relevant information should be in the figure or the figure caption. The figure caption should be short.

Many papers benefit form the addition of a page one figure, but there are some exceptions, for example in theory papers it could appear out of place.

5. Avoid the Passive Voice

You can write clear English in both the active and passive voice. A historical note on this is available in this essay on active vs passive voice in scientific writing:

"More than a century ago, scientists typically wrote in an active style that included the first-person pronouns I and we. Beginning in about the 1920s, however, these pronouns became less common as scientists adopted a passive writing style.

Considered to be objective, impersonal, and well suited to science writing, the passive voice became the standard style for medical and scientific journal publications for decades.

...

Nowadays, most medical and scientific style manuals support the active over the passive voice."

The reason for this change is simple: most people find text written in the active voice easier to read and more engaging. Duke university published a guide on scientific writing that contains a long discussion on the active versus passive voice.

In my writing there are very few exceptions were a passive voice may be more appropriate, for example when discussing prior work ("The relationship between iron intake and lifespan of parrots was studied by Miller and Smith.") or when discussing experimental results ("The test error remained small even when the regularization strength was decreased."), but even for these two examples we can find an alternative active formulation ("Miller and Smith studied the relationship between iron intake and lifespan of parrots.") and ("Even when we decreased the regularization strength the test error remained small."). The use of the passive voice in these two exceptions conveys an impersonal attitude that may be justified when discussing the work of others or reporting (as opposed to interpreting) experimental results.

Here is a real example from a ICCV 2007 paper of mine (page 4):

The dual problem has a limited number of variables, but a huge number of constraints. Such a linear program can be solved efficiently by the constraint generation technique: Starting with an empty hypothesis set, the hypothesis whose constraint (6) is violated the most is identified and added iteratively. Each time a hypothesis is added, the optimal solution is updated by solving the restricted dual problem.

I highlight all the passive formulations. Here is a rewrite of the paragraph using only the active voice:

The dual problem has a limited number of variables, but a huge number of constraints. We can solve such a linear program efficiently by the constraint generation technique: Starting with an empty hypothesis set, we identify the hypothesis with the largest constraint violation in (6) and add the hypothesis to the hypothesis set. Each time we add a hypothesis, we also update the optimal solution by solving the restricted dual problem.

I made a few minor changes such as changing the word order and adding the noun ("to the hypothesis set") for added clarity. I hope you agree that the second version is easier to read.

Stay tuned for the second part.

Ten Tips for Writing CS Papers, Part 1的更多相关文章

  1. Ten Tips for Writing CS Papers, Part 2

    Ten Tips for Writing CS Papers, Part 2 This continues the first part on tips to write computer scien ...

  2. Tips for writing a paper

    Tips for writing a paper 1. Tips for Paper Writing 2.• Before you write a paper • When you are writi ...

  3. 写出完美论文的十个技巧10 Tips for Writing the Perfect Paper

    10 Tips for Writing the Perfect Paper Like a gourmet meal or an old master painting, the perfect col ...

  4. 10 Tips for Writing Better Code (阅读理解)

    出发点 http://www.tuicool.com/articles/A7VrE33 阅读中文版本<编写质优代码的十个技巧>,对于我编码十年的经验,也有相同感受, 太多的坑趟过,太多的经 ...

  5. 17 Tips For Writing An Excellent Email Subject Line

    Out of the billions of emails that are sent every day, how can you make sure that yours stands out? ...

  6. 10 Useeful Tips for Writing Effective Bash Scripts in Linux

    1.Always Use Comments in Scripts2.Make a Scripts exit When Fails    Sometimes bash may continue to e ...

  7. (转)A Survival Guide to a PhD

    Andrej Karpathy blog About Hacker's guide to Neural Networks A Survival Guide to a PhD Sep 7, 2016 T ...

  8. (转) A Survival Guide to a PhD

    A Survival Guide to a PhD Sep 7, 2016 This guide is patterned after my “Doing well in your courses”, ...

  9. Practical Go: Real world advice for writing maintainable Go programs

    转自:https://dave.cheney.net/practical-go/presentations/qcon-china.html?from=timeline   1. Guiding pri ...

随机推荐

  1. 什么是json

    http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html http://edu.51cto.com/lesson/id-71123 ...

  2. windows 批处理把所有java源码导入一个txt文件中

    首先在src下搜*.java,把搜到的文件全拷出来放在allsrc目录下, 然后在allsrc目录下建个run.bat,键入以下内容for %%i in (*.java)  do type %%i&g ...

  3. 虚拟现实的三维时态GIS模式研究

  4. C++ 排序、查找的应用

    // order.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "string.h" #includ ...

  5. 淘宝SKU组合查询算法实现

    淘宝SKU组合查询算法实现 2015-11-14 16:18 1140人阅读 评论(0) 收藏 举报  分类: JavaScript(14)    目录(?)[+]   前端有多少事情可以做,能做到多 ...

  6. textfield控制光标开始位置

    //    UIView *paddingView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.wi ...

  7. 浅谈JS事件冒泡

    今天要跟大家谈的是事件冒泡,这个事件呢,也是两面性的,有时候给我们带来bug,有时候优点也很明显.我们就一起来看看它的真面目.  首先看看事件冒泡是什么? 事件冒泡 :当一个元素接收到事件的时候 会把 ...

  8. 收藏所用C#技术类面试、笔试题汇总

    技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...

  9. 【WEB API项目实战干货系列】- 接口文档与在线测试(二)

    上一篇: [WEB API项目实战干货系列]- Web API 2入门(一) 这一篇我们主要介绍如何做API帮助文档,给API的调用人员介绍各个 API的功能, 输入参数,输出参数, 以及在线测试 A ...

  10. 免费的SSL证书,免费为微信小程序搭建https

    StartSSL 也免费提供了一个证书(纯英文) 申请地址:https://www.startssl.com/Account?r=L1ZhbGlkYXRl 阿里云免费提供的证书 https://com ...