An analysis of the present state of Psychology of Programming in Italy

Tags:

By Eleonora Bilotta eleb@abramo.it
Interdepartmental Centre of Communication (CIC)
Department of Educational Sciences
University of Calabria, Rende- Cosenza, Italy

Introduction

This paper is an analysis of the state of the art of the Psychology of Programming in Italy. The first step is to ascertain what Psychology of programming means in Italy, what sectors it covers and the definition and identification of this area in the Italian research. Two kind of problems were encountered:

a) in searching for information, first because there are so many disciplines that could be grouped together under the title of Psychology of Programming and second because there is a variety of journals, books, workshops of these disciplines that could be considered interrelated or have some affinity with Psychology of Programming, but there is nothing about Psychology of Programming as a whole;

b) the organisation of the work, how to present the contents that seem very incomplete and unfinished. It was decided to present all the disciplines contributing to Psychology of Programming and to make an analysis of Italian research that could be of interest for this area.

What is the Psychology of Programming sector?

In Britain, in the USA and in other countries the label Psychology of Programming has been adopted to indicate a research area that investigates "the psychological aspects of programming and the computational aspects of psychology", where 'programming' signifies all the meanings including the process of software development. In particular, the psychological issues that pertain to programming, the theoretical and methodological issues of design, skill acquisition, expert programming and other fundamental problems are investigated. The main topics (drawn on the 10th annual Workshop of the Psychology of Programming Interest Group, PPIG) are:

  1. programming tasks (e.g. comprehension, creation, documentation, modification, debugging, testing);
  2. reasoning and planning (e.g. strategies, programming plans, formal reasoning, display-based reasoning);
  3. cognitive models;
  4. programming notations and representations; 5. programming paradigms;
  5. learning programming;
  6. software engineering (e.g. programming in the large, re-use, maintenance, scale, specification);
  7. social and organisational issues;
  8. collaboration (including CSCW);
  9. programming tools (e.g. environments, CASE, editors, navigation tools);
  10. differences among programmers.

In Italy, this area of research does not seem to be clearly identifiable under this label even though there are some research groups and projects that could be grouped within this sector. Since Psychology of Programming is a multidisciplinary sector whose components attempt to address the topics I mentioned before from different perspectives, these disciplines will be presented to ascertain what is pertinent to Psychology of Programming. (Apologies to English PPIGgers who are already acquainted with these concepts but I should like to spread through the Italian academy this paper to let other researchers become active members or at least to get information about this area).

Disciplines contributing to the Psychology of Programming

Computer science and Software Engineering

Computer Science deals with the study of algorithmic processes that describe and transform information. This study is about theory, analysis, design, efficiency, implementation, application and automatization of software development.

Computer scientists have developed various kind of techniques to support software design, development and maintenance, high-level programming language, User Interface Management System, User Interface Design Environments and debugging and prototyping tools. On the theoretical side they have worked on system architectures, abstractions and notations, software reuse, visualisation and virtual reality systems.

Software Engineering analyses design problems through a simple but non-linear model which foresees: requirements analysis and definition; system and software design; implementation and unit testing; integration and system testing. There is also the rapid-prototyping model which allows the realisation of software packages and foresees the collection of software requirements, rapid design, prototyping, evaluation, revision and product engineering. It has been calculated that about half of the software developed over recent year has been devoted to the user interface systems. This explain the fact that a reasonable proportion of the effort and energy spent on software development has been concentrated in guaranteeing usability for this user interface. Software developers are now giving greater attention to the characteristics of the system that most concerns the users: usability.

