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
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
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
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
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
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
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
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!!
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!
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!
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?