Novels I Loved Reading in 2016

I enjoy reading a few pages after work, or listen to an audiobook when commuting. Here are the five novels I loved most in 2016.

Arthur Japin: De Gevleugelde (The Winged, 2015)

A novel based on the life of Alberto Santos-Dumont, Brazilian aviation pioneer. Inspired by Jules Vernes, the young Alberto sets out to invent flying machines, building his own hot air balloons, dirigibles (Zeppelins), and eventually planes. In 1901 he is the winner of a competition to fly a route of 11km around the Eiffel Tower, and in 1906 he is the first in Europe to make a flight with an “aircraft heavier than air”. Japin describes what drives the engineer Santos-Dumont to make his inventions and reach his fame. But most of all he tells the story of Santos-Dumont’s forbidden love for his mechanic Albert Chapin.

I listened to the audiobook narrated by the author (who is a trained actor). Many of Japin’s novels are translated and I expect a Portuguese and English version to appear soon, maybe in 2017?

In real life, Alberto Santos-Dumont refused to file any patents (he “open-sourced” his designs), as he wanted the world to benefit from the ability to fly as soon as possible. Later, suffering from multiple sclerosis and hugely disappointed by the military use of planes in world war I and during the Brazilian São Paolo revolution of 1932, he burned all his designs and committed suicide. See also this santos-movie for a short biography.

John Green: The Fault in Our Stars (2012)

Love story of 16 year old Hazel Lancaster and 17 year old Augustus Waters, both cancer patients. Heartbreaking and beautiful. Also features the Amsterdam Anne Frank house and Westerkerk.
“Young Adult Literature”: Amazingly well done novel about love and death that is meaningful to parents and kids alike.

Chances are you read the Fault in Our Stars before me: If you loved it, also consider John Green’s “Looking for Alaska” (2006). Most commonly banned book at US schools and libraries: Can you imagine a better recommendation?

John Green and his brother Hank Green set an example to universities around the world by their crash course initiative offering free on line courses on such topics as astronomy, psychology, world history, physics, and (soon) computer science.

Griet op de Beeck: Kom hier dat ik U Kus (Come Here so that I Can Kiss You, 2014)

Griet op de Beeck is a Belgian author who was to be appointed as TU Delft “cultural professor” in 2016. Unfortunately she had to cancel due to personal circumstances. Before that, she featured in the highly regarded Dutch TV show Zomergasten where she gave an open and optimistic account of her life and her mental health struggles.

Her novel tells the story of three stages in the life of Mona. Told by Mona herself, the first part is set in the simple and compelling language of a 10 year old. Mona tries to make sense of the world after the death of her mother. In the later parts, 24 and 34 year old Mona seeks to find and understand herself, and her relationship to her parents, stepmother, and her brother and stepsister.

I listened to the audiobook narrated by the author in wonderful Flemish. Translations in German (“Komm her und lass dich küssen”) available, and forthcoming in French and other languages in 2017.

Andy Weir: The Martian (2011)

A delightful page turner written by a software engineer. It is the year 2035, and when his mission to Mars gets into trouble, astronaut Mark Watney gets left behind all alone. Thanks to his knowledge of potatoes, farming, and chemistry, and thanks to his amazing optimism, perseverance, and improvisation skills, Mark manages to travel across Mars on his own to reach a place where he might be picked up to return to earth.

Thomas Mann. Buddenbrooks: Verfall einer Familie (The Decline of a Family, 1901)

My classic of choice in 2016 was Mann’s first novel, telling the story of four generations of a 19th century German merchant family. Thomas Buddenbrook runs the family business, optimistic at first, but more and more exhausted and depressed as life goes on. His brother Christian suffers from mental health problems; His sister Anthonie has bad luck in her marriages, and her daughter Erika is unfortunate in marrying a merchant who ends up in prison. And young Johann’s fate is covered in a heartbreaking chapter just describing the symptoms of typhoid.

German edition on Project Gutenberg. In case you want to start exploring Mann with a shorter novel, consider his “Death in Venice” (1912).

The Collaborative Software Architecture Course

After four exciting years of Teaching Software Architecture Using GitHub, we decided to write a paper reflecting on the course and our experiences, and submit it to SIGCSE, the flagship conference of the ACM Special Interest Group on Computer Science Education, typically attended by more than a thousand educators from around the world.

We’re very happy that our paper was immediately accepted!

In the paper, we identify three challenges in teaching software architecture:

  • C1: The theory of software architecture (design principles, tradeoffs, architectural patterns, product lines, etc) is often very abstract and therefore hard for a student to master.
  • C2: The problems of software architecture are only visible at scale, and disappear once small example systems are used.
  • C3: A software architect needs a combination of technical and social skills: software architecture is about communication between stakeholders, and the architect needs to be able to achieve and explain consensus.

