PL+HCI 'Swimmer' School

Posted by Daphne Miedema on August 07, 2020 · 9 mins read
course tripreport virtualevent

So, my first online event, the PL+HCI "Swimmer" school, was just wrapped up. "Swimmer"? Of course, a summer school for the one hemisphere is a winter school for the other. As Shriram Krishnamurthi wrote on the program page, it's cheesy but memorable.

The topic of the school was a great fit for me, with my background in both Human-Technology Interaction and Computer Science and Engineering. My research focuses on the interaction between humans and databases, and a large part of that interaction is through query languages, a specific type of programming language.


The week was started off by Amy J. Ko, who talked about how we can learn things about programming (and here specifically debugging) through the things we make. Designing programming tools should be an iterative process, where each sub-project provides us with new ideas and insights that we can use to move the field forward. Typically, she said, Programming Language researchers are on the CS side of things and would consider proofs, but HCI techniques such as observing users can be super helpful too.

An interesting insight Amy presented is that, although something may seem promising, that does not mean it is good. Testing your system once is not enough. We should reflect on our results and discuss the way to move forward. One option is to take a break, explore different options, and only then return to your original prototype. This can make it more clear which direction you want to go in.

The second day started with a talk by Titus Barik, who discussed how they use HCI tools at Microsoft to increase the usability of notebooks. Notebooks are a great tool for doing Data Science: traditional tools such as Excel and programming Python in Powershell just do not cut it in that regard. Titus discussed various projects at Microsoft such as Wrex (creating readable code for automated data transformations) and Gather (to extract all notebook cells that contain code that contribute to a certain thing such as a plot). My notebooks always grow way too big, I need this! The talk was especially interesting to me as one of my major experiments currently involves the use of Jupyter Notebooks by students.

I also appreciated Titus' slide on the things he wishes he knew as a PhD student. Firstly, the point that we should focus on problems that are meaningful to users, and papers will follow. Solving meaningful problems also makes it easier to write about the 'why' of the paper. Secondly, he suggests we should not worry about solving problems that are too simple. "The complexity monster will find you on its own".

The third day was opened by Björn Hartmann. He started by discussing what the two fields can bring to each other's table. HCI asks programming to move beyond the individual, for example, to find that effective communication is important in development too. PL can help HCI by providing powerful techniques to guide these interactions. In the remainder of the talk , Björn discussed an iterative set of projects that move towards providing helpful hints for debugging.

The starting project developed a database of errors and correct answers for the same exercise and presented the struggling students with pieces of code that might help them. Although this is clearly not a good pedagogical strategy, it does present a starting point for the development of a tool that ticks all the boxes. The final project two projects presented leveraged program traces and experts to present information to the students on how to improve their code.

Like Titus, Björn emphasized the need to make sure you've found a good problem first. This combines well with his encouragement to apply a Design Mindset. We need to ask ourselves whether we understand the problem and whether we have defined it correctly, before trying to solve it.

On day four, we listened to Andreas Stefik. His talk on 'Programming Languages and the Silly Humans that Use Them' focussed on all the disabilities that humans may have, and how tools and good design can help them. On top of that, tools designed for people with disabilities often help other groups of people too! Such as closed captions, which are specifically for the deaf/hard of hearing, but can also help people who are learning a language, or people that want to watch videos while in a loud environment, and so on.

Here are some pointers for accessible design as presented by Andreas:
  • Allow both mouse and keyboard access.
  • Peruse the Human Factors Evidence Standards.
  • C-style syntax should be abolished as it is very difficult to understand when spoken.
  • Navigating code by AST helps blind people (and seeing people too).
  • When designing labels, consider the sounds that it starts with as the first few milliseconds are essential for understanding.
  • Rethink error messages.
  • Charts are typically just pixels on the screen, drawing separate elements (navigable) can make them more accessible.

The final talk was by Nadia Polikarpova on methods of Program Synthesis. Program Synthesis was a recurring theme throughout the week in multiple talks. It seems to be one of the areas where PL and HCI can mesh together very well. I had not heard of this technique before, so it was great to learn more about the different types of Specification and Search strategies that can be applied in this context.

This Friday the Swimmer school was concluded with a panel discussion. In this panel we heard more of the organizers views on various topics discussed throughout the week. They also paid some attention to how we as PhD students can contribute to the field and make it grow. The discussion of interesting venues was very nice too, I have found a lot of interesting avenues that I should look into soon. It was great to hear more from the organizers, their insights and meta-comments were very insightful.

Student Activities

On top of the talks, there were daily activities specifically for students. There was a Student Social Hour and a Doctoral Symposium. I decided not to participate in the Doctoral Consortium, as I was already invited for the SEFI Doctoral Symposium next month.

The Student Social Hours had a different program every day, including 36 questions to fall in love, a programming competition, Jackbox games, and a Q&A on what it means to be a PhD student. Having different activities to do every day made this a really refreshing experience. I did notice that for most people (including me), they require some time to warm up and start talking, but overall I'm really happy that I participated in these. Major thanks to Slim, Zeeshan, and Yanyan for setting this up. My one suggestion might be to make the sessions a bit longer, as people need to get comfortable before they speak up.

Overall Impression

I'm really happy to have participated in this Swimmer School. It was well-organized, talks were recorded, accessibility was high on the agenda and the speakers were all super interesting. I have found a lot of interesting people to follow, and uncovered new research directions through suggested papers. If this Swimmer School returns next year, I would certainly be interested in participating again.

One suggestion I have for possible future iterations of the school is to try and get word out to other countries too. Most of the students I talked to in the student hours at least, were from either Canada or the United States. It could be valuable to add different perspectives.

In short, this was a great experience and I had a really good time. Many thanks to the organizers: Sarah Chasins, Elena Glassman, Shriram Krishnamurthi and Hila Peleg.