We (me and Richard Bornat) seem to have a test that predicts ability to program with very high accuracy before the subjects have ever seen a program or a programming language. we have a test which picks out the population that can program, before the course begins. We can pick apart the double hump.
We don't know exactly how/why it works, but we have some good theories. A draft paper which incorporates some of the criticism we got at Coventry mini-PPIG in January and the University of Kent and all other relevant files are available on my website.
We are planning to conduct the test in a broader scale. Please contact us if you are interested to collaborate.
I am a first-year researcher using qualitative narrative-communicative research techniques to investigate the community of Agile Systems practitioners. I am particularly looking at notions of community identity, communication, boundary and space as demonstrable in conversational storytelling and personal narratives from this practitioner-group.
I have recently conducted a pilot study, incorporating narrative interviews supported by field observations, of a small software development company in the South of England. Preliminary analysis supports the view that this approach, when further applied to the community of Agile Systems developers, will provide potentially interesting results.
Any suggested references, problems, questions, concerns, suggestions, or just general interest from PPIGers would be greatly appreciated. Please feel free to contact me at j (dot) m (dot) hunt (at) sussex.ac.uk and let me know any thoughts you may have!
Brad Myers developed and presented a new overview of End User Programming (EUP) as an Invited Research Overview at the ACM SIGCHI conference, with help from Margaret Burnett and Andrew Ko.
The presentation slides are available
The extended abstract is available
The abstract of the paper is summarised below:
In the past few decades there has been considerable work on empowering end users to be able to write their own programs, and as a result, users are indeed doing so. In fact, we estimate that over 12 million people in American workplaces would say that they "do programming" at work, and almost 50 million people use spreadsheets or databases (and therefore may potentially program), compared to only 3 million professional programmers.
The "programming" systems used by these end users include spreadsheet systems, web authoring tools, business process authoring tools such as Visual Basic, graphical languages for demonstrating the desired behavior of educational simulations, and even professional languages such as Java. The motivation for end-user programming is to have the computer be useful for each person's specific individual needs.
While the empirical study of programming has been an HCI topic since the beginning the field, it is only recently that there has been a focus on the End-User Programmer as a separate class from novices who are assumed to be studying to be professional programmers. Another recent focus is on making end-user programming more reliable, using "End-User Software Engineering."
This paper gives a brief summary of some current and past research in the area of End-User Programming.
The package I wrote about last year: "Sidebrain: a programmers' memory aide" is now available for people to try, at Sourceforge
Also, I'm working on a project to provide higher-level editing facilities, with the aim of exploring what level people think of program changes at (by looking at which of the new facilities they use, and which ones they ignore and prefer to continue with other techniques). The software for this is available at Sourceforge where a series of screenshots are also available
I completed my Ph.D. study in Computer Science recently in Wayne State University, Detroit, MI, USA under supervision of Prof. V. Rajlich. My dissertation title is "Cognitive Aspects of Software Engineering Processes". The abstract is as below:
Software engineering activities are to process a large amount of knowledge and therefore, the cognitive process is mainly involved. Studying the cognitive process involved in software engineering can greatly help us to understand the whole process and to improve software engineering research.
In order to study the cognitive process, we developed an empirical method that includes dialog-based protocol and self-directed learning theory. The dialog-based protocol is based on the analysis of the dialog that occurs between programmers in pair programming. It is an alternative to the common think-aloud protocol and it may minimize the Hawthorne and placebo effects. The self-directed learning theory is based on the constructivist learning theory and the Bloom taxonomy. It captures the specifics of the programmer's cognitive activities and provides an encoding scheme used in analyzing the empirical data.
We conducted a case study of expert and intermediate programmers during incremental software development. Compared to intermediate programmers:
We also conducted a case study on program debugging, and found that programmers apply the cognitive activities at all six Bloom levels and move from lower one to upper one in order to make update. Program debugging is a more complex activity than incremental software development.
A case study on pair programming in software evolution class projects was also performed. The results of the case study showed that paired students completed their change request tasks faster and with higher quality than individuals. They also wrote less lines of code and used more meaningful variable names.
The related publications are as follows:
Xu, S. and Rajlich, V., 2005, Dialog-Based Protocol: An Empirical Research Method for Cognitive Activity in Software Engineering, Proceedings of the 4th ACM/IEEE International Symposium on Empirical Software Engineering, pp. 397-406, November 17-18, 2005, Noosa Heads, Queensland, Australia.
Xu, S. and Rajlich, V., 2005. Pair Programming in Graduate Software Engineering Course Projects. Proceedings of the 2005 IEEE Frontiers in Education Conference (FIE 2005), pp. FIG-7-FIG-12, October 19-22, 2005, Indianapolis, Indiana.
Xu, S., Rajlich, V. and Marcus, A., 2005. An Empirical Study of Programmer Learning during Incremental Software Development. Proceedings of the 4th IEEE International Conference on Cognitive Informatics, pp. 340-349, August 8-10, 2005, Irvine, California.
Xu, S. and Rajlich, V., 2004. Cognitive Process during Program Debugging. Proceedings of the 3rd IEEE International Conference on Cognitive Informatics, p. 176-182, August 16-17, 2004, Victoria, Canada.
Rajlich, V. and Xu, S., 2003. Analogy of Incremental Program Development and Constructivist Learning. Proceedings of the 2nd IEEE International Conference on Cognitive Informatics, p. 142-150, August 18-20, 2003, London, UK.
If you need more information, please feel free to contact using Simon dot Xu (at) algomau.ca. Simon is an assistant professor in the Department of Computer Science, Algoma University College, Laurentian University, Canada.