| Psychology of Programming Interest Group |
![]() |
  | ![]() |
|
|
|
| ||||||||||
Editor: Chris Douce
Welcome to the Spring 2007 edition of the Psychology of Programming Newsletter.
This issue contains some preliminary information about the forthcoming workshop which is to be held in Joensuu, Finland. It also contains a review of the work-in-progress workshop hosted by IRIS, University of Salford. Many thanks to all the participants who wrote about their research in this issue.
A book entitled, Dreaming in Code is reviewed in the book, conference and journal review section. Remember, if you have read anything that you may pique the interest of members of the loose and eclectic PPIG community, please don't hesitate to send those submissions in. The fourth article of this issue briefly considers some of the difficulties of learning a new programming language.
As ever, Ligher Tones contains a mixture of the sane and the silly.
A final question. Would you like the newsletter to change? Would you like it to become more dynamic or just different? Let's discuss this on the mailing list. I look forward to hearing your views.
I hope you enjoy this issue. Looking forward to seeing many you in Finland!
Chris Douce
c.douce(at)open.ac.uk
The 19th annual workshop of Psychology of Programming Interest Group (PPIG) will take place in Joensuu, Finland in from the 2nd to the 6th of July 2007.
PPIG'07 will be arranged in the tradition of earlier PPIG workshops: interesting presentations on fully developed research and on exciting on-going projects, a doctoral consortium, and with ample time for discussions among attendees. In order to make the travelling worth the trouble, there will also be new activities: exciting tutorials and the new PPIG Challenge. Thus, the technical program will consist of:
Papers concerned with psychological aspects of software development presenting recent
results, findings and developments are invited. Best papers will have the opportunity
to be published in a special issue of
Human Technology: An Interdisciplinary Journal
of Humans in ICT Environments.
Tutorials are intended to provide an in-depth review of a topic of interest and should include a set of handouts outlining the material covered in the tutorial. The program committee especially welcomes proposals for tutorials presenting research methodology with hands-on exercises, and tutorials presenting practical ways to apply well-researched theories in practice.
This year Psychology of Programming Interest Group Workshop will host for the first time a PPIG Challenge, where the best improvement to an existing system or notation, based on psychological principles, is rewarded. the Challenge seeks for the best idea or proposal, thus, a running (improved) version of a system is NOT required in the presentation - a mock-up, for instance, is sufficient. Accepted reports presented at PPIG 2007 will appear in the workshop proceedings.
This year Psychology of Programming Interest Group Workshop will again host a joint doctoral consortium. The event is for research students at all stages of doctoral study.
For additional information please visit the
PPIG 07 website
where
detailed travel information
can be found.
The deadline for paper submissions is 15th April 2007, and the deadline for the receipt of tutorial proposals is 14 March 2007.
[ top ]
January 4-5 2007
Informatics Research Institute, University of Salford, UK
Several of participants of event have taken the time to describe their presentations and tell us what they gained from the WIP workshop.
During PPIG-WIP a session entitled 'Critical Thinking in Research' was hosted by Marian Petre and Judith Segal (with significant contributions by Thomas Green). A number of the issues raised following the presentations were discussed.
Ann Abraham presented her results from her preliminary study into Sensemaking in Web-based Learning Activities. The Problem Domain was explained; when faced with a new task one needs to search, collect, understand, interpret and make-sense of new information sources to help fill gaps in one's knowledge.
The study objective was to capture the range of strategies students employed when undertaking research-related information search tasks in web-based environments. Three data collection techniques, including Think aloud during observation, were used; from inductive analysis, five discrete categories of information interaction strategies emerged, namely Search, 'Evaluation for Selection', 'Evaluation for Use' which has subgroups 'Evaluation for Utility' and 'Evaluation for Personal Fit' and finally 'Use/Sensemaking' category.
The findings re the Search, and 'Evaluation for Selection' categories tended to corroborate existing literature, but our attention was drawn to the insight gained into the complex nature of the 'Evaluation for Use' and the boundaries between that and the 'Use/Sensemaking' category. These two complex groups of strategies are less evident in established Information Seeking and Searching Models.
The results were briefly discussed with reference to 'making sense': Ann suggested that results indicated students were 'sensemaking' at each stage of the search-evaluate-use process i.e. initially, they appeared to tacitly reference mental models/internal representations for their decision making, but evidence of a switch from tacit to explicit knowledge could be seen when their own external representations of the located information began to emerge during 'Evaluation for Personal Fit'.
Overall the five discrete categories offer different challenges for interaction design and Ann indicated that 'Evaluation for Use' is being considered as the richest environment for further research.
WIP-PPIG 2007 was a friendly, well-organised event which provided a rare opportunity for research students to gain first-hand feedback and encouragement, via formal and informal interactions with experienced Researchers such as Thomas Green. It was good to mix with a group of students whose paths would not necessarily cross, except in a mixed forum such as this.
Whilst my presentation did not generate all the discussion I had hoped for, I gained from general discussions around other presentations and the group session on Friday morning was really useful.
This is the abstract to my paper:
Very little is known about the process by which end-user developers audit and debug spreadsheets. Any research pertaining to the development of spreadsheet debugging methodologies or automated spreadsheet auditing tools would benefit from information on how people actually perform the debugging process in practice.
This paper describes a current ongoing experiment designed to record and analyse the behaviour of industry professionals in the debugging of spreadsheets. The results of this experiment will enhance our understanding of software debugging in general, and the spreadsheet debugging process in particular. To date, the authors have collected and collated the results from 12 participants taking part in the experiment. The experiment involves participants debugging a spreadsheet which has been seeded with errors.
Crucially, a tool has been developed to record the time and detail of all cell selection and cell change actions of individuals when debugging a spreadsheet. More complex spreadsheet activities can also be identified from the resulting data log. These include copy and past, undo typing, redo typing and drag-and-fill. The authors aim is to conduct the experiment with up 20 industry professionals. Recently, the opportunity has arisen for the experiment to be conducted with between 50 and 80 final year accounting and finance degree students.
The event was very insightful. Most significantly, the comments and feedback were much appreciated and very helpful. Also, the interest shown in the research we are undertaking has given renewed vigour to our endeavours. There was a good social aspect to the event: meeting fellow postgraduate researchers and enjoying a night out in Manchester. All in all, a well organised, informative and enjoyable workshop!
My current work lies on the periphery of psychology of programming topics but there are connections between the issue of accessibility (making computer applications and services available to users of all abilities and ages) and programming. My presentation explores some of these connections.
Accessibility is an issue of increasing importance to software developers and engineers due to strengthening legislation. I began by outlining what accessibility is and the various legislative frameworks. I then presented a small number of international accessibility standards and initiatives.
The third section establishes the link between accessible software and programming:
I consider how and whether existing software tools provide adequate accessible support, consider the programming idea of unobtrusive Javascript and whether it could make web programming more difficult since may become spread over different files and consider whether the current accessibility APIs are as effective as they could be.
By studying the topic of accessibility we are forced to consider how different modalities are used whilst programmers work with and construct software. By studying the ways in which we can support all communities of programmers we may in turn learn more about the cognitive issues that all programmers face.
I came away from the workshop with pointers to subjects and armed with a whole range of questions that I have not forgotten about. Since the workshop I have made some progress with understanding accessibility APIs and how they work, but I still have a long way to go before I have anything to write up!
For my talk I continued my story from PPIG'06 and talked about where my research is going. I am working with a company which produces mobile applications and am looking at their software development processes and the impact they have on social communication. As part of this we are looking at implementing certain practices from agile software development. The aspect that I presented was the issues that we had had with implementing 'information radiators' (tracking project progress through the use of index cards chart systems) in the company as part of an informative workspace environment.
Sadly, due to time considerations I had to cut myself and the following discussion
a bit short. However, I learned that most people find feedback devices and active
build monitors in the workplace (especially
Nabaztag rabbits) quite interesting.
I also noted the common reservations people have about lumping research
under an 'agile' banner.
A photograph of a Nabaztag rabbit
The workshop itself was wonderful, interesting and beautifully organised. I have much to go away and think about now, not just from my talk but also the other talks and from the good session run by Thomas Green, Judith Segal and Marian Petre on Critical Thinking in Research.
Best of all I won a prize (in fact, two).
Firstly, I won the Rose Elliot Prize for Time Control (photo attached), after successfully editing my talk down to 15 minutes. This prize made me inordinately happy as, well, er, I have never, ever, been known for my time-keeping skills.
A photograph of my time keeping prize
Secondly, my name was drawn to receive funding from PPIG to go to Finland for PPIG'07. This was brilliant for me, as I had not been sure I could afford to attend. This may not be so good for everyone else as it means I shall try to continue telling people my research story (and people may become bored of this after a while!) I just hope that everyone else from the workshop at Salford will be able to join me there.
I reported a study with 31 teams of developers, which was done as a part of research for my PhD. The study was conducted in order to determine the effect of different kinds of knowledge and participation on the results of a development process. In a quasi-experimental design, the independent variable was kind of knowledge and participation, varied according to three levels; to this end, developers were confronted with a technical system and its users in varying ways. The dependent variable was the kind of system developed. Almost no effects could be detected.
The discussion at the workshop focused on possible reasons for lacking effects of the introduced manipulation. A reason several participants agreed on was a ceiling effect. Furthermore, Prof. Thomas Green conveyed helpful ideas regarding an application of the Cognitive Dimensions framework to my research. This approach will be pursued further. Finally, I greatly appreciated receiving the "WIP-PPIG Prize for Workmanship".
I presented my doctoral research which is aimed at investigating how novices understand object-oriented terms like 'class', 'object' and 'part-of'. The study is conducted as a phenomenographic study, utilizing qualitative interviews as the primary empirical data. The study will be used to hypothesise about the process of learning programming at a higher educational institution.
My paper focussed upon the issue of trust within e-commerce and the applicability of cognitive dimensions framework of uncovering insights into this. The paper formed part of PhD that I had just begun and the workshop itself proved to be incredibly helpful, and also gave me an opportunity to see the inner workings of academia.
Having never been or presented at a workshop before I was largely unsure of the processes involved. Overall, I gained a huge the amount of information and direction from simply having one to one, and large discussions with the group. It did exactly what it said on the tin.
Work Summary: Many people believe that access to digital content (e.g., medical, financial, and student records) should be restricted according to some set of policies. Towards this end, several languages have been developed so that, if people write their policies in one of the languages, then machines can determine which accesses are allowed; that is, machines can enforce the policies. The goal of my project with Moritz Becker is to evaluate the usability of some of the languages. My goal for WIP-PPIG was to get a better idea of how to do this.
What did I learn at the workshop? I learned that usability studies are even more work than I imagined, and that applying the cognitive dimensions framework is probably a better first step. In addition to what I learned, the talks gave me food for thought. I truly enjoyed all of them. It's two weeks later and I'm still thinking about what could be done to help programmers with physical disabilities, how trust can be fostered in cyberspace, and whether Agile concepts can be applied to learning and using policy languages.
Most importantly, I think about the ways in which the people at the workshop fostered a sense of community. At some level, I suspect the keys are humility, a sense of wonder, and a focus on the good that each person brings to the table. Hopefully, I'll remember that for a very long time.
[ top ]
by Chris Douce
by Scott Rosenberg
Crown Publishing, 2007
ISBN 978-1-4000-8246-9
Dreaming in Code is a fun book. It is a book about a group of programmers and the discipline of programming. Dreaming in Code takes the reader on two journeys. The first journey follows a programming project run by Mitch Kapor who founded Lotus Inc., the company that developed the Lotus 123 spreadsheet and the Lotus Agenda information management software.
The project that Kapor founded had the intention of creating a product that had the 'soul' of his earlier Agenda product. Back in the nineties I have vague recollections of Agenda. As well as 123 being installed on a number of IBM office computers that I used to meddle with, I recall having started Agenda once or twice. I remember it being talked about as if it was a mysterious piece of magic - that is was powerful in ways that the owner of the PC could not articulate. I also remember that it took an age to load!
At the time, and in this office, this version of Lotus Agenda was unused. Agenda ran on DOS machines and sat 'in software time' (a common, and flexible theme throughout the book) just before the world of Windows (I ask Mac and Linux users for forgiveness) and the consumer availability of the Internet. Agenda wasn't the commercial success that Lotus 123 became, and Kapor moved on.
Dreaming in Code charts the development of an 'Agenda successor' over a period of three years. The story is a compelling one. The characters are clearly presented and the problems they grapple with are clearly discussed. Rosenberg's writing left me eagerly wondering 'what happens next!?'
To some degree, Dreaming in Code could be described as a popular ethnography of a particular software development team. I particularly urge researchers who are studying groups of programmers to give this book a go.
Towards the middle of the book I started to reflect on my own experience as a programmer (or software 'engineer'). Although I didn't verbalise what I was thinking, Rosenberg asked the questions that I was thinking, namely, 'why all this chaos?' and 'where on earth is the process?'
These questions start what I consider to be the second journey - a ride into the thorny and important topics of methodology. Rosenberg discusses and explores different approaches to software design, presenting an effective potted history of where we have been and what is being talked about today.
Some of the topics discussed resemble some of those explored by PPIG members: how programmers work together, the difficulties within computer science and programming education, the complexity of recursion (apparently there's a whole book on the topic!), the naming of identifiers (and the misapplication of Hungarian notation) and, of course, the classic case of the goto statement.
A central theme is, of course, the inherent complexity of software systems and the approaches (and tools) that programmers adopt to manage complexity. Rosenberg also presents the paradox that high-levels of individual productivity can be present within a project that appears to be moving at a glacial pace.
I place Dreaming in Code in the same category as Fire in the Valley and A Brief History of the Future. Perhaps I enjoyed it because of could relate to so many of the ideas presented within the book - I have been a programmer and I have my own 'hobby horses', just as I have witnessed other developers ride theirs as Rosenberg cleverly presents.
Rosenberg has clearly taken lots of time to learn about the practice and craft of programming. I disagree with his comment that programmers 'do not read about their own discipline'. I certainly hope some will read this book (as well as the literature about software disasters). From my perspective? It's packed with interesting quotes. I'm even tempted to read it again. Recommended.
Many thanks to the Open University library for ordering this copy.
The book also has a
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 c.douce(at)open.ac.uk
[ top ]
by Chris Douce
There are two new programming languages battling for attention on my technology horizon. These languages are Ruby and Python and both are sometimes mentioned in the same breath. You seem to be able to do similar stuff with these newer languages than you can with older ones: PHP for web pages and my old favouite, Perl for 'glue code' and 'write once' utility scripts.
I have three questions, 'what would I learn by getting stuck into one of these new languages?', 'would I be able to work faster?' and 'can I afford to find the time when I know perfectly well that I can create a solution using one of the other languages that I am already familiar with?'
The expending of time learning a new language can be though of in economic terms - will it impact on the work that I have to do? It might do, but I have no feeling 'for the figures'. I have to make a judgement based on instinct. If I need a script, I write (or plagarise) some Perl code. If I need a web page, I might write some PHP (and perhaps even connect the two together somehow).
Every programmer will know there is more to learning a language than learning it's syntax. There are a range of coding idioms to get to grips with. There are likely to be some well known 'code' hangout places - sources for sources and programmer discussion. There is also the issue of the development tools: the libraries, an arcane command-line interface and maybe the blessing of an IDE.
Stepping further into a new language will present you with the new challenge of how to debug your code, and whether sets of mysterious looking libraries will be present on your chosen computing platform. As a new language novice you might make the mistake of choosing the 'wrong way of doing things', like choosing an iterative solution where the culture and structure of a language requires a recursive one.
You need guidance, so where might you look? You might search for opinions or code samples on the web. You might look for book reviews to find out which text book you should browse through.
The only way to really learn the predicalictions of a particular language is to
go ahead and build something. When it comes to Python and what it can (or cannot)
do, I am particularly interested in the
One Laptop Per Child project
(OLPC) from MIT. Since this laptop is something
that geeks can meddle with it has inspired me to wonder whether I could write some
code to solve some rather mundane XML editing problems. 'Perhaps I might be able
to use the software on a desktop PC too?', I idly mused.
This is like putting the cart before the horse to some degree: wishing to write some code on some fancy new piece of kit before you have a complete picture of the problem that you wish to solve. But the very act of learning a new programming language, initiated from pure interest, may well be good for me even if the resulting software may not be of any practical use.
I have to make a conscious decision to open up my text book and fire up my tools so I can begin to grapple with a range of code samples. Even getting to this point can sometimes difficult. If I had a deadline to do something, perhaps I would push my book and tools to one side and use what I know has worked before.
Are Python and Ruby 'silver bullets'? Of course not, but they do represent an element of armoury that programmers can use to tackle problems. Just as Prolog helped me to understand recursion a little more, learning a new language may help me to reflect further on my experiences with the ones I already know.
[ top ]
University of Kent at Canterbury, 2nd April 2007
The Higher Education Academy Centre for ICS in conjunction with The University of Kent at Canterbury are holding the 7th One-Day Conference on the Teaching of Programming, to be held at the University of Kent.
The
registration site is now open.
Programme topics include:
Inclusive Education in Computer Science
The 12th Annual Conference on Innovation and Technology in Computer Science Education
25th-27th June 2007, University of Dundee, Scotland
The program will consist of:
The University of Dundee has a strong reputation in developing computer systems for users with special needs, accessibility of digital media and widening participation in higher education.
For more details, and to register your interest visit the
ITiCSE website
Coeur d'Alene, Idaho, USA, 22nd-26th September 2007
Areas of interest include, but are not limited to, the following:
Visual Languages and Human-Centric Computing Symposium website
Would you like to tell other PPIGers how you are and what you are doing through the newsletter? If so, please e-mail c.douce@open.ac.uk.
Taking the example of groups elsewhere we have set up a
Coding Dojo in Brighton, UK. In the two-hour fortnightly
session, up to twelve developers take turns solving a programming problem.
The rules of the Dojo are quite simple. The meeting room has one computer attached to a projector. The ringmaster explains the challenge for the week. Two programmers are selected to address the problem, one acting as the driver and one the navigator.
They must speak continually about how they are solving the problem, so that the entire group follows what is being done. If the group fails to understand then the pair must pause to explain. One half of the pair is swapped out every five minutes. The language to be used and the problem to be solved vary from session to session.
The fortnightly session was directly inspired by Laurent Bossavit and Emmanuel Gaillot,
who set up the
French Coding Dojo, and also by the offshoot
Finnish Coding Dojo in Helsinki. The underlying concept
is based on
Dave Thomas' Code Kata.
So far the sessions have been very interesting, energetic, and most of all fun. The dojo system appears really very good for encouraging learning and knowledge-transfer across experience levels. Feel free to get in touch if you want to hear more, come and join us, or would like advice about setting one up yourself.
[ top ]
by Chris Douce
Security is a topic that has been considered from time to time within PPIG (see
Jitan's work-in-progress review). Bruce Schneier
addresses elements of the
psychology of security
at a recent conference (RSA 07).
Whilst looking at something entirely different, I stumbled across a 'code of practice'
(not to be confused with 'practice of code') I had never seen before. On this occasion
it was the
Software Engineering Code of Ethics and Professional Practice.
In this case, I prefer the long version to the short version.
On a related note, I stumbled across a site called
Rosettacode, a
MediaWiki based site that aims to provide solutions
to common problems in a number of programming languages.
What's all this I hear about a mad place called Second Life? Someone tells me that you can write script to create a whole range of virtual objects, and even sell them to others using a famous auction site. Apparently there's a thriving virtual property market too! (Please feel free to correct me if I am sadly mistaken).
Will Second Life be an interesting end-user programming research vehicle, I wonder?
I recently heard about (again, through Slashdot) about a
paper in Dr. Dobb's Journal that introduces the Second Life programming
language: the
Linden Scripting Language.
Other researchers are using the environment to determine whether it will give real
educational benefit. Find out more at
Sloodle.com
(I have to confess I have never used Second Life. There are two reasons why not. The first is that the graphics card on my home PC isn't up to the job, and secondly I have to confess I have enough trouble remembering where to go in my first life, never mind doubling the complexity by acquiring a second!)
Back to something a little more serious. A new FOSS study has been released by an
international consortium led by the University of Maastricht. It compares free and
proprietory software and considers the direct and indirect economic impact of FOSS.
Comments about this study can be found by viewing some corresponding
Slashdot discussions, if you the usual jokes.
[ top ]
Many thanks go to the effors of the reviewers of this edition of the newsletter. All your comments and words of wisdom are always appreciated.