PPIG 2009 Report

PPIG Workshop: 

By Jim Buckley

The 21st PPIG was held in the University of Limerick from the 24th to the 26th of June this year. Surprisingly, the sun shone for the whole 3 days of the conference, a sequence of dry weather that hasn’t been seen in Limerick since 1427.

The competition for the workshop this year was to develop a Limerick about your PPIG presentation or about PPIG in general. Many took to this task very enthusiastically (thanks Lutz), and this workshop report is interspersed (littered?) with their efforts.

As regards the workshop itself, day one opened up with the doctoral consortium, followed by lunch and a Keynote from Michael Kolling, detailing his attempts to resurrect programming. Most recently his efforts have focused on the development and usage of his Greenfoot ‘you-wouldn’t-even-know-you’re-programming’ programming environment, with the aim of enthusing novice programmers:

Motivation is really the key
It’s what everyone seemed to agree
‘Least what they told us
Before they enrolled us
But I still got a lousy degree
(Michael Kölling)

After this keynote there was a session dedicated, appropriately enough, to education. In this we heard about the huge efforts made to instil problem-solving skills into students (Orna Muller). Afterwards, Saeed Dehnadi presented on how he substantially refined his empirical study of “consistency as a predictor of programming prowess” in the light of the reviews he received when he presented his work at an earlier PPIG. His work was best summed up by his Limerick:

Iranian student Saeed 
Said students can guess what they need 
And those who guess wrong 
Will never grow strong 
So teaching can never succeed 
(Saeed Dehnadi)

The final activity of day one was a Panel discussion on whether good programmers are created by forces of nature or nurture. The panel members were Peggy Storey, Chris Exton, Judith Good, Keith Gallagher, Thomas Green and Marian Petre. Heated discussion led to a charged atmosphere – so charged in fact that the lights went out and left the lecture hall in total darkness for several minutes. However, the debate eventually gave way to the following consensus:

So nurture not nature is key 
But don’t just take it from me 
The eminent panel 
After lots of flannel 
Seemed, at least, on this point to agree 
 (Dermot Shinners-Kennedy)

Or did it…

Is programming skill about nature, 
Or is it about nurture? 
I think that the rub 
Lies in the ‘or’ nub 
And it’s never so simple a picture 
(Marian Petre)

After this draining debate, the delegates retired to the ‘CoffeeBean’ and enjoyed an evening of traditional Irish music, with finger food and a drink or two.

Day 2 started with a session which asked if software development was truly a collaborative, social activity. Collaboration in programming was the dominant theme in this session with 2 papers focussed on characterizing paired and side-by-side programming. Roman Bednarik, for example, reported on work that aimed to characterize paired programmers’ eye movements and Lutz Prechelt used a phenomenal 18 Limericks (an astounding one every 1.12 minutes) to characterise cooperation in side-by-side programming. Here is just a small taste of the offerings that kept Lutz up until 3:30 the preceding night:

Pair Programming is fine 
for quality, learning, and time, 
but it can be boring 
or overly soring, 
so try Side-by-side 5 til 9.

We want to describe what they do 
when people pair up as a crew. 
Want to see what goes well 
and what goes to hell, 
to advise, to make promises true.

There are some slides that are really hard 
to put in a Limerick Format 
This is one of these 
so please stay at ease 
if it is not quite as informative and as well-structured as the others 
(Lutz Prechelt)

Other papers in this session reported on the types of questions posed to colleagues on Open Source mailing lists and the responses they typically obtained (Khaironi Yatim Sharif) and on determining if programming languages are really improving as a communication medium for programmers (Gilles Dubochet).

After tea, Keiron Nicholson gave a memorable paper that echoed back to the ‘abstract is an enemy’ paper presented at PPIG ’08. This paper served to refine ‘abstracting’ practice to address the concerns voiced in the original ’08 paper. However, Keiron’s paper was dwarfed by his magnificent contribution to the Limerick competition, a contribution that resulted in the award of a special prize during the closing ceremony. Keiron won the ‘36th place’ award for his effort (a considerable achievement considering we only had 34 entries):

Asked to concoct a limerick 
I attempted to write a limerick 
I picked out some rhymes 
And used up my rhymes 
In the process of writing the limerick 
(Keiron Nicholson)

Kieron was followed by a presentation given by Jim Buckley on the cognitive levels employed by programmers while maintaining and evolving software systems. This work was originally carried out by Tara Kelly for her doctorate degree. The associated Limerick that Jim presented was, due to its total disregard for rhyme, structure (and in some cases semantics), a strong contender for the coveted ‘36th place’ Limerick award:

There was a young fellow called Bloom, 
Who’s passion, him did consume 
His resulting ability 
To categorize cog dexterity   
For exams, and learning outcomb 
(….and process?) 
(Jim Buckley)

The session concluded with a paper by Agata Vitale, discussing the procedures used for training and testing abstract comparative relations: relations that appear frequently in source code and reflect a core cognitive ability required of programmers and maintainers.

The final session of the day focused on source code. Michael English looked at the structural features of the code to identify differences between C++ and Java language usage. Daniel Delorey discussed the application of corpus-linguistic techniques to source code and, in the third presentation, Chris Exton reported on a simple, yet powerful, visualization tool developed by Michael Desmond:

A system with so many lines of code 
meant such a cognitive load 
So a tool was invented 
So the load might be circumvented 
So now all of you shall behold!! 
(Chris Exton)

Day 2 concluded with a tutorial on Greenfoot by Mikael Kolling, and the conference dinner in the picturesque village of O’Brien’s bridge.

Day 3 started of with the 2nd Keynote of PPIG 2009, given by Keith Gallagher. Keith took an introspective look at the things that cause him grief as a programmer and presented some alternatives that he thought might alleviate his (and other programmers’) load. Keith’s agenda to ‘make sparks fly from rubbing ideas together’ is well captured by his Limerick:

We have floats, we have ints, e’en a bit 
But it’s what’s in our heads doesn’t fit 
To get “us” in “there” 
I really don’t care 
So I hope that this talk stirs some sh*t! 
(Keith Gallagher)

The final session of papers looked at different aspects of software engineering, from end-user programming, through software architecture to testing. Ruth McKeever discussed named ranges in Spreadsheets, and their implications for bug fixing:

For a spreadsheet developer 
To make them seem clever 
A pipe dream maybe 
If it works hopefully 
They should make not one error! 
(Ruth McKeever)

This was followed by 2 talks on software architecture. One, by Jacek Rosik, discussed how it might be possible to keep the implemented architecture consistent with the designed architecture over the lifetime of systems. The other, by Jack Downey, characterized the software developers who specialize in defining software architecture.

The final paper of this years PPIG was presented by Tuula Paakkonen and discussed the improvements in testing protocols in communication software. PPIG was then rounded off with the final prize-giving ceremony and lunch in Kieran’s vegetarian Restaurant. The Prize for the best ‘in presentation’ Limerick went to Michael Kolling for the Limerick presented above. The most ‘Gestalt’ Limerick prize this year went to Rebecca Yates and I will sign off this PPIG workshop report with her entry:

I travelled on buses and trains 
To PPIG to talk about brains 
And coding and pairing 
And teaching and sharing 
And code that is hard to maintain

At the conference (my very first) 
Found the speakers were speaking in verse 
And to my surprise 
A pig is the prize 
Is this normal, or quite the converse? 
(Rebecca Yates)