|Psychology of Programming
|about newsletters workshops resources contents|
Editor: Chris Douce
Welcome to the Summer 2004 edition of the Psychology of Programming newsletter.
This newsletter follows a very successful 2004 event, hosted by Enda Dunican and his associates from the Insitute of Technology, Carlow, Ireland. I for one had a fantastic time. Cheers Enda!
First of all, I would like to propose a minor change. The newsletter production seems to have entered a steady bi-annual state of production. Rather than having the newsletters appearing in the Winter and Summer, it would make more sense to have them being published during the Spring and Autumn terms, which more closely fits with the academic schedule.
The next issue of the newsletter will run in the Spring, which will leave you all with even more time to send in fantastic articles and suggestions!
Of particular note in this issue is a call for paper announcement for a special work-in-progress workshop to be held at the University of Nottingham. Organised by Marjahan Begum and Thomas Green, the workshop aims to gather together researchers together, to discuss problems and to share ideas.
The Unroll Your Ideas workshop is not intended to replace the next annual workshop, PPIG '05, which is now expected to take place at the University of Sussex, Brighton. More details regarding the next annual workshop will be available in due course. Please be sure to watch the announce mailing list for the latest information.
This edition of the newsletter could be potentially read as a special issue on learning and programming. It contains a book review and an associated journal review (we do need more of these! - reviews, I mean).
I hope you enjoy this issue of the newsletter. Please do feel free to take issue with its contents.
As I wrote within all the other newsletter I've edited, please feel free to send me inclusions, comments (and corrections?) at any time.
Looking forward to seeing you either next year, or at Nottingham!
5-7 April 2004, Institute of Technology, Carlow, Ireland.
By Chris Douce Feedback Instruments, UK.
The sixteenth annual workshop of the Psychology of Programming Interest group took place in the southern Irish town of Carlow, the first time the workshop had been held in Ireland. The workshop was well attended and comprised of a mixture of old timers (if you excuse the expression), new faces, and faces that were kindly recalled from earlier workshops (however, there were some people who were missed - you know who you are!)
PPIG 04 comprised of six sessions, where a total of nineteen papers were presented, covering topic areas including computer science education (which was the topic of a talk given by our invited speaker, Sally Fincher), approaches to programming research methodologies and tools (many thanks go our Finnish colleagues who gave an artful performance), and program comprehension.
A Doctoral Student session was held before the formal workshop sessions. This was very well attended, with 18 students in all, who used the time to discuss their work with other doctoral students under the guidance of more experienced researchers. Thanks are extended to those researchers and students who contributed to such a lively session which we hope will be repeated at future workshops.
In the first session of the main workshop Rebecca Mancy presented her work regarding cognitive style which was followed by two papers that examined the tools that educators are using to teach software development (and programming) in the lab. A series of experiments were then reported in a paper by Mark Ratcliffe and Lynda Thomas. Matthew Jadud explored the code compilation patterns that novice programmers exhibit, and the phenomena of repeated compilations without any code changes (I hold my hands up - guilty as charged!).
The later computer science education session saw Des Traynor considering a cognitive model of programming, which was nicely followed by a paper by Jens Kaasboll et. al. that explored the learning of object-oriented programming. Deborah LaBelle (working with Wiedenbeck) examined what factors may determine success during introductory programming courses.
Two presentations examined educational software systems - packages used to visualise the operation of the Bluetooth system, and secondly how distributed applications may communicate using the CORBA system.
Empirical study using a language derived from regular expressions was presented by Anthony Cox, stimulating an interesting regarding the methodology of empirical research.
Christopher Douce presented a number of colourful and tasteful software development metaphors that developers may sometimes use. Sallyann Bryant from the University of Sussex then presented her fascinating on-going field studies exploring the workings of eXtreme teams.
The topics of program comprehension and experimental methodology go hand in hand. It was this combination that made up session six of the workshop. An inter-rater reliability analysis of Good's protocol scheme was presented in a prize winning format by Pauli Byckling, Seppo Nevalainen and Jorma Sajaniemi. Protocol analysis uses text to study cognition. Pamela O'Shea presented a uniquely non-invasive form of software development study using mailing lists.
The final papers were also a resounding success. Connor Hughes and Jim Buckley from the University of Limerick discussed Algorithm animation for concurrent systems, concluding with a work in-progress paper by Catharine Brand. This lead to the final and second invited speaker.
Ben du Boulay from the University of Sussex gave an illuminating presentation where he proceeded to deconstruct all the papers that had been presented, where he suggested an alternative topic categorisation, much to the bemusement of the organisers.
Papers addressing debugging, comprehension, empirical studies, group working, software development (and education) tools and animation were featured. Going hand-in-hand with such diversity, the workshop generated a phrase that I will remember: we work with a collage of metholologies.
Again, a big thanks goes to Enda and his team for organising what was a hugely successful event. The refreshments were pretty good as well! (Photos to appear soon!)
[ top ]
University of Nottingham, UK
PPIG aims to bring together people working in a variety of disciplines and to break down cross-disciplinary barriers.
Despite its name PPIG entertains a broad spectrum of research approaches, from theoretical perspectives drawing on psychological theory to empirical perspectives grounded in real-world experience, and is equally concerned with all aspects of programming and software engineering, from the design of programming languages to communication issues in software teams, and from computing education to high-performance professional practice.
Besides an annual workshop series, PPIG also organises occasional meetings such as this one.
This informal workshop is intended to foster exchange of ideas and constructive suggestions for research in progress. Doctoral students and more experienced researchers will be equally welcome. The intention (depending on submissions) is to use mornings for short presentations and afternoons for discussion.
In order to allow ample discussion in round-table style, numbers will be limited.
Intending participants are requested to notify their intention as soon as possible, preferably by supplying a short (half-page) abstract, to be followed by an extended abstract of 2-4 pages.
The extended abstract should be submitted by 1 November to allow time for review - we shall aim to be inclusive but we may have to limit numbers of acceptances. Accepted abstracts will be posted on the web in advance of the meeting to allow participants to read and reflect on them.
Please email abstracts in PDF format to: firstname.lastname@example.org
Maria Kutar, University of Salford
Thomas Green, University of Leeds
Marian Petre, Open University
Marjahan Begum (workshop chair)
[ top ]
By Chris Douce
edited by Sally Fincher and Marian Petre
Taylor & Francis, 2004
This is a book of two halves. The first, entitled 'the field and the endeavour' maps the territory of computer science education research and presents the notions of research and methdological approaches that are available to practitioners (the ways to travel through the territory).
The first half provides a broad overview of how to 'find things out' and discusses benefits (and potential pitfalls) of various approaches.
The second half is a set of papers that comprise a 'sample' of some of the various types of research approaches that CS education reseachers have at their disposal.
The first section is like a big 'science prologue' that prepares the stage in preparation for an investigative performance that comprises, of course, the papers. It is a performance that works very successfully.
Papers explore the misconceptions that can interfere with programming education, the use of critical enquiry, and the use of programming environments for novice (a topic that was discussed at some length at this years PPIG event). These sit amongst other papers that explore the processes behind the acquision of design skills, and the role that algorithm visualisation could play in CS education.
There is a paper that is theory rich (Rist), describing the area of schema theory and its applicability to the task of learning to program. Complementing this is another that describes a range set of related empirical studies (Stasko and Hundhausen).
Not every paper is to my taste, but this is a reflection upon my methdological upbringing (engineering) rather than the papers themselves. I consider it a fine idea to present papers that use different methodological approaches together in a single volume. In doing so researchers from different disciplines can begin to understand where a certain group of researchers are coming from, thus allowing a whole area of unfamiliar literature to become that little bit more accessible.
I can see myself reaching to the first section on a number of occasions. I can immediately think of two reasons. The first is to remind myself of the breadth of available approaches that there may be at my disposal. When one has ones nose in a particular vein of thought, it is wonderful to be reminded of the the other veins just by raising ones head by a few degrees. Secondly, and importantly the first chapter will help me question the appropriateness of any of my research objectives.
I particularly like the notion of an 'academic trading zone' which the editors present. This is an area where two different areas of enquiry can intersect and learn from each other. It reminds me of what was written earlier regarding the last PPIG conference: the only way to construct a complete collage is to see what interesting bits and pieces other people may have at their disposal.
All in all, I firmly recommend. Packed full of illuminating quotes and a good set of instructive guidelines, with a fine selection of papers to match.
The first issue of this journal was at the beginning of this year.
This journal was considered to be of interest to PPIG participants due to the number of topics it claims to cover. The first issue contains papers that are entitled 'Cognitive Visualisations and the design of Learning Technologies', 'Exploring Student Adaption to new Learning Outcomes', and for those who have an interest in both programming language and notation design, 'Educational Modelling Languages and Learning Design'.
The journal may of particular interest to those working within the area of distance learning. The emergence and development of e-learning interoperability standards is a topic that appears to feature prominently.
Themes that may be considered in this area includes intelligent learning/tutoring environments, computer-mediated communication and social and cultural issues.
The final section of the journal is a section for news in the area. This contains a mix of calls for papers and a set of announcements pertaining to progress on learning technology standards and the release of various new technologies or toolsets.
If you have interests in teaching computer science using distance learning courses, or if you are working with environments to teach languages (whether novices or experts) this journal may well be worth a look. Alternatively, the publisher appears to have a rather nifty website.
Do you know of a journal that may be of interest to fellow PPIG members? If so, please tell us about it. Interested in writing a review, or perhaps you are an editor and would like to introduce your journal to us? Please feel free to send a message to chrisd(at)fdbk.co.uk
[ top ]
September 30, 2004
VLFM'04 is a workshop at the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'04).
More details regarding the workshop can be found at the workshop website.
Details about the VL/HCC'04 conference can be found on the conference website.
Information about the Graduate Student event that is being organised by John Pane can be found at an associated website
October 1-3, 2004
4th Kolin Kolistelut - Koli Calling conference will be held in Koli, North Karelia and hosted by the University of Joensuu.
Kolin Kolistelut - Koli Calling is primarly aimed for people working in the field of Computer Science Education and related research issues. The goal of the conference is to develop the exchange of relevant and scientific information between colleagues working on the same discipline.
Furthermore, Kolin Kolistelut aims to join together the practical teaching experiences and solid research orientation.
Topics of interest include, but are not limited to:
More information can be found on the HCI 2004 conference website.
November 9-12, 2004
Delft University of Technology, the Netherlands
The Working Conference on Reverse Engineering (WCRE) is the premier research conference on the theory and practice of recovering information from existing systems.
WCRE explores innovative methods of extracting the many kinds of information that can be recovered from software, software engineering documents, and systems artifacts, and examines innovative ways of using this information to aid in reengineering, program understanding, system renovation, and related activities.
Since it was first held in 1993, the Working Conference on Reverse Engineering (WCRE) has truly become the center of the reverse engineering community.
Reverse engineering has matured and become a part of every practitioner's vocabulary, and student textbook. It now represents a considerable body of knowledge. Increasingly, the industry is formally incorporating reverse engineering tools and techniques into our systems development activities. WCRE plays the leading role in moving this research agenda forward.
Topics of interest include but are not limited to:
More information regarding the conference can be found at the WCRE 2004 conference website.
November 25-27, 2004
This year's Scottish Education Research Association's conference will be held at the Royal George Hotel in Perth (Scotland!) on the 25th - 27th November.
The Association exists to provides a forum for the educational research community in Scotland and welcomes delegates from the rest of the UK and abroad. The overall theme for the conference is "Professionalism: Development and Practice" and papers are presented within a number of strands concerned with the curriculum, teacher education and policy.
The opening address will be given by Professor Pamela Munn (Dean of the School of Education, Edinburgh University). Dr Jennifer Moon (University of Exeter) will deliver the Saturday morning keynote on "Reflective Practice" and Professor Stephen Ball (Karl Mannheim Professor of Sociology of Education at the Institute of Education London University) will be giving the SERA lecture "Education Reform as Social Barbarism: Economism and the Death of Authenticity".
On a lighter note, the entertainment after dinner on Friday will involve salsa dancing (a little-known Scottish artform), in which all delegates are encouraged to participate!
Registration details can be found at the SERA website
[ top ]
Would you like to tell other PPIGers how you are and what you are doing through the newsletter? If so, please e-mail chrisd(at)fdbk.co.uk.
We would like to introduce the new EUSES Consortium, a community of researchers from Oregon State University, Carnegie Mellon University, Drexel University, University of Nebraska, Pennsylvania State University, and Cambridge University, who are working on the issue of dependability in end-user-programmed software.
Supported by a grant from the National Science Foundation, the Consortium brings together researchers with varied expertise, including end-user programming, software engineering, programming languages, education, and psychology, in order to work on the problem from many different dimensions.
Though not often viewed as software, email rules, spreadsheets, interactive web sites, and word processor macros, and other forms of automation are examples of programs written by end users. However, end users are generally not trained in software engineering, and the resulting lack of rigor can lead to undetected errors that can have negative consequences on par with those of traditional software bugs.
The EUSES Consortium's proposed solution to this problem is not to try to make software engineers out of end users, but instead to help motivate end users to adopt an awareness of quality control, and to help support them in this with behind-the-scenes reasoning and careful collaboration with the users.
At Oregon State University, Margaret Burnett, Gregg Rothermel, and Curtis Cook are working on the End-User Software Engineering Project, with the goal of helping end-users reduce the frequency and severity of the errors in their programs by using program analysis methods to reason about errors, and by encouraging self-directed exploration by the users of the results of the reasoning.
Martin Erwig is researching automatic detection of some types of errors using 'unit inference' in spreadsheets. Margaret Niess and Ellen Ford are researching pedagogical methods to encourage a quality-control culture for users of technology.
At Carnegie Mellon University, Brad Myers is working on the Natural Programming/Debugging project, which is using methods from the Human-Computer Interaction area to investigate the ways people naturally approach programming and debugging challenges. Recent results have included a new debugging technique that lets programmers ask 'Why' questions that reduced debugging time by almost a factor of 8.
Mary Shaw of Carnegie Mellon and Sebastian Elbaum of the University of Nebraska are working on fault detection in web software, using statistical, heuristic, machine mechanisms.
At Pennsylvania State University Mary Beth Rosson's Informal Learning in Software Construction group studies real-world situations and communities that can motivate and aid non-programmers with learning and using end-user programming tools.
Drexel University's Susan Wiedenbeck is researching intrinsic motivation and end users' comprehension/modification strategies. Cambridge University's Alan Blackwell is creating a model of attention investment, to find out how users decide to use programming features.
If these topics interest you, more information about EUSES, its members, and its members' research can be found at the consortium website.
At CHI'04 in Vienna, Brad Myers and Margaret Burnett organized a Special Interest Group (SIG) on this topic. At IEEE VL/HCC, in September, Susan Wiedenbeck will lead a 'Birds of a Feather' session, and Martin Erwig will hold a workshop on spreadsheet research.
Mary Beth Rosson is working with other collaborators on an NSF-supported grad student consortium on diversity in end-user development, also at IEEE VL/HCC.
We welcome opportunities to work with others; see our web page for opportunities.
Administrative Assistant, EUSES Consortium
*EUSES is an abbreviation for End Users Shaping Effective Software
Stephen Clarke, who chaired a session at PPIG O4, presented a paper two years ago which explored how the cognitive dimensions framework could be adopted to evaluate the usability of libraries. Continuing his usability studies Stephen has since published a paper in that reputable periodical Dr Dobb's Journal. Congrats go to Stephen on his success!
A link to the full text of Stephen's article can be found here: API Usability
Editors note: A peruse of Dr Dobb's Journal can sometimes yield some interesting finds and is well worth an occasional look through.
Stephen also maintains a
cognitive dimensions web-log.
Gerold published a paper at the ESEPG conference that may be of interest to readers. It introduces the concepts of 'communication reliability' and 'communication distance' in a specifc project/organisational context.
You can view his paper at by following this link: Communication Reliability
The approach allows 'soft' aspects of a project setting to be quantified and is helpful in analysing and improving them.
There are a number of research questions associated to this paper. These are:
I have just finished an INRIA Research Report "Dynamic Aspects of Design Cognition: Elements for a Cognitive Model of Design".
I will be most grateful for every remark, because this text is of course being submitted for publication!
The text presents elements for a cognitive model of individual design. It starts with a discussion of two approaches to design, the traditional cognitive viewpoint on design, i.e. symbolic information processing (SIP), represented by Herbert A. Simon, and its main alternative, i.e. the "situativity" approach (SIT), mainly represented by Donald Schön.
The approach that I propose and that is based on research that I have been carrying out since the Eighties, supplements and integrates the SIP and SIT approaches, in a dynamic cognitive approach to design.
The report is available here: Dynamic Aspects of Design Cognition: Elements for a Cognitive Model of Design.
[ top ]
By Chris Douce
Being someone who may occasionally be termed a professional programmer, I have been persecuted by an integer. This number has followed me around, has intruded in my most private data, and has assaulted me from the pages of public listings.
This number assumes a variety of disguises, sometimes causing problems that are relatively small, other times creating problems that can take a significant amount of time to fix.
I am, of course writing about the magical number zero.
One of the most obvious areas where zero introduces confusion is the with the issue of array indecies.
Being brought up on a diet of various types of home computer Basic I soon became aware of a difference that was a little more subtle than commands used to change the VDU colour. I found that different dialects of presented different ways as to how the zero'th index in an array was addressed.
Whilst attending a 'for fun' programming class many years ago to learn the rigours of Basic programming (my first language?), the tutor used what I thought to be an interesting heuristic in attempting to make the array situation clearer.
The heuristic was to increase the size of the array by one and for the student to forget about using the zero-th element altogether.
This confusion has continued to haunt me to this day. Recently I discovered that the current implementations of Visual Basic support reassignment of indeces allowing the programmer to choose what start indecies he or she wishes to use.
Today, if faced with source code that appeared to ignore the first element of the array, I would wonder why on earth the first element had been reserved and why there were no comments to explain the reservation! (Whether this is a reflection upon my expertise, or on my level of paranoia, I do not know).
The more one considers programming operators where an index can be found, more instances of the zero can be found.
Graphical controls such as tabs or list boxes being a further example. Not so long ago I was faced with the situation of loading a control with data, where the source array that was indexed that little bit differently to the widget array.
Another control, a text list box, could be commanded to unselect all selected items. How do you do this? You send it the value of -1.
I have sometimes had to delve into the unfortunate world of bit shuffling and assembly language - setting up registers of data to send them over a wire to another piece of hardware that will hopefully do something on your command. In the world of physical hardware, the value zero has a very profound meaning.
Zero indexed arrays, from a software engineering and efficiency perspective makes complete sense. In fact, it would almost seem silly (to many of us) to consider anything else.
The issue of zero does stop at simple graphical controls or array indecies.
Consider for a moment databases and data tables. A collegue turned to me not so long ago and asked, 'These data tables, they generate a unique primary key, right? Do they begin at one or begin at zero?'. I wanted to answer the question, but I couldn't. Which was it? In the particular implementation of a relational database that I was using, the answer was one.
Does this make sense? Possibly. Is it possible to conceptually confuse an order numbered zero with an order that doesn't exist? I personally would not like to be assigned customer number zero.
Many modern imperative programming languages support some form of ennumeration. If ennumerations can be indexed using loops, what value should they start at? Introspectively, if one is refering to physical objects within an ennumeration, it would feel odd for the first item to be labelled zero.
Ennumerations are, in essence, simple data structures. If combined together, the situation can become significantly more complicated.
Take the Java language Vector class (a name that positively screams confusion).
Some programmers may be tempted to distinguish between null and zero data items. This intrinsically sounds like a very bad idea. Common sense tells that one should choose a convention and stick to it.
The area where more often than not where I have become unstuck is when I have to construct data structure iterators. Here I am faced with a choice. Do I add a less than or equals or choose less than and add one to the value I want to count up to? I have not quite made up my mind. Either way, it shouldn't make much odds, since hopefully your modern optimising compiler may be able to make a decision for you.
Which is inherently easier to programmers? Is it making decisions based on whether something is equal easier than figuring out if something is smaller or larger?
I have to confess that iterators in modern languages in C# and Java have taken the fun away of working with arrays. I feel that using iterators would reduce the number of errors in comparable fragments of code where a comparable fragment uses the more 'traditional' forms of looping construct, simply because the numbers zero and one are shifted out of the equation.
This effect on error is, of course, pure conjecture. It is, I feel, something that would be interesting to test empirically.
There is, of course, one case of zero that may forever thwart a programmer - the famous Divide by Zero error. Once you know it, it ceases to be an obvious gotcha. It may be still there, however. It may reside in code in the form of a latent error, a waiting pathogen - an exception waiting to be raised.
A brief history of zero can be found at: A history of Zero
Thanks goes to the participants of Stephen Clarke's weblog for inspiring these ruminations!
[ top ]
For those of us who appreciate the archane, I recently discovered this link:
Documented programming languages
On a related note O'Reilly has made available a huge poster which plots the lineage of over 50 languages. If you have an empty wall in your lab, this may be just what you are looking for.
O'Reilly Language Poster
A programming language that looks quirky and interesting Orthogonal
I've included this journal in an earlier newsletter, but it's worth presenting again in this issue: Computer Science Education
An interesting essay that by a gentleman called Paul Graham who explores the intangible notion of Great Hackers
[ top ]
Many thanks go to Paola Kathuria and Maria Kutar for the assistance they have given during the production of this newsletter.