So long and thanks for all the fish

Some time has passed since our last session. Nevertheless, I want to take the opportunity to write a last post.

We worked on a lot of topics around scientific writing and research, we wrote, we read, we edited. You practised research, writing up, polishing your sentences and paragraphs. In the end, you contributed to a book which I was happy to give you in print in our last session. (By the way, you can find a PDF of our book here.)

You all worked hard on your papers and did a great job editing them according to the reviews. You helped to make the papers of your fellow students better by crafting a review yourself. Thanks for that.

I really enjoyed giving the seminar and working with you. You tremendously contributed to a very relaxed and fun work atmosphere. This gave us the opportunity to ask and answer questions, juggle with ideas, and create fun texts for our writing prompts.

I especially want to thank Norman for his book recommendations he gave in his blog. 🙂 A big thank you goes out again to Josi and Sebastian for their invaluable help with giving feedback to your homework and student project papers.

I hope the tools and techniques I introduced you to will help you with your studies and especially with your master’s thesis.

So long



Recap session 9 – Algorithms, Graphs, Figures, and Tables

image from

image from

Today’s session topic was “Algorithms, Graphs, Figures, and Tables”. You read chapters 10 and 11 in Zobel’s “Writing for Computer Science” in preparation for class.

Today we flipped the classroom such as you had the opportunity to enter the stage in front of the class. Instead giving you a writing prompt I asked you to form 3 groups. Each group was assigned a topic from “Algorithms”, “Graphs and Figures”, and “Tables” and you had some time to recap the aspects you read for each respective topic. Afterwards, you presented the aspects of your group on the whiteboard and we discussed each topic extensively.

This was a little experiment we tried in order to make the discussion a little more lively and it turned out really well. Thanks to everyone for a great session! This was really fun.

So here are some aspects we discussed for each section or chapter, respectively:


  • content
    • show the steps an algorithm takes
    • give information about the environment (input, output, data structures, …)
    • report about the scope of its application
    • report about advantages and limitations
    • demonstrate correctness and performance
  • formal analysis
    • asymptotic cost analysis – consider important variables
    • initialization of data structures might be expensive – you have to point this out
  • presentation
    • pay attention to the level of detail
    • prefer a mathematical notation
    • figures vs. descriptions (doubly-linked)
    • list of steps
    • three modes: pseudocode, prosecode, and literate code

Graphs and Figures

  • use only when needed (not as embellishment of your paper)
  • use appropriate software
  • mind copyright issues when you use a figure from someone else’s paper
  • reduce clutter
  • be consistent in style
  • caption goes below the figure and give enough information such that the reader understands the figure without having read the paper in detail
  • pay attention to the scaling of axes of graphs, sometimes it’s smart to use a logarithmic scaling
  • prefer greys instead of color
  • don’t forget labeling your axes and data points
  • follow CS conventions for elements in figures (i.e. use symbols from UML)
  • figures should be as sparse as possible


  • use tables for showing exact values for a small amount of data
  • unclutter tables – no grids, use whitespace for vertical separation
  • structure tables hiearchical if appropriate
  • no empty cells, use dashes to indicate that there is no data (and you just didn’t forget to write it down)
  • use it to compare alternatives

On a side note, we also talked a little about LaTeX tools and stuff, I will cover this in a separate post. Lena mentioned Edward Tufte’s “Data-to-ink ratio” (aka “remove unnecessary clutter”) as a measure for good diagrams. I found two interesting articles that go a little more into detail on that: “Less Is More – Improving The Data-To-Ink Ratio” and “8 Simple Tips for Better Data Visuals”.

This was our last input session for this semester. Next week’s session is an offer to you to work on your student project papers in the familiar writer’s workshop atmosphere. You can come and just use the time to write in an allocated time slot, ask questions, and get help. Sebastian and I will be there to assist you (or write ourselves). If you decide to work on your paper another time and in another place, that’s fine. You choose your path, young padawans, but choose it wisely.

Be sure to upload your papers BEFORE our session on June 23 so that we can distribute them for reviewing.

We will definitely meet in class on June 23 and write the reviews for your assigned paper.


Describing algorithms is a core task in computer science. It is not as trivial as it might seem as we sometimes just think in code. For reporting and demonstration of the inner works of an algorithm, it is necessary to give explanations on a more abstract level. Use this homework assignment to practise this task.

(from Zobel “Writing for Computer Science”, p. 273)

  1. Choose a simple algorithm and a standard description of it, such as linear search
    in a sorted array. Rewrite the algorithm in prosecode. Repeat the exercise with a
    more interesting algorithm, such as heapsort. Now choose an algorithm with an
    asymptotic cost analysis. Rewrite the algorithm as literate code, incorporating
    the important elements of the analysis into the algorithm’s description.