To address these challenges, the paper proposes a collaborative approach to teaching software architecture. In particular, we report how we organized our software architecture course according to the following principles:

  • Embrace open source: Students pick an open source system of choice and study its architecture. Students use it to learn how to apply architectural theories to realistic systems (C1, C2).
  • Embrace collaboration: Students work in teams of four to study one system in depth (C3).
  • Embrace open learning: Teams share all of their work with other students. Furthermore, students share their main result with the open source community: their architectural description is published as a chapter in an online book resulting from the course (C3).
  • Interact with the architects: Students are required to offer contributions (in the form of GitHub pull requests) to the open source projects, which will expose them to feedback from actual integrators and architects of the open source projects (C1, C2, C3).
  • Combine breadth and depth: Students dive deeply in the system they analyze themselves, and learn broadly from the analyses conducted and presented by other teams (C1, C3).

DESOSA 2016 book cover

In 2016 the resulting book (created in markdown and git using gitbook) described the architectures of 21 open source systems, including Ember.js, Karma, Neo4j, and SonicPi. The chapters are based both on existing architectural theories (such as architectural views, product lines, and technical debt), as well as the students’ first hand experiences in making actual contributions (merged pull requests) to the open source systems under study.

SIGCSE Abstract

Teaching software architecture is hard. The topic is abstract and is best understood by experiencing it, which requires proper scale to fully grasp its complexity. Furthermore, students need to practice both technical and social skills to become good software architects. To overcome these teaching challenges, we developed the Collaborative Software Architecture Course. In this course, participants work together to study and document a large, open source software system of their own choice. In the process, all communication is transparent in order to foster an open learning environment, and the end-result is published as an online book to benefit the larger open source community.

We have taught this course during the past four years to classes of 50-100 students each. Our experience suggests that: (1) open source systems can be successfully used to let students gain experience with key software architecture concepts, (2) students are capable of making code contributions to the open source projects, (3) integrators (architects) from open source systems are willing to interact with students about their contributions, (4) working together on a joint book helps teams to look beyond their own work, and study the architectural descriptions produced by the other teams.

Arie van Deursen, Maurício Aniche, Joop Aué, Rogier Slag, Michael de Jong, Alex Nederlof and Eric Bouwers. “A Collaborative Approach to Teaching Software Architecture.” Proceedings of the 48th ACM Technical Symposium on Computer Science Education (SIGCSE), March 2017, Seattle, USA.

You can download the paper from the TU Delft institutional repository, or have a look at the slides we used at our SIGCSE 2017 presentation.

Golden Open Access for the ACM: Who Should Pay?

In a move that I greatly support, the ACM Special Interest Group on Programming Languages (SIGPLAN), is exploring various ways to adopt a truly Golden Open Access model, by rolling out a survey asking your opinion, set up by Michael Hicks. Even though I myself am most active in ACM’s Special Interest Group on Software Engineering SIGSOFT, I do publish at and attend SIGPLAN conferences such as OOPSLA. And I sincerely hope that SIGSOFT will follow SIGPLAN’s leadership in this important issue.

ACM presently supports green open access (self-archiving) and a concept called “Open TOC” in which papers are accessible via a dedicated “Table of Contents” page for a particular conference. While better than nothing, I agree with OOPSLA 2017 program chair Jonathan Aldrich who explains in his blog post that Golden Open Access is much preferred.

This does, however, raise the question who should pay for making publications open access, which is part of the SIGPLAN survey:

  • Attendants Pay: Increase the conference fees: SIGPLAN estimates that this would amount to an increase by around $50,- per attendee.

  • Authors Pay: Introduce Article Processing Charges: SIGPLAN indicates that if a full conference goes open access this would presently amount to $400 per paper.

screen-shot-2017-01-05-at-4-23-12-pm

Note that the math here suggest that the number of registrants is around 8 times the number of papers in the main research track. Also note that it assumes that only papers in the main research track are made open access. A conference like ICSE, however, has many workshops with many papers: It is equally important that these become open access too, which would change the math considerably.

The article processing charges of $400,- are presented as a given: They may seem in line with what commercial publishers charge, but they are certainly very high compared to what, e.g. LIPIcs charges for ECOOP (which is less than $100). These costs of $400,- come from ACM’s desire (need) to continue to make a substantial profit from their publishing activities, and should go down.

In his blog post, Jonathan Aldrich argues for the “author pays” model. His reasoning is that this can be viewed as a “funder pays” model: Most authors are funded by research grants, and usually in those grants funds can be found to cater for the costs involved in publishing open access.

On this point (and this point alone) I disagree with Jonathan. To me it feels fundamentally wrong to punish authors by making them pay $400 more for their registration. If anything, they should get a reduction for delivering the content of the conference.

I see Jonathan’s point that some funding agencies are willing to cover open access costs (e.g. NSF, NWO, H2020), and that it is worthwhile to explore how to tap into that money. But this requires data on what percentage of papers could be labeled as “funded”. For my department, I foresee several cases where it would be the department who’d have to pay for this instead of an external agency.

I do sympathize with Jonathan’s appeal to reduce conference registration costs, which can be very high. But the cost of making publications open access should be borne by the full community (all attendants), not just by those who happen to publish a paper.

Shining examples of open access computer science conferences are the Usenix, AAAI, and NIPS events. Full golden open access of all content, and no extra charges for authors — these conferences are years ahead of the ACM.

Do you have an opinion on “author pays” versus “participant pays”? Fill in the survey!

Thank you SIGPLAN for initiating this discussion!