Editor: Chris Douce
Workshop Review Chris Douce reports on PPIG 2002.
Book and Journal Reviews - Chris Douce reviews Goto Software Superheroes by Steve Lohr.
Spotlight on PPIGers - Where they are and what they are doing
Doddery Foddery 2: Harder to Digest Another light-hearted selection of programming related web sites by Frank Wales.
In Memory Edsger Wybe Dijkstra.
Welcome to the Summer edition of the Psychology of Programming newsletter. This edition begins with a brief review of the last workshop held at Brunel University, kindly and skilfully organised by Jasna Kuljus.
Remember, this is your newsletter. If you read a paper, books, discover new journal that you feel may be of interest to the PPIG community, please do tell us. Since PPIG is an interdisciplinary community, contributions from computer scientists, psychologists, educators and linguists are welcome. Please send all contributions, whenever you wish, to firstname.lastname@example.org
A special thanks goes to Frank Wales for introducing us to even more acronyms.
My apologies for taking so long over the preparation of this issue of the newsletter. Hopefully next time will not take so long.
I hope you enjoy it.
By Chris Douce
14th PPIG Workshop at Brunel University, London
The 14th Annual Psychology of Programming Interest Group Workshop was held at Brunel University in West London between 18-21 June 2002 within the Department of Information Systems and Computing (DISC).
A total of eighteen papers were presented at this years PPIG workshop, divided into sessions entitled Programming Tools, Individual Differences, Programmer Education, Cognitive Dimensions, Diagrams and Cognitive Theories from ten different countries.
The first session, Programming Tools contained two papers. The first was entitled Using the Cognitive Dimensions framework in the evaluation of the UML object-oriented design language, presented by Maria Kutar from the University of Hertfordshire. Emma Triffitt, from Sheffield-Hallam University presented an evaluation of a tool used with the formal methods language ‘Z’ when used with novices.
Individual differences of programming ability is a topic that comes up time and time again. The second session was one of the most varied. Differences in distance learning styles were discussed by Kit Logan from the Open University. The sometimes contentious issue of Programming aptitude tests were explored by Markku Tukiainen.
Martha Crosby, visiting PPIG from the sunny shores of Hawaii presented a paper that further explored the notion of a beacon, describing some intriguing and fascinating eye-tracking experiments, inspiring many discussions beyond the domain of programming.
This year, programmer education formed the largest section of the proceedings. Papers discussed both tools that could be used to assist in the teaching of programming and also the didactic techniques lecturers could use to assist novice computing students.
While Simon Lynch tried to Soften the Complexity of Intelligent Systems, Enda Dunican discussed analogy deftly mixed with anecdote. Linda McIver, by now a respected PPIG old-timer, posed the question of what we should look for when we come to evaluate programming environments that we impress upon novices.
The visual animation of programs for the aid of students (and PPIG word games!) were skilfully presented by Jorma Sajaniemi, leaving some of the audience thinking ‘if only I was taught using such a package when I was at university…’
The final paper of the session was presented by Jan Erik Mostrom addressed the topic of concurrency, an issues which is perceived by many professional programmers as one that is sometimes difficult!
Whilst, to many, programming may be perceived as a solitary problem solving activity the reality is usually somewhat different. The fourth section, entitled ‘Social Organisation’, aimed to explore how programmers or groups of programmers function and communicate. David Hales and Chris Douce attempted to introduce the discipline of artificial societies to the PPIG community and Lindsay Marshall pondered whether programmers communicate through oral tales, using programming folklore.
Sally Fincher began the session on Cognitive Dimensions, arguing the increasingly respected notion of patterns could be allied with the Cognitive Dimensions Framework. Chris Roast from Sheffield Hallam University changed step to a more formal tone, discussing a tool that can be used for the use of dimensions for evaluation.
Alan Blackwell, presenting on behalf of Kerry Rodden, outlined a project that may yield insight into the usability of class libraries, indicating that PPIGers continue to have a respectable interest in ‘programming in the large’. Continuing the subject of classes, Christian Holmboe discussed the association between languages and the works of Wittgenstein.
The final session, Cognitive Theories, contained two papers presented by Alan Blackwell and Andrew Walenstein. Both papers had strong connections to earlier papers presented in other sessions. This highlights the breadth of interests held by PPIG members. Members presented papers that focus on both the practical aspects of programming (and programming education), and the theoretical.
Alan posed the question of ‘what is programming?', a question that was almost as difficult to answer as ‘what is psychology?’ The final presentation of 2002 was given by Andrew who told us about HASTI, a lightweight cognitive modelling theory.
Three guest speakers gracefully complemented the workshops papers. Françoise Détienne from INRIA, France, described current research issues in the support of collaborative design. Thomas Green, spoke on the issue of notation design (computing and otherwise!) and how Cognitive Dimensions could assist to guide their construction. Mark Harman gave an invited speech entitled Side effects considered harmful (but rendered harmless), educating many of us about the complexities of the C increment operator.
Like so many PPIG workshops, the entertainment provided for the delegates could only be considered as spectacular. This year proved to be no exception, possibly the best ever. Two evenings were spent at local restaurants, the first a lovely pizzeria, the second was frequented by a popular musician who went by the name of Cher.
Workshop proceedings were punctuated by the thoughtfully arranged 2002 World Cup England versus Brazil match. Many thanks to Jasna for organising this treat for the Engish delegation. Some people also felt that it was pity that the result could not be also arranged. In retrospect, it was fitting that the better team won so the workshop could continue unhindered.
It was concluded that next years PPIG will be located at Keele, co-located with EASE, a workshop associated with Empirical Software Engineering.
It was felt that both the PPIG and EASE community could benefit by the dissemination of ideas between each group. More information about the future workshops will be posted on the e-mail list and on the web site when it becomes available.
Book and Journal Reviews
By Chris Douce
Goto: Software superheroes from Fortran to the Internet Age, Steve Lohr
The issue of programmer performance has always interested me ever since reading Weinbergs the Psychology of Programming and stumbling across an old paper by Bill Curtis published in an IEEE journal back in 1981 entitled Substantiating Programmer Variability.
Software superheroes attracted me since being a ‘competent’ programmer, I felt that potentially I could learn some ‘programming pearls’ (or perls?) from programmers who the author considers to be ‘cosmic’.
Software superheroes paints and an intriguing picture of the actions and individuals behind the conception of a number of fantastic software inventions, focusing significantly on the design and creation of programming languages. Software superheroes fills the gaps that Fire in the Valley and a number of other modern histories of computing fail to cover.
Lohr traces the well-known route from wires, to assembly language from binary numbers, bootstrapping the book with an illuminating description of the development of Fortran. Fortran is naturally followed with a discussion of Cobol, where a number of my long held historical misconceptions were clarified. Other languages include the development of the ‘latin’ of computer languages, Algol and its descendants, Pascal and C, leading gradually towards innovations in C++ and Java.
Due to my own sense of aesthetics I felt the inclusion of BASIC and Visual Basic a little surprising, but I was to be persuaded. I learnt a little too: before BASIC made its force felt, a small number of related languages were developed, one was called DOPE, entitled Dartmouth Oversimplified Programming Experiment. Lohr continued with a brief, well worn discussion as to how Microsoft began, followed with a description of how Visual Basic became the popular programming tool that it is today.
Leading into more modern times, approximately ten years ago, Java was introduced to the reader. Java could be considered a language with no sharp edges, aimed at ‘average’ programmers, where simple rules can ‘free’ the programmer to focus on problems. This relates to the earlier development of Cobol, where the use of verbs rather than symbols sparked intense debate.
The design and evolution of programming languages is one of the central themes of the book, but is not the main one. The development, use and acceptance of operating systems is also described, notably IBM’s famous OS/360 and Unix. Different development philosophies behind these two systems are compared and contrasted. The first being developed by teams of programmers, the second being developed by only two key talented programmers. Both intended to serve different ends.
On top of operating systems, lie applications. The origins of the Word wordprocessor and Lotus spreadsheets are provided along with, interestingly, SQL. Databases are perceived by so many as to be the unfashionable underbelly of software and incredibly easy to forget about. The inclusion of such an important software artifact, and one that has to be programmed, is admirable.
Tantalisingly, Lohr writes that ‘[Charles] Simonyi [of Microsoft] is working on a technology that he hopes will free the human intelligence’, who wishes to liberate abstractions from closed programming languages. It has been said that cosmic programmers can outperform average programmers at rates of ten to one, a fantasic figure considering many other forms of human endeavour.
There is a commonality between these superheroes: an interest in invention, patience and wanting to know how things work. Designers of fantastic software, it is hypothesised, are motivated by pragmatism and the need to solve real-world problems, hence the creation of the tools of Fortran, Stroustrup’s C++ and, more recently, Java.
The final chapter concludes with a discussion regarding open-source software, with an outline as to what the open-source moment is, a brief description of the development of the Apache web-server and an introduction into some of the movement’s most famous characters.
I feel that there is something missing from this book. I agree with Lohr’s selection of superheroes and I very much doubt that I could have chosen better. I feel that there are many more superheroes out there, unfamous work-a-day superheroes who do not receive glamour, credit or acclaim. superheroes who keep organisations working and products shipping. I feel the inclusion of the chapter on open source software is a firm nod in this direction.
From my own interest in what makes programmers tick and trying to understand what I do everyday, working in a ‘curious blend of art, science and engineering’, Software superheroes hits the spot. Perhaps Lohr could write another book about other unseen digital superheroes who remain hidden from us all.
I will not reveal the final sentence, but I must say, I do agree with Knuth. There is something musical about programming!
Goto: Software superheroes from Fortran to the Internet Age
by Steve Lohr
Profile Books, 2002
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
Basic Books, 2001
If you have read any interesting books or would like to review a book for PPIG, please contact Chris at email@example.com
Spotlight on PPIGers
I am interested in combining the disciplines of Software Engineering and Information Design with the hope to improve the software development process.
My hunch is that the information representation problems that plague modern software development environments (even those that are not so modern, such as Ye Olde UNIX C Guild) cannot be solved by those with strictly software backgrounds. Example: we keep throwing more graph theory at software visualization systems but sometimes I don’t see the difference between a huge pile of source code and a huge cloud of nodes and edges.
On the other hand, the Information Design community dedicate themselves to creating better information artefacts of all types all the time.
I’ve seen some results and techniques from Information Design that I believe would have great potential in software development. Maps, charts, and diagrams are timeless tools; only some have made their way to software so far.
I’m actively seeking a PhD programme which would allow me to combine these and other disciplines to try to find new results that will have practical implications for day-to-day software development on all scales, although I’m especially interested in large systems and projects. Unfortunately it seems difficult to find such a strongly interdisciplinary environment, but I’ll keep looking!
I’m interested in strong theory that is well applicable. I want to combine the best of industry and the ivory tower, so-to-speak. Other than that, I believe the world is missing a really robust information graphics package. Apologies to Microsoft, but Excel pie charts don’t quite do it for me… I’m into general ID and s/w issues, Diagrammatic Reasoning, Visual Languages, InfoVis, etc. If any PPIG members could point me in the right direction, I’m always grateful for any advice.
I recently received my Ph.D. in Computer Science from Carnegie Mellon University. My thesis, A Programming System for Children that is Designed for Usability, is available online.
I’d like to thank all of the PPIG members who contributed to my work, and I would be delighted to hear your comments on the result.
I have accepted a position at RAND.
My new contact information is:
201 N. Craig Street
T: +1 412 683 2300 x4619
F: +1 412 683 2800
Since John made the above announcement, John and his wife Barbara, who many of you met at PPIG 2000 in Italy, had their first child on 19 July. Best wishes go to John and his new family.
Conferences, Workshops and Call for Papers
PPIG Journal Special Issues
As discussed at the last workshop, special issues of two journals will publish PPIG work. The papers are not restricted to work reported at this year’s workshop and any contribution from the PPIG community will be welcomed.
There are two issues: A Special Issue on Cognition and Software: HCI at Work in Journal of Cognition Technology and Work and a Special Issue on Improving the Learning and Teaching of Programming in the Journal of Intelligent Systems.
Hope to hear from you soon.
Dr Jasna Kuljis
Senior Lecturer Department of Information Systems and Computing
Conference and Workshop Reports
If you have been to a conference or workshop that you feel would have been interesting to members of the PPIG community, please send them to firstname.lastname@example.org
As mentioned earlier, PPIG is an interdisciplinary society, comprising Educational and Cognitive Psychologists, Computer Scientists and practising Software Engineers. If you visit a conference covering any of these disciplines that you think could interest some of us, do tell, please write.
Dodder Fodder 2
By Frank Wales
Harder to Digest
Crossword puzzle solving is now a spectator sport, with computer programmers joining left-handed people in disproportionately high numbers to take part. At least, this is what that relentless purveyor of downbeat news, Failure magazine, reports as part of its coverage of the annual American crossword puzzle tournament. No doubt programmers attend these tournaments to get away from all the XML work they have to do since (as far as I can tell) no-one is writing crosswords in XML yet.
It seems to me that there is clearly an opportunity here for writers of I.Q. tests to create similar sporting fervour among programmers and other problem solvers with excessive cerebral enthusiasm, and perhaps even for some research to be done in the process. I’ve provided some really hard I.Q. puzzles to get you started, but you need to be quick; the BBC already thinks I.Q. tests make good television, despite being unable to provide any convincing explanation of what they measure.
When our puzzle-solving programmers return from battle, they’ll no doubt be reassured that new paradigms await them, along with even more languages whose names start with ‘X’ or end in ‘L’.
They can enjoy ‘aspect-oriented programming’, and can ponder the “completely new approach” to programming inherent in COLAG (which is built upon XML). They can then use their new ways of thinking about programming to create whole new user interfaces with XUL (which is built upon XML). They can ponder programming language design lessons from the things that can’t be done in XSLT (which is built upon XML). And they can distribute everything they learn in eXchangeable Faceted Metadata Language (which is built upon XML).
Spoiling the optimistic air is the discovery of mathematical limits to software estimation. Still, with Donald Norman apparently having an epiphany on aesthetics in design, with philosophers deciding that they can throw away everything except the integers in their pursuit of clarity, and with people constantly finding new things to create with programmable LEGO, it’s clear that it’s never too late to start again.
I suspect we’re stuck with XML, though.
Frank Wales email@example.com
I received an e-mail message that contained a mostly serious and partially humorous anthology of programmer riddles that could be used in interviews used to determine whether programmers have the necessary aptitude. I found it particularly interesting, given the earlier review and papers presented at this years PPIG regarding programmer aptitudes:
Disclaimer: Content contained within any of these web sites does not necessarily reflect the opinions or views of the PPIG organisation and community.
Edsger Wybe Dijkstra
On 6 August 2002, Edsger Wybe Dijkstra, Professor Emeritus of Computer Sciences and Mathematics at the University of Texas at Austin, died at his home in Nuenen, the Netherlands following a long battle with cancer.
Dijkstra was a prodigious writer. Some of his manuscripts can be accessed from the University of Texas. Dijkstra’s fine works and words convey many influential thoughts and ideas that will continue to occupy us for very many years to come.