Recap session 8 – Good style and style specifics

Sheldon-Cooper-High-NFCWe started the session off with a fun writing prompt:

Use the following words in your story: kittens, a half-eaten pizza, telepathy, a radio call-in show, salt crackers, magic, a six-pack of beer, existential angst.

This was really a fun one and it was also fun to hear what you made out of these words. I found this writing prompt somewhere online. If you google it, you will find some more stories from other people for this prompt.

The main part of our session was about good style in scientific writing. In preparation for the topic, you read chapters 6 and 7 in Zobel’s “Writing for Computer Science”. We discussed the aspects and characteristics of good style and came up with this mindmap:


(sorry for the non-optimal quality of the photo).

Both chapters can be seen as a top-down view. While chapter 6 gives an overview of the aspects of good style, chapter 7 dives into detail on these different aspects and suggests some practical approaches. Therefore, it can be used as a future reference to look up whenever you need it.


  1. Read chapters 10 „Algorithms“ and 11 „Graphs, Figures, Tables“ in „Scientific Writing for Computer Science“ in preparation for the next session.
  2. Read the text „Fighting for breath“ in  Tim Skerns „Writing Scientific English“ (p. 50f) and analyze its adherence to the aspects of good style.

[article image: Why BBQ?]

Recap session 7 – Scientific argumentation


Our session started with the writing prompt “Imagine you are someone’s shadow for a day.” Thanks to all of you who read their stories aloud, it was a pleasure as always.

The main part of our seminar was a very interesting discussion on the aspects of Chapter 4 “Hypotheses, Questions, and Evidence” in Zobel’s “Writing for Computer Science”.

We discussed different forms of evidence such as proof, modelling, simulation, and experiments and their applicability and validity in disciplines of computer science.

We also discussed computer science as a science between engineering and natural science.

Thank you all for the active participation in the discussion, this was really fun.

Here is the mindmap from the discussion aspects I made during the session:


Finally, we collected some recommendations for writing regarding scientific argumentation:



An essential aspect of argumentation is logical conclusiveness. Beware of the fallacies:


  1. Read chapters 6 “Good style” and 7 “Style Specifics” in “Writing for Computer Science” as preparation for the next session. Don’t be intimidated by the number of pages, these chapters contain a lot of examples so that there is really not that much content to read.
  2. Apply the Checklist from Zobel p.49 to the research plan of your (future) Master thesis.
    Try to answer all questions. If you feel that a question is inappropriate
    explain shortly why this is the case.
    In case you have no topic for your Master thesis yet, you can use the following paper for this exercise:

    Paul, C., Efficient Graph-Based Document Similarity. In:
    Proceedings of the ESWC 2016,

(article image: wikimedia)

Recap session 6 – Revision techniques and what to do against writer’s block

Yesterday’s session topic was “Revision techniques and what to do against writer’s block”.

After solving the punctuation game homework and a short discussion about fuzzy punctuation rules we started off with a writing prompt. As I had left my prompt cards in my office  we picked up this tweet from @DailyPrompt:

Thank you to those of you who read aloud their fun stories on the making of peanut butter. If you want to re-read, here is my writing prompt text.

We discussed chapters 3 and 13 from Zobel’s “Writing for Computer Science” on Revising and Editing. It became clear, that there is a clear distinction between revision and proofreading. While revision is a crucial  and often repeated part of the writing process itself, proofreading is done mostly at the end to polish your text and finish it for submission or publication.

In my slides, a gave you a  summary of proofreading and revision techniques. Furthermore, we talked about methods how to handle writer’s block. One of those techniques is freewriting which is literally used to write yourself free. The technique stems from creative writing, but it can be applied to scientific writing as well. You write for a particular amount of time and jot down everything that comes to your mind regarding the central topic or term. Anything goes – spelling mistakes, incomplete sentences, funky grammar. Don’t limit yourself and allow yourself to write “rubbish”. Flex your writing muscle,  and you will come to the core and the real thing eventually.

If you want to see how a freewriting text could look like, have  a glimpse at this post over at the bachelor’s course.

Here are some more tips on what to do against writer’s block.

Activating and stimulating your writing muscle by actually performing writing movements with your hands really works. In that context, you might find the study “The pen is mightier than the keyboard” interesting.

One last thing regarding our discussion at the end of class about how to spark creativity: “Coffee vs beer: Which drink makes you more creative?”

