I recently had the pleasure of attending the PPIG 2011 workshop between 6 and 8 September. As I might have mentioned in an earlier blog, PPIG is an abbreviation for the Psychology of Programming Interest Group. There used to be an American equivalent which was called ESP (Empirical Studies of Programmers), but this community seem to have disappeared. PPIG, on the other hand, is going strong.
This year it was held in the University of York computer science department. The department had moved since I was last there, forcing me to circumnavigate the campus and arrive at a time when almost all the tea and sandwiches had disappeared. Thomas Green gave an opening address, and then it was swiftly on to the first presentation.
Mathematics and Visual Impairments
Alistair Edwards gave a talk entitled 'new approaches for mathematics in blind students'. Mathematics, of course, relies on visual notations. These notations, it was argued, are an integral part of working with maths.
Alistair holds that view (or, should I say that I understand that he holds the view) that there is more to it than just using an appropriate notation, or having that notation converted into another form. We externalise parts of our working memory by using pen and paper. Also, the idea of cancelling (or balancing) an equation by crossing of similar teams from both sides can be viewed as a visual manipulation.
Alistair mentioned a couple of projects, one of which was called Lambda, an abbreviation for Linear Access to Mathematics for Braille Device and Audio-synthesis. Here, the challenges began to be clear: I didn't know this but different countries have different braille notation for mathematics. There is, of course, the issue that using an interface to a notation immediately places cognitive barriers in the way that has the potential to make things more difficult to understand. Users, it was argued, need more direct forms of interaction when working with mathematics.
All in all, a very thought provoking introduction, and it made me wonder how Green's cognitive dimensions of notations framework might be used to analyse interactions to notational systems (such as mathematics or programming languages) by users who may have different modality preferences (i.e. auditory over visual).
New Tech
The first main session of the workshop was called New Tech. I'll do a very quick run through of the papers from each session. Jon Rimmer presented the shyness project, and introduced the beguiling ambient computing device called the 'subtle stone', whereby class participants can communicate their emotional state to the lecturer by a click of a juggling ball. Jon deftly directed us to a series of interesting papers about shyness.
The following paper was closely connected. It was entitled 'self-reporting emotional experiences in a computing lab', by Judith Good (et al). Us programmers go through a whole spectrum of different emotions during a programming session, from delight, through to wishing to jump on our laptop (although I don't recommend this). This is an interesting direction: emotion connects to motivation, and traditionally the PPIG community have more focussed upon the cognitive.
Chris Roast, from Sheffield Hallam University, took us on a tour of a tool that helped to create different internationalised film posters; software localisation through abstraction.
One of the papers that I most enjoyed was by Chris Martin from the University of Dundee, who took dancing robots on a road trip to a number of different schools to further explore whether a robot dance workshop can inspire interest in a technical subject such as computer programming. Or, does using robots 'sugar coat' a difficult subject, or is there more to it than this? By robots, imagine small buggies.
In fact, Chris's robots use the same Arduino microcontroller that is central to the TU100 Senseboard. By dance, this is an activity that has a low threshold to success, is created, transcends culture, and where performance can be valued over competition (I made notes during this bit of Chris's talk).
The two other papers in this section described how to make music with a dry marker pen, a whiteboard and a mobile phone by defining your own musical notation (which was pretty cool), and considered the challenges that users of mobile spreadsheets face.
Human and algorithmic complexity
The next presentation was a 'work in progress' paper by yours truly. I talked about a project (that has been making very slow progress, due to a myriad of different reasons) to explore whether it is possible to link measurements of program complexity to physiological measurements that are known to indicate human cognitive load.
The workshop participants gave me a whole number of things to think about, including the names of a number of researchers, as well as a clear message of: 'stop procrastinating, just get on with it'. I'm certainly going to take that last piece of advice.
The following presentation was about the challenge of working with test data. A subject that can easily cause terror to many a software developer.
Language Formalities
Wednesday yielded a change of plan. Thomas Green ran a session entitled, 'how to design a notation'. A programming language is, of course, a form of notation. Thomas posed interesting questions, like, 'how might we invent a different type of musical notation?', which led onto other questions such as its level of abstraction (what each element of a notation can represent), what you might wish to do with a notation, it's overall purpose, and how you might off load to external representations.
A theme underpinning all this debate was one that is familiar to many human-computer interaction and interaction design researchers: the idea of trading one thing off against another.
Giora Alexandron then presented his paper entitled 'programming with the user in mind' which led us towards considering something called live sequence charts, which is an extension of UML sequence diagrams. We were introduced to the Play Engine and the PlayGo IDE.
This was followed by a presentation by Ahmad Taherkhani who spoke about 'automatic algorithm recognition based on programming schemas'. I really liked this paper, since it was a new angle on some very early psychology of programming themes. I particularly like how Ahmad was attempting to use existing theories to engineer a solution that may not only have practical use (in terms of providing tools to help educators to understand the programming code that students write), but also the act of programming a solution has the potential to allow us to learn more about the theories that are being applied.
The final paper in this session was a work in progress paper by Khuong A Nguyen who used a human-computer interaction technique called cognitive walkthough to learn more about the NXT-G visual programming language that can be used with the Lego Mindstorms hardware.
HCI for the future
Following a tour of a HCI and accessibility lab (which resembles a small apartment), a short panel discussion took place, with Nicholas Merriam and Luke Church taking centre stage. Nicholas's perspective was especially welcome, since he spoke about the challenge of working with low level embedded software and the role that timing visualisation tools may play when attempting to solve programming problems that seem particularly intractable. This linked back well to the earlier discussions of notation.
Learners and language design
This session contained two papers. The first was a paper by Ahmed Alardawi, from Sheffield Hallam, aimed to explore the effect that object-oriented programming language class structure has on the comprehension of computer programs. What was great about this research was that it clearly made use of existing work, and partially replicated earlier studies, thus adding to evidence. Babak Khazaei, also from Sheffield Hallam, presented an empirical study on the influence of OCL, an abbreviation for Object Constraint Language (wikipedia).
Motivation and affect
This part of the workshop contained a single presentation, by Rein Sach, from the Department of Computing at the Open University.
Rein's paper was entitled, 'what makes software engineers go that extra mile?' Rein asked software engineers what it was about their work that they enjoyed. This gave way to an interesting discussion about the perception of the nature of programming work. Even though developers might have to battle with misbehaving operating systems and maintain servers from time to time, perhaps these activities need to be considered as work rather than nuisances that get in the way of the real task, which is doing the intrinsically rewarding and creative work of creating code.
Invited paper
Thursday kicked off with a presentation by Gerrit van der Veer, from the Open University in the Netherlands and the Free University, Amsterdam. Gerrit's presentation was about different aspects of design, how technology might be used to gather debate surrounding the artefacts that are created during the design process through a system called CAM, meaning Co-operative Artefact Memory. A barcode sticker could be attached to different artefacts, such as a sketch or a physical prototype. Design groups could then use these stickers, with mobile phones, to access a shared Twitter stream that relates to each object, allowing views and ideas to be shared.
Two thoughts came to mind during Gerrit's presentation. Firstly, I wondered the extent of similarities between design practice (in different disciplines) and what occurs within software development practices that use agile methods, such as eXtreme Programming. Secondly, CAM reminded me of a tool called OpenDesignStudio used for an Open University design course called U101, Design Thinking.
Another part of Gerrit's presentation was all about service design (i.e. design which yields a product that is not a tangible item). Gerrit pointed us to a number of resources, such as the Service Design Tools site, and mentioned the importance of culture, by referring to the work of Hofstede (which is studied in the M364 Interaction Design Open University course).
Cognitive considerations
The final session of the workshop contained two presentations that related to the cognitive dimensions of notations framework, papers by Anna Bobkowska, Maria Kutar and John Muirhead. Anna introduced a language for the processing of multimedia streams through the use of a visual language. Maria and John's presentation explored how a cognitive dimensions questionnaire might be used by non-experts.
Miguel Monteiro went on to speak about the cognitive foundations of modularity. Miguel referred to a programming paradigm called Aspect-oriented programming (wikipedia), a subject that I have heard of many times, but one that I have not explored in a great deal of depth. Learning more about AOP is certainly something to do at some point.
Qualitative and Quantitative
The final presentation of the workshop was by Gordon Fletcher from the University of Salford. Gordon's presentation was entitled 'methods and practicalities of qualitative research', but it was so much more than this. Gordon spoke about data collection in different communities, and mentioned the concept of biographical research (which made me wonder if anyone has thought about applying this technique, perhaps with regards to exploring motivation or software related careers.
I came away with a number of messages, namely, it can be relatively easy to gather qualitative data, but figuring out what to do with it is a whole other issue. Also, both quantitative and qualitative research can be both systematic and rigorous; these different approaches to research have a lot in common. An interesting quote was, 'the method has to fit the researcher even more than it has to fit the research'.
Gordon's presentation gave way to a memorable debate on the use of terms. Undoubtedly the use of language will remain a perpetual challenge when carrying out multidisciplinary research.
Themes
A number of diverse themes were evident within the PPIG '11 workshop, representing its broad membership. There was a strong theme of computing education and pedagogy. Programming and educational motivation was also apparent, mixed in with the use and design of visual programming languages. This connected to the important theme of cognitive dimensions, notational systems and notational design.
Two interesting inclusions were links to the broader subject of design, and accessibility. Human-computer interaction and interaction design remains important theme too. A final theme is (perhaps that isn’t as strong as in previous years) is the application of ethnographic methods to further understand the activity of programming. It was great to hear from a broad spread of presenters who are exploring many different research areas.