Italian research centres within these disciplines. There are 20 or more Engineering Faculties that are active in the Computer Science and Software Engineering fields. Sometimes they offer Doctoral programmes in Computer Science. The research activities carried on in these academic departments can be roughly grouped in the following areas: Computer Graphics, Computer Vision, Data Base, Fuzzy logic, Informatics, Artificial Intelligence, Multimedia, Neural Networks, Programming, Languages and Software Development, Information Technology, Engineering to mention just a few. University of Pisa (http://www.di.unipi.it/ricerca/aree/aree.html) Some research areas are: Algorithms and Data Structures, Architecture of System Elaboration, Artificial and Robotics Intelligence, Data Base and Information Retrieval, Computational Mathematics, Programming Languages, Software Engineering, Logic Programming, Theory of Functional Languages Types, Logical and Operational Methods. University of Udine (http://www.dimi.uniud.it/~tasso/general.html) The Artificial Intelligence Laboratory of the University of Urine was founded in 1984 within the Department of Mathematics and Computer Science. It has been very active in several research areas of artificial intelligence, robotics and other traditional fields of Computer Science. University of Turin (http://www.di.unito.it/home.html) Department of Computer Science The Department hosts all the researchers of the University of Turin that are active in the Computer Science field and is the main support of the curriculum in Computer Science that is offered by the Faculty of Mathematical, Physical, and Natural Sciences. The research activities undertaken in this Department can be grouped in the following areas:

Artificial Intelligence, Programming Languages and Tools, Image Processing, Information Systems and Databases, Information Technology, Logic Programming and Automated Reasoning, Mathematical Logic, Modelling and Analysis of Computing Systems, Models for Decision Making and Management, Education and Theoretical Computer Science. University of Bari (http://www.di.uniba.it/aboutdi/index.htm) The Computer Science Department of the University of Bari is active in the areas of: Computational Intelligence, Computer Science in Education, Learning, Database and Decision Support Systems, Knowledge Acquisition and Machine Learning, Intelligent Interfaces, Intelligent Systems, Simulation Methods and Techniques. In this Department there is a Cognitive Science laboratory. University of Bologna (http://www-lia.deis.unibo.it/) Advanced Informatics Laboratory LIA is a laboratory of the DEIS Department of the University of Bologna.Research areas: Computer Science, Artificial Intelligence, Distributed Systems, Programming Paradigms and Languages. University of Milano (http://www.dsi.unimi.it/) Department of Information Science The main themes considered in this Department are: Multimedia System Development, Development of Communication Systems, Image Elaboration, Dialogue systems for human learning, Virtual Reality, Scientific Visualisation, Realisation of Expert Systems, particularly in Medicine.

Cognitive Psychology

Cognitive Psychology deals with processes like perception, attention , memory, learning, thinking and problem solving in humans, from the information-processing point of view.. Actually, many psychological frameworks have been adopted which more adequately characterise the way people work with each other and with many 'cognitive artefacts', including computers. Cognitive Psychology is relevant to the design of programming languages with the aim of understanding human mental processes that underlie it, including the use of models to predict human performance and the use of empirical methods for testing computer system.

Italian research within this discipline. There are 30 or more Departments of Psychology, Degree Courses, Institutes of Psychology within Medicine Faculties and Arts and Humanities Faculties. A WWW page on Internet sites that may be of interest in the Psychology of Programming is at the Department of Psychology, University of Bologna (http://www-psicologia.psibo.unibo.it/dip2.htm) IARG home page, http://psicosun2.univ.trieste.it/ Intelligent Agents Research Group, Department of Psychology, University of Trieste. The Group is involved in a variety of research projects, the majority of which is about the use of simulators as important research tools. Institute of Psychology, CNR (National Research Council) Rome http://psicosun2.univ.trieste.it/ AI Section, Interactive Cognitive Models. Research Topics: Multi-Agent Systems and Distributed AI; Artificial Intelligence Planning Systems; Knowledge Representation; Social Simulation; Cognitive Modelling; Human-Computer Interaction. Institute of Scientific and Technological Research (IRST) / Genoa (http://ecate.itc.it:1024/) Mechanised Reasoning Group. Research Group on Artificial Life, (G.R.A.L.)http://kant.irmkant.rm.cnr.it/gral.html Department of Neural Systems and Artificial Life, CNR (National Research Council) Rome Research Interests: Artificial Life, Genetic Algorithms, Neural Networks, Learning, Computational Biology, Adaptive Computation, Complex Dynamical Systems, Evolutionary Robotics. R.I.E.S.CO http://www.crs4.it/~luigi/RIESCO/homepage_riesco.html Association for integrated research in the evolution of cognitive system. The RIESCO association operates in the experimental psychology research domain. One of its principal functions is the diffusion of new tools and clinical processes to enhance the study of cognitive operations mainly associated with learning systems. University of Pavia, Psychology Department http://www.unipv.it/~webpsyco/welcome.html Cognitive Psychology research areas: Intelligence, Memory, Psycholinguistics Interdepartmental Laboratory of Communication, University of Calabria, Cosenza Cic home page (http://uni.abramo.it/server/server/Cubo20/index.html) The Interdepartmental Laboratory of Communication looks at problems related to teaching communication through the use of IT and the creation of environments for experimentation in multimedia and programming languages. The areas of research that the PPIG might be interested in are:

  1. experimentation in elementary schools with didactic units built up using AgentSheets; this to evaluate the learning of the basics of programming in 7 and 8 years-old subjects and to see whether this software helps in the learning and building of mental models;
  2. experimentation with new formative paths in multimedia and programming (both visual and non) languages within the Degree Course of Arts, Music and Performing Arts (DAMS). One problem that we are finding, though, is that as the students come to the course from the Humanities, they aren't necessarily familiar with programming methods or tools;
  3. simulation of some of the aspects of cognitive processes through the use of visual programming languages (article presented to the 10th PPIG workshop);
  4. research on mental models of visually impaired people interacting with computers.

Social and organisational Psychology

Social and organisational issues (the structure and functions of organisations in terms of information flow, technology, working practice, power hierarchy, size and complexity, etc.) and the way people co-operate and behave in working areas are influenced by computers. Psychology of programming can gain insights from this research area for understanding models of organisational change.

The Italian research institutes in this discipline University of Trieste (http://psicoserver.univ.trieste.it/salone/DIPART.html) Psychology of Work University of Padova (http://147.162.126.230/DidaW/DW2076.htm) Psychology of Work Social and Organisational Psychology

Ergonomics and Human Factors

The role of Ergonomics is to define and design tools and various artefacts for different kind of human activity from work to leisure, to suite to the humans. The objective is to get information from the above sciences into the context of design and into the programming activity.

Italian research in this discipline Italian Ergonomics Association, (SIE), http://www.psych.unito.it/htdocs/ergo/sie.html Association with the aim of promoting the development of Ergonomy and the spreading and organising of knowledge and experience. This considering social and productive reality. Affiliated to the IEA , the official international organism which groups together and co-ordinates the ergonomic society around the world. University of Turin Laboratory of Ergonomics (http://www.psych.unito.it/htdocs/ergo/sie.html) Research activities: Certification , Learning, Organisational and Management Planning, Man-Computer Communication, Ergonomics and Health, Ergonomics and Handicaps, Ergonomics and Safety, Ergonomics and Toxicology, Ergonomics and lighting. In the area of Human Computer Interaction the following topics are investigated: Error-analysis methods, Methodology of Planning, Methodology and psychometric tests to evaluate discomfort, Tests of the manuals' usability, Tests of the prototype usability, Evaluation scales, Experimentation techniques, Video recording.

Artificial Intelligence

Artificial Intelligence is concerned with the design of intelligent computer programs which simulate many different aspect of human intelligent behaviour, especially knowledge structures that are utilised in human problem solving. In particular, the subjects' problem solving activities and formal reasoning are topics of Psychology of Programming. Internet sites related to Artificial Intelligence Italian Association for Artificial Intelligence AI*IA - Torino (http://www.di.unito.it/~aiia/). The Italian Association for Artificial Intelligence AI*IA was founded in 1988 with the aim of promoting research and AI application. The FACE-IT project (http://gracco.irmkant.rm.cnr.it/luigi/lupa_face.html) The Face-it Project (FIP) package uses a Genetic Algorithm to evolve face expression pictures and is meant to be used in psychological studies. The evolution of pictures is based on the user's evaluation of a number of face expressions shown on the screen. In Italy Artificial Intelligence is taught in the Faculties of Engineering and in the Departments of General Psychology.

Human Computer Interaction

Human Computer Interaction is a discipline whose principal aim is to improve the quality of interaction between humans and computer systems, creating artefacts that are simple to use, to learn, to work and to play with. To create this kind of systems, it is necessary to apply knowledge about human goals and cognitive processes, tasks, capabilities and limitations together with knowledge about computers capabilities and limitations and to relate this findings to the comprehension of social environments in which users work. Since different disciplines contribute to HCI, there are many shared and distinct research areas in which many of the disciplines above mentioned fall down.

In Italy HCI is taught into the Engineering Faculties and in the Social Psychology departments. Italian researches within this discipline SIGCHI Italian group http://www.etnoteam.it/cqs/e4.html SIGCHI , an ACM group with particular interest in Human-Computer Interaction has been activated in Italy with the aim of spreading information about human computer interaction problems. It groups together researchers in the design, evaluation and implementation of interactive systems.

Some of the principal factors that negatively affect the growth of the Italian Psychology of Programming research area Probably, the most relevant factors affecting the Italian Psychology of Programming research sector are:

  1. the lack of academic institute working in this multidisciplinary sector;
  2. the lack of software industries and the crisis in Informatics;
  3. diverse sectional and disciplinary interests;
  4. the lack of consistent multidisciplinary groups;
  5. the lack of relevant information on the Psychology of Programming research area even in the academic world.

It is necessary to bear in mind that, in the last few months, the Italian Government has been working on a new law to change and modernise academic and school systems and we all think that this law will also change some of the old ways of thinking, allowing the Italian educational system to arrive at European and American standards.

Our institute, the Interdepartmental Centre of Communication (CIC) of the University of Calabria, intends to move in this direction:

  1. to organise, in accordance with PPIG, the Psychology of Programming workshop for the year 2000, inviting all the Italian institutes that are interested in developing such an area;
  2. to create an aggregation centre (under PPIG direction) for all those researchers that, coming from related disciplines, have scientific contributions to offer within the Psychology of Programming;
  3. to publish a WWW server on the Psychology of Programming and to spread information.

Recent comments

No comments available.