Remember: be smart and don’t set your brain on fire. Moderation (in terms of amounts as well as frequency) is key!


  1. Read chapter 4 on “Hypotheses, Questions, and Evidence” in Zobel’s “Writing for Computer Science”. We will discuss that chapter in the next session.
  2. Write an abstract for your student project paper. This is not necessarily the abstract that will be part of your real paper later. The purpose of this exercise is rather to get started with writing for your project paper and to gain an overview on your topic. Write a first version of the abstract and let it rest for a day (or more). Revise and edit this version with the help of the tools and methods you learned in the last session. Post the revised version of the abstract to your blog. Maybe freewriting will help you to get started and you will produce a text that you will turn into a coherent abstract eventually.

[article image: Jonno Witts]

Recap session 5 – Scientific English

Here’s a quick recap of yesterday’s session. First of all, we tried to clarify some open questions regarding the student project. I updated the project page accordingly.

If you haven’t noticed yet, I also linked an example paper there to give you some idea about the structure of such a paper. Nevertheless, the example paper is from the bachelor’s course and has a smaller scope. Your paper should have  a larger scope!

If  you like to have early feedback or reassurance that you are on the right track, feel free to send us (that is your tutor and/or me) your zeroth or first draft.

Yesterday’s  writing prompt was “What would you do now if you wouldn’t have to attend this class?” Again thanks to the brave among you who read their little stories aloud 🙂

We discussed aspects from the introduction in Skern’s “Writing Scientific English” and I showed you some slides and a nice comic to sum things up.

Did you know that Shakespeare contributed fundamentally to the evolution of the English lanuage? There is a nice article at Grammarly about this.

For the remainder of the session, we read a paper and analyzed it for characteristics of good scientific English (No link to the paper since it appeared in a bogus journal).



  1. (Re-)Read the sections in Zobel’s chapter 3 on reviewing (p. 30ff) and chapter 13 on “Editing”. We will discuss these chapters in class next time.
  2. Punctuation Game – Put in the missing punctuation marks (, ; -)
    • We live in the era of Big Data with storage and transmission capacity measured not just in terabytes but in petabytes (where peta- denotes a quadrillion or a thousand trillion). Data collection is constant and even insidious with every click and every “like” stored somewhere for something. This book reminds us that data is anything but “raw” that we shouldn’t think of data as a natural resource but as a cultural one that needs to be generated protected and interpreted. The book’s essays describe eight episodes in the history of data from the predigital to the digital. Together they address such issues as the ways that different kinds of data and different domains of inquiry are mutually defining how data are variously “cooked” in the processes of their collection and use and conflicts over what can or can’t be “reduced” to data. Contributors discuss the intellectual history of data as a concept describe early financial modeling and some unusual sources for astronomical data discover the prehistory of the database in newspaper clippings and index cards and consider contemporary “dataveillance” of our online habits as well as the complexity of scientific data curation.
    • During succession ecosystem development occurs but in the long term absence of catastrophic disturbance a decline phase eventually follows. We studied six long term chronosequences in Australia Sweden Alaska Hawaii and New Zealand for each the decline phase was associated with a reduction in tree basal area and an increase in the substrate nitrogen to phosphorus ratio indicating increasing phosphorus limitation over time. These changes were often associated with reductions in litter decomposition rates phosphorus release from litter and biomass and activity of decomposer microbes. Our findings suggest that the maximal biomass phase reached during succession cannot be maintained in the long term absence of major disturbance and that similar patterns of decline occur in forested ecosystems spanning the tropical temperate and boreal zones.
    • Facebook’s Graph API is an API for accessing objects and connections in Facebook’s social graph. To give some idea of the enormity of the social graph underlying Facebook it was recently announced that Facebook has 901 million users and the social graph consists of many types beyond just users. Until recently the Graph API provided data to applications in only a JSON format. In 2011 an effort was undertaken to provide the same data in a semantically enriched RDF format containing Linked Data URIs. This was achieved by implementing a flexible and robust translation of the JSON output to a Turtle output. This paper describes the associated design decisions the resulting Linked Data for objects in the social graph and known issues.


Recap session 4 – “Research, references, and citation”

After having a sneak peek into the brand new student project page we started the session with the following writing prompt:

A man jumps off the roof of a 40-story building. As he passes the 28th floor he hears his mobile ringing in his pocket. He regrets having jumped. Why?

Thanks for  sharing  your stories in class. It is always exciting how different your stories are for the same writing prompt.

Today’s topic was “Research, references, and citation”. We discussed Chapter 3 from Zobel’s “Writing for Computer Science” and made a  ranked list of reference-worthy publication types. We also talked about how to judge the quality and trustworthiness of a paper. In the exercise, we had a look in one rather negative example of a paper, which was not reference-worthy at all.

I prepared some slides (in German) regarding references and quotes. I didn’t show those in session as we didn’t really need them, but here they are anyway, for reference.

As someone asked for tools for managing literature after class, my recommendation is Mendeley. I use this tool heavily for my day-to-day work. It comes as a browser-based client, but there are also desktop apps for the major OS (Win, Linux, OSX).

I held a workshop for the “Lange Nacht der aufgeschobenen Hausarbeiten” back in March this year where I talked about tools for scientific writing. My slides for that workshop are not really useful as standalone material, but maybe the list of tools might help you. If you have any questions or recommendations for tools, please leave a comment below.

Homework for the next session (May 12 2016)

  1. Read the introduction of Tim Skern’s “Writing Scientific English” (pages 13-33). We will discuss this chapter in the next session.
  2. Find at least 5 important literature references for your student project topic. Write down the full bibliographical record of the reference and argue why you picked it. Keep in mind the quality criteria we discussed in this session.
  3. Prepare a 5-minute whiteboard talk for your student project topic. Try to introduce your topic to someone who has no knowledge about it. This talk should be relaxed and informal – just like you would do if you would explain your topic to a friend. You can use the whiteboard to sketch something. Your tutor will send around a doodle to find a time for a meeting to have this talk. So you will be in a session with your tutor and 5 other students and you will explain your topics to each other. The audience should ask questions if there are things that remain unclear. This exercise should help you jumpstart your project and help you understand the important aspects.

Recap session 2 – Structure of a scientific manuscript

We started with a writing prompt on “You are a travel agent of an interstellar travel agency. A newlywed couple wants to go to Earth for their honeymoon. You try to talk them out of it.” Thanks to Christopher for sharing his Starship Trooper story. You can find my story here.

Today’s session was about the structure of a scientific manuscript. I showed you the fabulous video of Simon Peyton Jones speaking about “How to write a great research paper”:

We talked a little more in detail about the structure of a scientific paper and I showed you some slides.

We finished our session with a short exercise where you had to take some snippets from a real abstract and put them in the correct order. It wasn’t that easy, was it.


(don’t be intimidated by the length of this, it’s really not that much)

assignment 1:
Read the chapter 2 “Getting started” in Justin Zobel’s “Writing for Computer Science”. We will discuss the chapter in the next session, so don’t miss out.

assignment 2:
Find appropriate titles for the following abstracts.

  1. The Internet of Things (IoT) shall be able to incorporate transparently and seamlessly a large number of different and heterogeneous end systems, while providing open access to selected subsets of data for the development of a plethora of digital services. Building a general architecture for the IoT is hence a very complex task, mainly because of the extremely large variety of devices, link layer technologies, and services that may be involved in such a system. In this paper, we focus specifically to an urban IoT system that, while still being quite a broad category, are characterized by their specific application domain. Urban IoTs, in fact, are designed to support the Smart City vision, which aims at exploiting the most advanced communication technologies to support added-value services for the administration of the city and for the citizens. This paper hence provides a comprehensive survey of the enabling technologies, protocols, and architecture for an urban IoT. Furthermore, the paper will present and discuss the technical solutions and best-practice guidelines adopted in the Padova Smart City project, a proof-of-concept deployment of an IoT island in the city of Padova, Italy, performed in collaboration with the city municipality.
  2. String test cases are required by many real-world applications to identify defects and security risks. Random Testing (RT) is a low cost and easy to implement testing approach to generate strings. However, its effectiveness is not satisfactory. In this research, black-box string test case generation methods are investigated. Two objective functions are introduced to produce effective test cases. The diversity of the test cases is the first objective, where it can be measured through string distance functions. The second objective is guiding the string length distribution into a Benford distribution based on the hypothesis that the population of strings is right-skewed within its range. When both objectives are applied via a multi-objective optimization algorithm, superior string test sets are produced. An empirical study is performed with several real-world programs indicating that the generated string test cases outperform test cases generated by other methods.

assignment 3:
Pick a topic for your student project. The topic should be broad enough to be able to write a 8-10 page state of the art paper. Examples for topics may include “Big Data”, “Cloud computing”, “Software Testing”, etc.
You should pick a topic you feel comfortable with. Maybe you have already an idea for your master thesis? Feel free to pick a topic which is related to your idea, such that you might be able to use our paper for your thesis.
If you have no idea what to write about, we will find something together.

The deadline for the submission of your homework is Thursday April 21 2016.

See you next week and keep on writing!